Files
KArtSell.Aegis/docs/api/openapi.json
T
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

4529 lines
131 KiB
JSON

{
"openapi": "3.0.4",
"info": {
"title": "KArtSell.Host",
"version": "1.0"
},
"paths": {
"/api/shadow-runs": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesShadowRunInitiateShadowRunEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.InitiateShadowRunRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.InitiateShadowRunResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/shadow-runs/{RunId}": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesShadowRunGetShadowRunPollingEndpoint",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.GetShadowRunPollingRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.GetShadowRunPollingRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.GetShadowRunResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/portfolio/{portfolioId}/rebalance": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesPortfolioTriggerRebalanceEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RebalanceRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RebalanceResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/portfolio/{portfolioId}/composition": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesPortfolioGetCompositionEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PortfolioCompositionResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/portfolio/{portfolioId}/risk": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesPortfolioGetRiskMetricsEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RiskMetricsResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/portfolio/{portfolioId}/stress": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesPortfolioTriggerStressTestEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.TriggerStressTestRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.StressTestResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/portfolio/{portfolioId}/alerts": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesPortfolioGetAlertsEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.GetAlertsResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/dashboard/risk": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesPortfolioGetRiskDashboardEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.DashboardResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/observability/metrics": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesObservabilityGetMetricsEndpoint",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.EmptyRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.EmptyRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.MetricsResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/market/ingest": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesMarketDataTriggerIngestionEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.MarketData.IngestionRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.MarketData.IngestionResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/market/ingest/{jobId}": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesMarketDataGetIngestionStatusEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.MarketData.IngestionStatusResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/health/ping": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellHostFeaturesHealthPingEndpoint",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Health.PingRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Health.PingResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/sell-decisions": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsSellDecisionCreateSellDecisionEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
},
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsSellDecisionListSellDecisionsEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.ListSellDecisionsResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/sell-decisions/{id}/execute": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsSellDecisionExecuteSellDecisionEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/v1/approval-queue/{id}/reject": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesRejectModelEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.RejectModel.Request"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.RejectModel.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/v1/observability/metrics": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesGetObservabilityMetricsEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetObservabilityMetrics.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/internal/v1/model-operations/plan": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesGetModelOperationsPlanEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/model-operations/feedback-loop": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesGetModelFeedbackLoopEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/v1/approval-queue": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesGetApprovalQueueEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/api/v1/approval-queue/{id}/approve": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApproveModelEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApproveModel.Request"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApproveModel.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/approvals": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowCreateApprovalEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.CreateApprovalResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
},
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowGetApprovalsEndpoint",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/approvals/{id}/propose": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowProposeForReviewEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ProposeForReviewResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/approvals/{id}/activate": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowActivateApprovalEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ActivateApprovalResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/approvals/{id}": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowGetApprovalByIdEndpoint",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDetailResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/approvals/{id}/approve": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowApproveApprovalEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/audit/events": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsComplianceQueryAuditEventsEndpoint",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/compliance/gdpr-request": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesModelOperationsComplianceSubmitGdprRequestEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.SubmitGdprRequestDto"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.GdprRequestResponseDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/internal/v1/research/sell-policy/evaluate": {
"post": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesSignalEngineFeaturesEvaluateResearchSellPolicyEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Request"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/health/live": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"responses": {
"200": {
"description": "OK"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Authentication required",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"403": {
"description": "Permission denied",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/health/ready": {
"get": {
"tags": [
"KArtSell.Host"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"responses": {
"200": {
"description": "OK"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Authentication required",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"403": {
"description": "Permission denied",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
},
"/api/internal/v1/signal-decisions": {
"post": {
"tags": [
"SignalEngine"
],
"description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
"operationId": "KArtSellModulesSignalEngineFeaturesGenerateSellDecisionEndpoint",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Request"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Response"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"400": {
"description": "Invalid request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"409": {
"description": "Concurrency or business conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"KArtSell.Host.Features.Health.PingRequest": {
"type": "object",
"additionalProperties": false
},
"KArtSell.Host.Features.Health.PingResponse": {
"type": "object",
"properties": {
"message": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.MarketData.IngestionRequest": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true
},
"fromDate": {
"type": "string",
"nullable": true
},
"toDate": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.MarketData.IngestionResponse": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"expectedRowCount": {
"type": "integer",
"format": "int32"
},
"queuedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.MarketData.IngestionStatusResponse": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"rowsProcessed": {
"type": "integer",
"format": "int32"
},
"rowsFailed": {
"type": "integer",
"format": "int32"
},
"rowsSkipped": {
"type": "integer",
"format": "int32"
},
"completedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"durationSeconds": {
"type": "integer",
"format": "int32",
"nullable": true
},
"errorMessage": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.BatchSlaMetrics": {
"type": "object",
"properties": {
"totalJobs": {
"type": "integer",
"format": "int32"
},
"onTimeJobs": {
"type": "integer",
"format": "int32"
},
"slaPercentage": {
"type": "number",
"format": "double"
},
"averageCompleteionTime": {
"type": "string",
"format": "date-span"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.DataQualityMetrics": {
"type": "object",
"properties": {
"quarantinedJobs": {
"type": "integer",
"format": "int32"
},
"totalJobs": {
"type": "integer",
"format": "int32"
},
"qualityPercentage": {
"type": "number",
"format": "double"
},
"recentErrors": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.DuplicateDetectionMetrics": {
"type": "object",
"properties": {
"duplicatesDetected": {
"type": "integer",
"format": "int32"
},
"duplicatesResolved": {
"type": "integer",
"format": "int32"
},
"lastCheckAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.EmptyRequest": {
"type": "object",
"properties": {
"_placeholder": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.MetricsResponse": {
"type": "object",
"properties": {
"batchSla": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.BatchSlaMetrics"
},
"dataQuality": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.DataQualityMetrics"
},
"duplicates": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.DuplicateDetectionMetrics"
},
"reconciliation": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.ReconciliationMetrics"
},
"modelDrift": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Observability.ModelDriftMetrics"
},
"measuredAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.ModelDriftMetrics": {
"type": "object",
"properties": {
"baselineSharpe": {
"type": "number",
"format": "double"
},
"currentSharpe": {
"type": "number",
"format": "double"
},
"driftPercentage": {
"type": "number",
"format": "double"
},
"status": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Observability.ReconciliationMetrics": {
"type": "object",
"properties": {
"breaksDetected": {
"type": "integer",
"format": "int32"
},
"breaksResolved": {
"type": "integer",
"format": "int32"
},
"pendingBreaks": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.AlertDto": {
"type": "object",
"properties": {
"alertId": {
"type": "string",
"format": "uuid"
},
"thresholdType": {
"type": "string",
"nullable": true
},
"severity": {
"type": "string",
"nullable": true
},
"currentValue": {
"type": "number",
"format": "double"
},
"threshold": {
"type": "number",
"format": "double"
},
"triggeredAt": {
"type": "string",
"format": "date-time"
},
"message": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.AlertDto08": {
"type": "object",
"properties": {
"alertId": {
"type": "string",
"format": "uuid"
},
"threshold": {
"type": "string",
"nullable": true
},
"currentValue": {
"type": "number",
"format": "double"
},
"severity": {
"type": "string",
"nullable": true
},
"message": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.DashboardResponse": {
"type": "object",
"properties": {
"portfolioId": {
"type": "string",
"format": "uuid"
},
"snapshotDate": {
"type": "string",
"format": "date"
},
"portfolio": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PortfolioDto"
},
"riskMetrics": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RiskMetricsDto08"
},
"stressResults": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.StressResultDto08"
},
"nullable": true
},
"activeAlerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.AlertDto08"
},
"nullable": true
},
"healthScore": {
"type": "integer",
"format": "int32"
},
"riskInsights": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"lastUpdate": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.GetAlertsResponse": {
"type": "object",
"properties": {
"activeAlerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.AlertDto"
},
"nullable": true
},
"resolvedAlerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.AlertDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.PortfolioCompositionResponse": {
"type": "object",
"properties": {
"portfolioId": {
"type": "string",
"format": "uuid"
},
"snapshotDate": {
"type": "string",
"format": "date"
},
"positions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PositionDto"
},
"nullable": true
},
"totalValue": {
"type": "number",
"format": "double"
},
"lastUpdate": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.PortfolioDto": {
"type": "object",
"properties": {
"totalValue": {
"type": "number",
"format": "double"
},
"positions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PositionSummaryDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.PositionDto": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"nullable": true
},
"quantity": {
"type": "number",
"format": "double"
},
"marketPrice": {
"type": "number",
"format": "double"
},
"marketValue": {
"type": "number",
"format": "double"
},
"weightPercent": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.PositionSummaryDto": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"nullable": true
},
"quantity": {
"type": "number",
"format": "double"
},
"marketPrice": {
"type": "number",
"format": "double"
},
"marketValue": {
"type": "number",
"format": "double"
},
"weightPercent": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.RebalanceRequest": {
"type": "object",
"properties": {
"targetWeights": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.TargetWeightDto"
},
"nullable": true
},
"driftThreshold": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.RebalanceResponse": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"estimatedTradeCount": {
"type": "integer",
"format": "int32"
},
"estimatedCost": {
"type": "number",
"format": "double"
},
"correlationId": {
"type": "string",
"nullable": true
},
"queuedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.RiskMetricsDto": {
"type": "object",
"properties": {
"vaR95Amount": {
"type": "number",
"format": "double"
},
"vaR95Percent": {
"type": "number",
"format": "double"
},
"sharpeRatio": {
"type": "number",
"format": "double"
},
"sortinoRatio": {
"type": "number",
"format": "double"
},
"volatility": {
"type": "number",
"format": "double"
},
"topFivePercent": {
"type": "number",
"format": "double"
},
"hirschmanIndex": {
"type": "number",
"format": "double"
},
"maxSinglePosition": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.RiskMetricsDto08": {
"type": "object",
"properties": {
"vaR95": {
"type": "number",
"format": "double"
},
"sharpeRatio": {
"type": "number",
"format": "double"
},
"sortinoRatio": {
"type": "number",
"format": "double"
},
"volatilityPercent": {
"type": "number",
"format": "double"
},
"topFivePercent": {
"type": "number",
"format": "double"
},
"maxPositionPercent": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.RiskMetricsResponse": {
"type": "object",
"properties": {
"portfolioId": {
"type": "string",
"format": "uuid"
},
"calculationDate": {
"type": "string",
"format": "date"
},
"metrics": {
"$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RiskMetricsDto"
},
"qualityScore": {
"type": "integer",
"format": "int32"
},
"lastUpdate": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.StressResultDto08": {
"type": "object",
"properties": {
"scenario": {
"type": "string",
"nullable": true
},
"portfolioLossPercent": {
"type": "number",
"format": "double"
},
"stressedVAR": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.StressTestResponse": {
"type": "object",
"properties": {
"stressTestId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"scenarioId": {
"type": "string",
"nullable": true
},
"correlationId": {
"type": "string",
"nullable": true
},
"queuedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.TargetWeightDto": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"nullable": true
},
"targetPercent": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.Portfolio.TriggerStressTestRequest": {
"type": "object",
"properties": {
"scenarioId": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.ShadowRun.GetShadowRunPollingRequest": {
"type": "object",
"properties": {
"runId": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.ShadowRun.GetShadowRunResponse": {
"type": "object",
"properties": {
"runId": {
"type": "string",
"format": "uuid"
},
"modelId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"completedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"metrics": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.ShadowRunMetricsDto"
},
"validationGates": {
"$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.ValidationGatesDto"
},
"errorMessage": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.ShadowRun.InitiateShadowRunRequest": {
"type": "object",
"properties": {
"modelId": {
"type": "string",
"format": "uuid"
},
"windowStart": {
"type": "string",
"format": "date"
},
"windowEnd": {
"type": "string",
"format": "date"
},
"phaseFilter": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.ShadowRun.InitiateShadowRunResponse": {
"type": "object",
"properties": {
"runId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"jobId": {
"type": "string",
"nullable": true
},
"estimatedSeconds": {
"type": "integer",
"format": "int32"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.ShadowRun.ShadowRunMetricsDto": {
"type": "object",
"properties": {
"totalReturn": {
"type": "number",
"format": "double"
},
"sharpeRatio": {
"type": "number",
"format": "double"
},
"calmurRatio": {
"type": "number",
"format": "double"
},
"maximumDrawdown": {
"type": "number",
"format": "double"
},
"winRate": {
"type": "number",
"format": "double"
},
"probOfBacktestOverfit": {
"type": "number",
"format": "double"
},
"dailySharePercentile": {
"type": "number",
"format": "double"
},
"tradingDays": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"KArtSell.Host.Features.ShadowRun.ValidationGatesDto": {
"type": "object",
"properties": {
"pboUnder20": {
"type": "boolean"
},
"dsrAbove95": {
"type": "boolean"
},
"costTwoXPositive": {
"type": "boolean"
},
"allGatesPassed": {
"type": "boolean"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Compliance.AuditEventDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"eventType": {
"type": "string",
"nullable": true
},
"entityType": {
"type": "string",
"nullable": true
},
"entityId": {
"type": "string",
"format": "uuid"
},
"actorEmail": {
"type": "string",
"nullable": true
},
"actorRole": {
"type": "string",
"nullable": true
},
"eventAt": {
"type": "string",
"format": "date-time"
},
"result": {
"type": "string",
"nullable": true
},
"details": {
"type": "object",
"additionalProperties": { },
"nullable": true
},
"evidenceLinks": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"publishedAt": {
"type": "string",
"format": "date-time"
},
"correlationId": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Compliance.GdprRequestResponseDto": {
"type": "object",
"properties": {
"gdprTrackingId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"estimatedCompletion": {
"type": "string",
"format": "date-time"
},
"message": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsRequest": {
"type": "object",
"properties": {
"entityId": {
"type": "string",
"format": "uuid",
"nullable": true
},
"eventType": {
"type": "string",
"nullable": true
},
"dateFrom": {
"type": "string",
"format": "date-time",
"nullable": true
},
"dateTo": {
"type": "string",
"format": "date-time",
"nullable": true
},
"actorEmail": {
"type": "string",
"nullable": true
},
"skip": {
"type": "integer",
"format": "int32"
},
"take": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.AuditEventDto"
},
"nullable": true
},
"total": {
"type": "integer",
"format": "int32"
},
"skip": {
"type": "integer",
"format": "int32"
},
"take": {
"type": "integer",
"format": "int32"
},
"pages": {
"type": "integer",
"format": "int32",
"readOnly": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Compliance.SubmitGdprRequestDto": {
"type": "object",
"properties": {
"customerId": {
"type": "string",
"format": "uuid"
},
"reason": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ActivateApprovalResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"activatedAt": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDetailResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"modelId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"createdBy": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"justification": {
"type": "string",
"nullable": true
},
"effectiveAt": {
"type": "string",
"format": "date"
},
"approvedBy": {
"type": "string",
"nullable": true
},
"approvedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"approvalNotes": {
"type": "string",
"nullable": true
},
"activatedBy": {
"type": "string",
"nullable": true
},
"activatedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.EvidenceDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"modelId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"createdBy": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"justification": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalRequest": {
"type": "object",
"properties": {
"approvalNotes": {
"type": "string",
"nullable": true
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.EvidenceDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"approvedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.CreateApprovalResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.EvidenceDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"nullable": true
},
"url": {
"type": "string",
"nullable": true
},
"comment": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsRequest": {
"type": "object",
"properties": {
"status": {
"type": "string",
"nullable": true
},
"modelId": {
"type": "string",
"format": "uuid",
"nullable": true
},
"limit": {
"type": "integer",
"format": "int32"
},
"offset": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDto"
},
"nullable": true
},
"total": {
"type": "integer",
"format": "int32"
},
"pages": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ProposeForReviewResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApproveModel.Request": {
"type": "object",
"properties": {
"runId": {
"type": "string",
"format": "uuid"
},
"approvalReason": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.ApproveModel.Response": {
"type": "object",
"properties": {
"approvalId": {
"type": "string",
"format": "uuid"
},
"runId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"approvedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.ApprovalItem": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"runId": {
"type": "string",
"format": "uuid"
},
"modelId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"approvedBy": {
"type": "string",
"format": "uuid",
"nullable": true
},
"approvalReason": {
"type": "string",
"nullable": true
},
"rejectionReason": {
"type": "string",
"nullable": true
},
"requestedAt": {
"type": "string",
"format": "date-time"
},
"approvedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"rejectedAt": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.Response": {
"type": "object",
"properties": {
"queue": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.ApprovalItem"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.ModelFeedbackStageResponse": {
"type": "object",
"properties": {
"order": {
"type": "integer",
"format": "int32"
},
"stageCode": {
"type": "string",
"nullable": true
},
"operationCode": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"automationBoundary": {
"type": "string",
"nullable": true
},
"requiredEvidence": {
"type": "string",
"nullable": true
},
"humanDecision": {
"type": "string",
"nullable": true
},
"failureAction": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.Response": {
"type": "object",
"properties": {
"boundary": {
"type": "string",
"nullable": true
},
"stages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.ModelFeedbackStageResponse"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.OperationItem": {
"type": "object",
"properties": {
"operationCode": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"cadence": {
"type": "string",
"nullable": true
},
"automationMode": {
"type": "string",
"nullable": true
},
"queue": {
"type": "string",
"nullable": true
},
"primaryOwner": {
"type": "string",
"nullable": true
},
"secondaryOwner": {
"type": "string",
"nullable": true
},
"requiredEvidence": {
"type": "string",
"nullable": true
},
"output": {
"type": "string",
"nullable": true
},
"gate": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.Response": {
"type": "object",
"properties": {
"algorithmStatus": {
"type": "string",
"nullable": true
},
"orderCapability": {
"type": "string",
"nullable": true
},
"modelMutationBoundary": {
"type": "string",
"nullable": true
},
"operations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.OperationItem"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.GetObservabilityMetrics.Response": {
"type": "object",
"properties": {
"batchSla": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.BatchSlaMetrics"
},
"dataQuality": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.DataQualityMetrics"
},
"duplicates": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.DuplicateDetectionMetrics"
},
"reconciliation": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.ReconciliationMetrics"
},
"modelDrift": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.ModelDriftMetrics"
},
"collectedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.RejectModel.Request": {
"type": "object",
"properties": {
"runId": {
"type": "string",
"format": "uuid"
},
"rejectionReason": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Features.RejectModel.Response": {
"type": "object",
"properties": {
"approvalId": {
"type": "string",
"format": "uuid"
},
"runId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"rejectedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Observability.BatchSlaMetrics": {
"type": "object",
"properties": {
"queueDepth": {
"type": "integer",
"format": "int32"
},
"averageCompletionTimeSeconds": {
"type": "number",
"format": "double"
},
"retryRate": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Observability.DataQualityMetrics": {
"type": "object",
"properties": {
"quarantineCount": {
"type": "integer",
"format": "int32"
},
"ageMinutes": {
"type": "integer",
"format": "int32"
},
"topFailureReasons": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Observability.DuplicateDetectionMetrics": {
"type": "object",
"properties": {
"constraintViolationCount": {
"type": "integer",
"format": "int32"
},
"lastDetected": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Observability.ModelDriftMetrics": {
"type": "object",
"properties": {
"oosPerformanceValue": {
"type": "number",
"format": "double"
},
"baselineComparison": {
"type": "number",
"format": "double"
},
"degradationFlag": {
"type": "boolean"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.Observability.ReconciliationMetrics": {
"type": "object",
"properties": {
"completenessPercentage": {
"type": "number",
"format": "double"
},
"auditRecordsCount": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionRequest": {
"required": [
"justification"
],
"type": "object",
"properties": {
"modelId": {
"type": "string",
"format": "uuid"
},
"windowStart": {
"type": "string",
"format": "date-time"
},
"windowEnd": {
"type": "string",
"format": "date-time"
},
"thresholdPbo": {
"type": "number",
"format": "double"
},
"thresholdDsr": {
"type": "number",
"format": "double"
},
"justification": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionResponse": {
"required": [
"status"
],
"type": "object",
"properties": {
"decisionId": {
"type": "string",
"format": "uuid"
},
"modelId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"correlationId": {
"type": "string",
"format": "uuid"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionRequest": {
"required": [
"justification"
],
"type": "object",
"properties": {
"approvalId": {
"type": "string",
"format": "uuid"
},
"executionPrice": {
"type": "number",
"format": "double"
},
"quantity": {
"type": "integer",
"format": "int32"
},
"justification": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionResponse": {
"required": [
"kisOrderId",
"status"
],
"type": "object",
"properties": {
"decisionId": {
"type": "string",
"format": "uuid"
},
"executionId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"kisOrderId": {
"type": "string",
"nullable": true
},
"submittedAt": {
"type": "string",
"format": "date-time"
},
"correlationId": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.SellDecision.ListSellDecisionsResponse": {
"required": [
"decisions"
],
"type": "object",
"properties": {
"decisions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.SellDecisionDto"
},
"nullable": true
},
"total": {
"type": "integer",
"format": "int32"
},
"limit": {
"type": "integer",
"format": "int32"
},
"offset": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"KArtSell.Modules.ModelOperations.SellDecision.SellDecisionDto": {
"required": [
"status"
],
"type": "object",
"properties": {
"decisionId": {
"type": "string",
"format": "uuid"
},
"modelId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"nullable": true
},
"pboScore": {
"type": "number",
"format": "double",
"nullable": true
},
"dsrMetric": {
"type": "number",
"format": "double",
"nullable": true
},
"sellPriority": {
"type": "integer",
"format": "int32",
"nullable": true
},
"targetQuantity": {
"type": "integer",
"format": "int32",
"nullable": true
},
"targetPrice": {
"type": "number",
"format": "double",
"nullable": true
},
"approvalId": {
"type": "string",
"format": "uuid",
"nullable": true
},
"executionId": {
"type": "string",
"format": "uuid",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"correlationId": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
},
"KArtSell.Modules.SignalEngine.Domain.PolicyDisposition": {
"enum": [
0,
1,
2
],
"type": "integer",
"format": "int32"
},
"KArtSell.Modules.SignalEngine.Domain.PolicyTraceEntry": {
"type": "object",
"properties": {
"policyId": {
"type": "string",
"nullable": true
},
"priority": {
"type": "integer",
"format": "int32"
},
"disposition": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Domain.PolicyDisposition"
},
"reasonCode": {
"type": "string",
"nullable": true
},
"requestedSellRatioOfLot": {
"type": "number",
"format": "double"
},
"appliedSellRatioOfLot": {
"type": "number",
"format": "double"
},
"strategicCoreClampApplied": {
"type": "boolean"
}
},
"additionalProperties": false
},
"KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Request": {
"type": "object",
"properties": {
"positionLotId": {
"type": "string",
"format": "uuid"
},
"cycleId": {
"type": "string",
"format": "uuid"
},
"evidenceId": {
"type": "string",
"nullable": true
},
"datasetId": {
"type": "string",
"nullable": true
},
"modelVersion": {
"type": "string",
"nullable": true
},
"configVersion": {
"type": "string",
"nullable": true
},
"codeSha": {
"type": "string",
"nullable": true
},
"asOf": {
"type": "string",
"format": "date-time"
},
"publishedAtCutoff": {
"type": "string",
"format": "date-time"
},
"currentSecurityPortfolioWeight": {
"type": "number",
"format": "double"
},
"currentLotPortfolioWeight": {
"type": "number",
"format": "double"
},
"strategicCoreFloorWeight": {
"type": "number",
"format": "double"
},
"hardImpairmentApproved": {
"type": "boolean"
},
"capitalFloorBreached": {
"type": "boolean"
},
"survivalSellRatioOfLot": {
"type": "number",
"format": "double"
},
"gapBelowFloorAtr": {
"type": "number",
"format": "double"
},
"consecutiveCloseBreaches": {
"type": "integer",
"format": "int32"
},
"cooldownSatisfied": {
"type": "boolean"
},
"concentrationSellRatioOfLot": {
"type": "number",
"format": "double"
},
"opportunityEdgeLowerBound": {
"type": "number",
"format": "double"
},
"opportunitySellRatioOfLot": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Response": {
"type": "object",
"properties": {
"action": {
"type": "string",
"nullable": true
},
"sellRatioOfLot": {
"type": "number",
"format": "double"
},
"targetSecurityPortfolioWeightAfter": {
"type": "number",
"format": "double"
},
"policyId": {
"type": "string",
"nullable": true
},
"reasonCode": {
"type": "string",
"nullable": true
},
"decisionContractVersion": {
"type": "string",
"nullable": true
},
"policyTraceSchemaVersion": {
"type": "integer",
"format": "int32"
},
"reentryEligible": {
"type": "boolean"
},
"policyTrace": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Domain.PolicyTraceEntry"
},
"nullable": true
},
"evidenceStatus": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Request": {
"type": "object",
"properties": {
"positionLotId": {
"type": "string",
"format": "uuid"
},
"asOf": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Response": {
"type": "object",
"properties": {
"decisionId": {
"type": "string",
"format": "uuid"
},
"action": {
"type": "string",
"nullable": true
},
"sellRatioOfLot": {
"type": "number",
"format": "double"
},
"targetSecurityPortfolioWeightAfter": {
"type": "number",
"format": "double"
},
"policyId": {
"type": "string",
"nullable": true
},
"reasonCode": {
"type": "string",
"nullable": true
},
"evidenceId": {
"type": "string",
"nullable": true
},
"datasetId": {
"type": "string",
"nullable": true
},
"modelVersion": {
"type": "string",
"nullable": true
},
"configVersion": {
"type": "string",
"nullable": true
},
"codeSha": {
"type": "string",
"nullable": true
},
"decisionContractVersion": {
"type": "string",
"nullable": true
},
"policyTraceSchemaVersion": {
"type": "integer",
"format": "int32"
},
"reentryEligible": {
"type": "boolean"
},
"policyTrace": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Domain.PolicyTraceEntry"
},
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"replayed": {
"type": "boolean"
}
},
"additionalProperties": false
},
"Microsoft.AspNetCore.Mvc.ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
},
"status": {
"type": "integer",
"format": "int32",
"nullable": true
},
"detail": {
"type": "string",
"nullable": true
},
"instance": {
"type": "string",
"nullable": true
}
},
"additionalProperties": { }
}
}
},
"tags": [
{
"name": "KArtSell.Host"
},
{
"name": "SignalEngine"
}
]
}