{ "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" } ] }