{ "openapi": "3.0.4", "info": { "title": "Fenergo Nebula Digital Agents Query", "description": "**DigitalAgents Query API**:\n\n
DigitalAgents Query API provides methods to access data related to agents and statistics associated with their work.\n\n
**DigitalAgents Query API provides**:
", "version": "1.0" }, "servers": [ { "url": "/digitalagentsquery" } ], "paths": { "/api/agent": { "get": { "tags": [ "Agent" ], "summary": "Get all registered agents by tenant and agent type", "description": "

Required permissions:
Following permissions are required: AgentConfigurationAccess", "operationId": "GetAgents", "parameters": [ { "name": "agentType", "in": "query", "description": "Agent type (optional)", "schema": { "type": "string" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "The Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgents.GetAgentsResponseDto class containing the list of registered agents", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAgentsResponseDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request" }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/agent/{agentId}": { "get": { "tags": [ "Agent" ], "summary": "Get a single registered agent by its identifier", "description": "

Required permissions:
Following permissions are required: AgentConfigurationAccess", "operationId": "GetAgentById", "parameters": [ { "name": "agentId", "in": "path", "description": "The unique identifier of the agent.", "required": true, "schema": { "type": "string" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "The Fenergo.Nebula.DigitalAgents.Query.Application.Common.AgentRegistryDto for the requested agent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRegistryDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4", "title": "Resource not found", "detail": "If no agent exists for the current tenant with the given identifier.", "status": 404 } } } }, "500": { "description": "An exception occurred while processing the request" }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/agentslos/{agentId}/slos": { "get": { "tags": [ "AgentSlos" ], "summary": "Get the SLO definitions for a specific agent.", "description": "

Required permissions:
Following permissions are required: AgentConfigurationAccess", "operationId": "GetAgentSlos", "parameters": [ { "name": "agentId", "in": "path", "description": "The unique identifier of the agent.", "required": true, "schema": { "type": "string" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "The list of SLO definitions for the agent.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SloDefinitionListServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request." }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/configurablesections/schema": { "get": { "tags": [ "ConfigurableSections" ], "summary": "Get Configurable Sections Schema.", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetConfigurableSections", "parameters": [ { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "Successfully retrieved dashboard schema.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurableSectionsDashboardDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request." }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/metric/task-autocomplete": { "post": { "tags": [ "Metric" ], "summary": "Get Task AutoComplete metrics by tenant", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetTaskAutocompletionMetrics", "parameters": [ { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueryParametersServiceRequest" } } } }, "responses": { "200": { "description": "The Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetMetrics.GetTaskAutocompletionMetricsResponseDto class containing the list of metrics", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTaskAutocompletionMetricsResponseDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request" }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/metric/agent-metrics": { "post": { "tags": [ "Metric" ], "summary": "Get metrics by tenant, agent type and measure names", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetAgentMetrics", "parameters": [ { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentMetricsQueryParametersServiceRequest" } } } }, "responses": { "200": { "description": "The Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetMetrics.GetAgentMetricsResponseDto class containing the list of metrics", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAgentMetricsResponseDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request" }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/metric/agent-value-summary": { "post": { "tags": [ "Metric" ], "summary": "Get per-agent action counts and monthly time series for the current tenant over a date range", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetAgentValueSummary", "parameters": [ { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentValueSummaryRequestDtoServiceRequest" } } } }, "responses": { "200": { "description": "The Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto containing per-agent counts and monthly series", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentValueSummaryResponseDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request" }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/outcome": { "get": { "tags": [ "Outcome" ], "summary": "Retrieves a list of outcomes based on the specified query parameters.", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetOutcomes", "parameters": [ { "name": "AgentExecutionId", "in": "query", "description": "Gets or sets the unique identifier of the agent execution.", "required": true, "schema": { "minLength": 1, "type": "string", "description": "Gets or sets the unique identifier of the agent execution." } }, { "name": "AgentCategory", "in": "query", "description": "Gets or sets the optional category of the agent to filter outcomes by.", "schema": { "$ref": "#/components/schemas/AgentCategory" } }, { "name": "AgentType", "in": "query", "description": "Gets or sets the optional type of the agent to filter outcomes by.", "schema": { "$ref": "#/components/schemas/AgentType" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "Returns the list of outcomes.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutcomeDtoIEnumerableServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1", "title": "Internal server exception. Please, contact your provider.", "detail": null, "status": 500, "errorCode": "INTERNAL_SERVER_ERROR" } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/outcome/entity/{entityId}/journey/{journeyId}": { "get": { "tags": [ "Outcome" ], "summary": "Retrieves a list of outcomes by Entity Id and Journey Id", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetOutcomesByEntityIdJourneyId", "parameters": [ { "name": "entityId", "in": "path", "description": "The id of the entity", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "journeyId", "in": "path", "description": "The id of the journey", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "Returns the list of outcomes.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutcomeDtoIEnumerableServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1", "title": "Internal server exception. Please, contact your provider.", "detail": null, "status": 500, "errorCode": "INTERNAL_SERVER_ERROR" } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/outcome/journey/{journeyId}": { "get": { "tags": [ "Outcome" ], "summary": "Retrieves a list of outcomes by Journey Id", "description": "

Required permissions:
Following permissions are required: DigitalAgentsAccess", "operationId": "GetOutcomesByJourneyId", "parameters": [ { "name": "journeyId", "in": "path", "description": "The id of the journey", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "Returns the list of outcomes.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutcomeDtoIEnumerableServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1", "title": "Internal server exception. Please, contact your provider.", "detail": null, "status": 500, "errorCode": "INTERNAL_SERVER_ERROR" } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/publicdashboards": { "get": { "tags": [ "PublicDashboards" ], "summary": "Get the list of publicly available dashboards for the current tenant.", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetPublicDashboards", "parameters": [ { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "Successfully retrieved public dashboards.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicDashboardsIndexDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request." }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/scorecards/{id}": { "get": { "tags": [ "Scorecards" ], "summary": "Returns a single scorecard by its unique identifier.", "description": "

Required permissions:
Following permissions are required: AgentConfigurationAccess", "operationId": "GetScorecard", "parameters": [ { "name": "id", "in": "path", "description": "The unique identifier of the scorecard.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "The scorecard record.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScorecardRecordServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4", "title": "Resource not found", "detail": "No scorecard found for the given ID.", "status": 404 } } } }, "500": { "description": "An exception occurred while processing the request." }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/scorecards": { "get": { "tags": [ "Scorecards" ], "summary": "Returns a list of scorecards filtered by agent name, status, or both.", "description": "

Required permissions:
Following permissions are required: AgentConfigurationAccess", "operationId": "ListScorecards", "parameters": [ { "name": "agentName", "in": "query", "description": "Optional agent name filter.", "schema": { "type": "string" } }, { "name": "status", "in": "query", "description": "Optional status filter (`Draft` or `Approved`).", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of records to return. Defaults to 50.", "schema": { "type": "integer", "format": "int32", "default": 50 } }, { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "The list of matching scorecard records.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScorecardRecordListServiceResponse" } } } }, "500": { "description": "An exception occurred while processing the request." }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } }, "/api/userdashboards": { "get": { "tags": [ "UserDashboards" ], "summary": "Get the authenticated user's saved dashboards.", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetUserDashboards", "parameters": [ { "name": "X-TENANT-ID", "in": "header", "description": "The UiD of the tenant representing organization", "required": true, "schema": { "type": "string" }, "example": "b11f8be3-f29b-4959-8964-956d4af7c468" } ], "responses": { "200": { "description": "Successfully retrieved user dashboards.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDashboardsDtoServiceResponse" } } } }, "400": { "description": "One or more validation errors occurred", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred", "detail": "Name is required", "status": 400, "errorCode": "VALIDATION_ERROR", "validationErrors": [ { "propertyName": "Name", "errorMessage": "Name is required", "attemptedValue": "", "validatorType": "NotEmptyValidator" } ] } } } }, "500": { "description": "An exception occurred while processing the request." }, "401": { "description": "User is not authorized to perform this request", "content": { "application/json": { "example": { "message": "Unauthorized" } } } }, "403": { "description": "Access to resource is forbidden.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3", "title": "Access to resource is forbidden.", "detail": "Access denied. Following permissions are required: Permission1, Permission2", "status": 403 } } } }, "410": { "description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.9", "title": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.", "detail": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "status": 410, "errorCode": "OBSOLETE_ENDPOINT" } } } } } } } }, "components": { "schemas": { "AgentCategory": { "enum": [ "KYC", "Compliance", "Reporting", "FenAI", "Decisioning", "Extraction", "Agentic" ], "type": "string", "description": "Represents the category of an agent in the digital agents system." }, "AgentMetricsQueryParameters": { "required": [ "agentType", "measureNames", "queryFromInDays" ], "type": "object", "properties": { "agentType": { "type": "string", "nullable": true }, "queryFromInDays": { "type": "integer", "format": "int32" }, "groupMetricsByMonth": { "type": "boolean" }, "measureNames": { "type": "array", "items": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "AgentMetricsQueryParametersServiceRequest": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/AgentMetricsQueryParameters" } }, "additionalProperties": false }, "AgentMetricsTimestreamResult": { "type": "object", "properties": { "taskType": { "type": "string", "nullable": true }, "journeyType": { "type": "string", "nullable": true }, "measureName": { "type": "string", "nullable": true }, "measureValue": { "type": "number", "format": "double" }, "count": { "type": "integer", "format": "int32" }, "timeBin": { "type": "string", "format": "date-time", "nullable": true }, "additionalDimensions": { "type": "object", "additionalProperties": { "type": "string", "nullable": true }, "nullable": true } }, "additionalProperties": false }, "AgentRegistryDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Gets or sets the agent identifier.", "nullable": true }, "name": { "type": "string", "description": "Gets or sets the name of the agent.", "nullable": true }, "description": { "type": "string", "description": "Gets or sets the description of the agent.", "nullable": true }, "agentType": { "type": "string", "description": "Gets or sets the agent type.", "nullable": true }, "configurationType": { "type": "string", "description": "Gets or sets the configuration type (instance or profile).", "nullable": true }, "agentAutonomy": { "type": "string", "description": "Gets or sets the agent autonomy.", "nullable": true }, "enabled": { "type": "boolean", "description": "Gets or sets agent enabled status." }, "journeyTypes": { "uniqueItems": true, "type": "array", "items": { "type": "string" }, "description": "Gets or sets the journey types", "nullable": true }, "extensionData": { "type": "object", "additionalProperties": { "type": "string", "nullable": true }, "description": "Gets or sets the opt-in, domain-specific extension data bag (AB#549014). Populated only for\ndomains whose underlying `Agent` subclass implements `IHasAgentExtensionData`\n(e.g. Significance, DataSourcing); null/omitted for all other domains.", "nullable": true } }, "additionalProperties": false }, "AgentRegistryDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/AgentRegistryDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "AgentRunProgressSnapshot": { "required": [ "agentType", "entityId", "journeyInstanceId", "taskId", "tenantId", "version" ], "type": "object", "properties": { "tenantId": { "type": "string", "nullable": true }, "agentType": { "type": "string", "nullable": true }, "entityId": { "type": "string", "format": "uuid" }, "journeyInstanceId": { "type": "string", "format": "uuid" }, "taskId": { "type": "string", "format": "uuid" }, "agentExecutionId": { "type": "string", "nullable": true }, "runStatus": { "type": "string", "nullable": true }, "summary": { "type": "string", "nullable": true }, "steps": { "type": "array", "items": { "$ref": "#/components/schemas/AgentRunProgressSnapshotStep" }, "nullable": true }, "metrics": { "type": "array", "items": { "$ref": "#/components/schemas/AgentRunProgressSnapshotMetric" }, "nullable": true }, "externalReferences": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "occurredAt": { "type": "string", "format": "date-time", "nullable": true }, "version": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "AgentRunProgressSnapshotMetric": { "type": "object", "properties": { "key": { "type": "string", "nullable": true }, "value": { "type": "number", "format": "double" } }, "additionalProperties": false }, "AgentRunProgressSnapshotServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/AgentRunProgressSnapshot" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "AgentRunProgressSnapshotStep": { "type": "object", "properties": { "stepKey": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AgentType": { "enum": [ "IDP_Classification", "IDP_DocSplit", "IDP_DataExtraction", "Task_Autocompletion", "IDP_RelatedPartyExtraction", "ExternalData_DataSourcing", "SignificanceEngine_Evaluation", "Screening_HitResolution", "Document", "CapacityManagement", "ReportingAgent", "FenAI", "Policy" ], "type": "string", "description": "Represents the type of digital agent." }, "AgentValueSummaryPriorPeriodDto": { "type": "object", "properties": { "docsClassified": { "type": "integer", "format": "int32" }, "hitsAutoResolved": { "type": "integer", "format": "int32" }, "suggestionsAccepted": { "type": "integer", "format": "int32" }, "reportsGenerated": { "type": "integer", "format": "int32" }, "sourcesRetrieved": { "type": "integer", "format": "int32" }, "policyChecksRun": { "type": "integer", "format": "int32" }, "signalChecksRun": { "type": "integer", "format": "int32" }, "docsSplitAcceptanceRate": { "type": "number", "description": "KYRA:Docs splitting-accuracy % for the prior period. Same null-when-no-activity convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.DocsSplitAcceptanceRate.", "format": "double", "nullable": true }, "sourceAutoResolutionRate": { "type": "number", "description": "KYRA:Source auto-resolution rate for the prior period. Same null-when-no-activity convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.SourceAutoResolutionRate.", "format": "double", "nullable": true }, "signalUndeterminedRate": { "type": "number", "description": "KYRA:Signal undetermined-verdict rate for the prior period. Same null-when-no-activity convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.SignalUndeterminedRate.", "format": "double", "nullable": true } }, "additionalProperties": false, "description": "Aggregate action counts + accuracy rates for the period immediately preceding the requested\n[From, To] range, of the same length (AB#547471) — lets BusinessMetrics compute a per-agent\ntrend direction and a real prior-period action count without a second round-trip. Deliberately\na flat sibling block, not a duplicate of Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto — only the\ncounts and rates a trend/prior-count calculation needs, not the full monthly-series/QA-findings\npayload for a comparison period nobody asked for at that granularity." }, "AgentValueSummaryRequestDto": { "required": [ "from", "to" ], "type": "object", "properties": { "from": { "type": "string", "format": "date-time" }, "to": { "type": "string", "format": "date-time" } }, "additionalProperties": false, "description": "Request body DTO for the agent value summary endpoint." }, "AgentValueSummaryRequestDtoServiceRequest": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/AgentValueSummaryRequestDto" } }, "additionalProperties": false }, "AgentValueSummaryResponseDto": { "type": "object", "properties": { "docsClassified": { "type": "integer", "format": "int32" }, "hitsAutoResolved": { "type": "integer", "format": "int32" }, "suggestionsAccepted": { "type": "integer", "format": "int32" }, "reportsGenerated": { "type": "integer", "format": "int32" }, "sourcesRetrieved": { "type": "integer", "format": "int32" }, "policyChecksRun": { "type": "integer", "format": "int32" }, "signalChecksRun": { "type": "integer", "format": "int32" }, "screeningDetectionsTotal": { "type": "integer", "format": "int32" }, "screeningMatchCount": { "type": "integer", "format": "int32" }, "screeningNoMatchCount": { "type": "integer", "format": "int32" }, "screeningUnresolvedCount": { "type": "integer", "format": "int32" }, "screeningSanctionsCount": { "type": "integer", "description": "Number of screening hits classified as Sanctions.\nPopulated from the per-category measure names emitted by Fenergo.Nebula.Screening (AB#543745).", "format": "int32" }, "screeningPepsCount": { "type": "integer", "description": "Number of screening hits classified as PEPs.\nPopulated from the per-category measure names emitted by Fenergo.Nebula.Screening (AB#543745).", "format": "int32" }, "screeningAdverseMediaCount": { "type": "integer", "description": "Number of screening hits classified as Adverse Media.\nPopulated from the per-category measure names emitted by Fenergo.Nebula.Screening (AB#543745).", "format": "int32" }, "idpFieldExtractedCount": { "type": "integer", "description": "`IDP_field_extracted_count` Timestream measure count for the Document agent (AB#547917;\n promoted onto this shared base — and therefore onto Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.MonthlyAgentBucketDto — by\n AB#550406). Same query/aggregation shape as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueCountsDto.DocsClassified. Feeds BusinessMetrics'\n Capacity gauge \"Data field extractions\" pricing metric via `CapacityAgentActionCountsDto.Extraction`\n on the total, and its per-period capacity-consumption ledger (AB#550218) on the monthly breakdown.\n Not broken out by document type — aggregate-only.", "format": "int32" }, "monthlySeries": { "type": "array", "items": { "$ref": "#/components/schemas/MonthlyAgentBucketDto" }, "nullable": true }, "docsClassifiedByType": { "type": "array", "items": { "$ref": "#/components/schemas/DocClassificationBreakdownItemDto" }, "description": "Per-document-type counts for documents classified within the requested date range.\nAggregate-only — not broken out per month. Sums to Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueCountsDto.DocsClassified.", "nullable": true }, "operationsCategoryAgreement": { "type": "array", "items": { "$ref": "#/components/schemas/OperationsCategoryDto" }, "description": "Per-decision-category intervention counts + agreement rate (AB#546092). Deliberately has no\ndefault value (stays `null` when unset) — same convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.DocsClassifiedByType:\na response predating this rollout omits the field and deserializes to `null`, distinct from\nan explicit empty list (genuinely zero interventions this period).", "nullable": true }, "operationsMonthlyTrend": { "type": "array", "items": { "$ref": "#/components/schemas/OperationsMonthlyBucketDto" }, "description": "Monthly intervention volume + agreement-rate trend (AB#546092). Same null-vs-empty convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsCategoryAgreement.", "nullable": true }, "operationsHaiAgreement": { "type": "number", "description": "Overall human-AI agreement rate across all reviewed decisions (AB#546238) — percentage of\nTrust.Decision.Reviewed rows with ReviewOutcome=Confirmed. Screening-only today, same\nsource as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsCategoryAgreement's per-category rate (AB#546092 Open\nQuestion 1). Null only when this DigitalAgents deploy predates the rollout — once\nFenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsCategoryAgreement is non-null this is always populated (0 when\ngenuinely zero reviews).", "format": "double", "nullable": true }, "operationsTotalReviews": { "type": "integer", "description": "Total Trust.Decision.Reviewed count across all categories (AB#546238). Same null convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsHaiAgreement.", "format": "int32", "nullable": true }, "operationsOverrideRate": { "type": "number", "description": "Overall override (disagreement) rate — percentage of reviewed decisions with ReviewOutcome=Overridden (AB#546238). Same null convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsHaiAgreement.", "format": "double", "nullable": true }, "operationsAvgReviewTimeSeconds": { "type": "number", "description": "Average Trust.Decision.ReviewDuration in seconds (AB#546238), Screening-only today. Distinct\nnull semantics from the other Operations headline fields: this can legitimately be null even\nwhen Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsCategoryAgreement is populated — a tenant/range with reviewed\ndecisions but zero review-duration records yet (recent rollout) has real category data but no\nduration data. Consumers must check this independently, not gate it on the category/monthly presence.", "format": "double", "nullable": true }, "operationsOverrideReasons": { "type": "array", "items": { "$ref": "#/components/schemas/OperationsOverrideReasonDto" }, "description": "Override-reason breakdown across all 4 domains (AB#546238). Same null convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsHaiAgreement.", "nullable": true }, "qaFindingCandidates": { "type": "array", "items": { "$ref": "#/components/schemas/QaFindingCandidateDto" }, "description": "Recent QA finding candidates (AB#547300), most-recent-first, capped at a fixed page size —\nindividual Trust.Decision.Overridden events, not aggregated. Same null-until-rollout\nconvention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.OperationsHaiAgreement. BusinessMetrics (AB#547301) persists these\nas mutable findings; DigitalAgents does not track status/severity beyond the placeholder on\nFenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.QaFindingCandidateDto.Severity.", "nullable": true }, "docsSplitAcceptanceRate": { "type": "number", "description": "KYRA:Docs splitting-accuracy % — accepted / proposed across Trust.Split.Proposed/Accepted/Adjusted\n(AB#547426, shipped by SmartDocs under AB#543284). Null when no split activity occurred this\nperiod — not a manufactured 0%.", "format": "double", "nullable": true }, "docsSplitAvgTouchTimeSeconds": { "type": "number", "description": "Average KYRA:Docs split-phase touch time in seconds (AB#547426). Same null convention as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.DocsSplitAcceptanceRate.", "format": "double", "nullable": true }, "sourceAutoResolutionRate": { "type": "number", "description": "KYRA:Source auto-resolution rate — applied / (applied + overridden) for TaskType=\"AssociationMapping\"\n(AB#547427, shipped by Association under AB#543288). Labelled \"Source\" per product decision —\nsee `GetAgentValueSummaryQuery.BuildSourceAutoResolutionRate` for the AgentName caveat. Null\nwhen no AssociationMapping activity occurred this period.", "format": "double", "nullable": true }, "signalVerdictDistribution": { "type": "array", "items": { "$ref": "#/components/schemas/SignalVerdictBucketDto" }, "description": "KYRA:Signal verdict distribution (AB#547428, shipped by Significance under AB#543289). Empty\nlist when no Significance activity occurred this period — not the null-until-rollout convention\nused elsewhere in this DTO, since AB#543289 already ships in every environment this endpoint runs in.", "nullable": true }, "signalUndeterminedRate": { "type": "number", "description": "KYRA:Signal undetermined-verdict rate (AB#547428). Null when Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueSummaryResponseDto.SignalVerdictDistribution is empty.", "format": "double", "nullable": true }, "priorPeriod": { "$ref": "#/components/schemas/AgentValueSummaryPriorPeriodDto" } }, "additionalProperties": false, "description": "Response DTO for the agent value summary endpoint." }, "AgentValueSummaryResponseDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/AgentValueSummaryResponseDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ConfigurableSectionDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "content": { "type": "array", "items": { "$ref": "#/components/schemas/WidgetDto" }, "nullable": true } }, "additionalProperties": false }, "ConfigurableSectionsDashboardDto": { "type": "object", "properties": { "sections": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigurableSectionDto" }, "nullable": true } }, "additionalProperties": false }, "ConfigurableSectionsDashboardDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ConfigurableSectionsDashboardDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "DatasourceConfigDto": { "type": "object", "properties": { "queryId": { "type": "string", "nullable": true }, "fieldMapping": { "type": "object", "additionalProperties": { }, "nullable": true }, "parameterValues": { "type": "object", "additionalProperties": { "type": "string", "nullable": true }, "nullable": true }, "staleTTLMs": { "type": "integer", "format": "int32", "nullable": true }, "columnConfig": { "nullable": true }, "seriesConfig": { "nullable": true } }, "additionalProperties": false }, "DocClassificationBreakdownItemDto": { "required": [ "type" ], "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "count": { "type": "integer", "format": "int32" } }, "additionalProperties": false, "description": "A single per-document-type bucket in the document classification breakdown." }, "GetAgentMetricsResponseDto": { "type": "object", "properties": { "metrics": { "type": "array", "items": { "$ref": "#/components/schemas/AgentMetricsTimestreamResult" }, "nullable": true } }, "additionalProperties": false }, "GetAgentMetricsResponseDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/GetAgentMetricsResponseDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetAgentsResponseDto": { "type": "object", "properties": { "agents": { "type": "array", "items": { "$ref": "#/components/schemas/AgentRegistryDto" }, "nullable": true } }, "additionalProperties": false }, "GetAgentsResponseDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/GetAgentsResponseDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetOutcomesRequest": { "required": [ "agentExecutionId" ], "type": "object", "properties": { "agentExecutionId": { "minLength": 1, "type": "string", "description": "Gets or sets the unique identifier of the agent execution." }, "agentCategory": { "$ref": "#/components/schemas/AgentCategory" }, "agentType": { "$ref": "#/components/schemas/AgentType" } }, "additionalProperties": false, "description": "Represents a request to retrieve agent execution outcomes with optional filtering capabilities." }, "GetTaskAutocompletionMetricsResponseDto": { "type": "object", "properties": { "taskAutocompleteMetrics": { "type": "array", "items": { "$ref": "#/components/schemas/TaskAutocompleteTimestreamResult" }, "nullable": true } }, "additionalProperties": false }, "GetTaskAutocompletionMetricsResponseDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/GetTaskAutocompletionMetricsResponseDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "MonthlyAgentBucketDto": { "required": [ "month" ], "type": "object", "properties": { "docsClassified": { "type": "integer", "format": "int32" }, "hitsAutoResolved": { "type": "integer", "format": "int32" }, "suggestionsAccepted": { "type": "integer", "format": "int32" }, "reportsGenerated": { "type": "integer", "format": "int32" }, "sourcesRetrieved": { "type": "integer", "format": "int32" }, "policyChecksRun": { "type": "integer", "format": "int32" }, "signalChecksRun": { "type": "integer", "format": "int32" }, "screeningDetectionsTotal": { "type": "integer", "format": "int32" }, "screeningMatchCount": { "type": "integer", "format": "int32" }, "screeningNoMatchCount": { "type": "integer", "format": "int32" }, "screeningUnresolvedCount": { "type": "integer", "format": "int32" }, "screeningSanctionsCount": { "type": "integer", "description": "Number of screening hits classified as Sanctions.\nPopulated from the per-category measure names emitted by Fenergo.Nebula.Screening (AB#543745).", "format": "int32" }, "screeningPepsCount": { "type": "integer", "description": "Number of screening hits classified as PEPs.\nPopulated from the per-category measure names emitted by Fenergo.Nebula.Screening (AB#543745).", "format": "int32" }, "screeningAdverseMediaCount": { "type": "integer", "description": "Number of screening hits classified as Adverse Media.\nPopulated from the per-category measure names emitted by Fenergo.Nebula.Screening (AB#543745).", "format": "int32" }, "idpFieldExtractedCount": { "type": "integer", "description": "`IDP_field_extracted_count` Timestream measure count for the Document agent (AB#547917;\n promoted onto this shared base — and therefore onto Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.MonthlyAgentBucketDto — by\n AB#550406). Same query/aggregation shape as Fenergo.Nebula.DigitalAgents.Query.Application.Features.GetAgentValueSummary.AgentValueCountsDto.DocsClassified. Feeds BusinessMetrics'\n Capacity gauge \"Data field extractions\" pricing metric via `CapacityAgentActionCountsDto.Extraction`\n on the total, and its per-period capacity-consumption ledger (AB#550218) on the monthly breakdown.\n Not broken out by document type — aggregate-only.", "format": "int32" }, "month": { "type": "string", "description": "The calendar month represented as \"yyyy-MM\".", "nullable": true } }, "additionalProperties": false, "description": "Per-month aggregate counts for the agent value summary." }, "OperationsCategoryDto": { "required": [ "category", "interventionCount" ], "type": "object", "properties": { "category": { "type": "string", "description": "Verbatim Trust.Decision.* DecisionType value (e.g. \"HitResolution\", \"FieldExtraction\").", "nullable": true }, "interventionCount": { "type": "integer", "description": "Count of Trust.Decision.Overridden rows for this category. Uniformly available across all 4 domains.", "format": "int32" }, "agreementRate": { "type": "number", "description": "Percentage of reviewed decisions confirmed (not overridden). Null when no review denominator exists for this category.", "format": "double", "nullable": true }, "reviewCount": { "type": "integer", "description": "Count of Trust.Decision.Reviewed rows for this category. Null when no review denominator exists for this category.", "format": "int32", "nullable": true } }, "additionalProperties": false, "description": "Per-decision-category intervention count and agreement rate, sourced from Trust.Decision.Overridden\n(all four domains) and Trust.Decision.Reviewed (Screening only today — see AB#546092 Open Question 1)." }, "OperationsMonthlyBucketDto": { "required": [ "month" ], "type": "object", "properties": { "month": { "type": "string", "description": "\"yyyy-MM\" bucket.", "nullable": true }, "interventionCount": { "type": "integer", "description": "Count of Trust.Decision.Overridden rows for the month, summed across all categories.", "format": "int32" }, "agreementRate": { "type": "number", "description": "Percentage of reviewed decisions confirmed this month, summed across categories with a review denominator. Null when none exists.", "format": "double", "nullable": true } }, "additionalProperties": false, "description": "Monthly intervention volume and agreement-rate trend, summed across all decision categories." }, "OperationsOverrideReasonDto": { "required": [ "count", "pct", "reason" ], "type": "object", "properties": { "reason": { "type": "string", "description": "Verbatim Trust.Decision.Overridden OverrideReason value, or \"Unspecified\" when empty/missing.", "nullable": true }, "count": { "type": "integer", "description": "Count of overrides with this reason.", "format": "int32" }, "pct": { "type": "number", "description": "Percentage of all overrides (including Unspecified) with this reason, rounded to 1dp.", "format": "double" } }, "additionalProperties": false, "description": "Override-reason breakdown for Trust.Decision.Overridden, across all 4 domains (AB#546238).\nRows with an empty/missing OverrideReason (SmartDocs' Overridden/AcceptedWithChanges paths,\ndomains that don't populate the field) bucket under \"Unspecified\" rather than being dropped." }, "OutcomeDto": { "type": "object", "properties": { "agentExecutionId": { "type": "string", "description": "Gets or sets the unique identifier of the agent execution.", "nullable": true }, "agentCategory": { "type": "string", "description": "Gets or sets the category of the agent that was executed.", "nullable": true }, "agentType": { "type": "string", "description": "Gets or sets the type of the agent that was executed.", "nullable": true }, "outcome": { "type": "string", "description": "Gets or sets the execution outcome result.", "nullable": true }, "entryId": { "type": "string", "description": "Gets or sets the identifier of the related entry.", "nullable": true }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Gets or sets the metadata associated with the outcome.", "nullable": true }, "timestamp": { "type": "string", "description": "Gets or sets the time stamp of the outcome.", "format": "date-time" } }, "additionalProperties": false, "description": "Data Transfer Object (DTO) representing the outcome of a digital agent execution." }, "OutcomeDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/OutcomeDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "PersonalisedWidgetDto": { "type": "object", "properties": { "instanceId": { "type": "string", "nullable": true }, "widgetType": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "position": { "$ref": "#/components/schemas/WidgetPositionDto" }, "datasourceConfig": { "$ref": "#/components/schemas/DatasourceConfigDto" }, "visualOptions": { "nullable": true } }, "additionalProperties": false }, "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": { } }, "PublicDashboardIndexEntryDto": { "type": "object", "properties": { "dashboardId": { "type": "string", "nullable": true }, "ownerUserId": { "type": "string", "nullable": true }, "ownerDisplayName": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "personaId": { "type": "string", "nullable": true }, "tabColour": { "type": "string", "nullable": true }, "widgetCount": { "type": "integer", "format": "int32" }, "updatedAt": { "type": "string", "nullable": true }, "visualOptions": { "nullable": true } }, "additionalProperties": false }, "PublicDashboardsIndexDto": { "type": "object", "properties": { "entries": { "type": "array", "items": { "$ref": "#/components/schemas/PublicDashboardIndexEntryDto" }, "nullable": true } }, "additionalProperties": false }, "PublicDashboardsIndexDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PublicDashboardsIndexDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "QaFindingCandidateDto": { "required": [ "agent", "date", "id", "issue", "severity" ], "type": "object", "properties": { "id": { "type": "string", "description": "The finding's natural key — the source event's EntryId when present (rows written since\nAB#547300's rollout), else a composite `AgentExecutionId+Timestamp` fallback for\npre-rollout rows.", "nullable": true }, "agent": { "type": "string", "description": "The agent whose decision was overridden/reviewed.", "nullable": true }, "issue": { "type": "string", "description": "A short description of what was flagged. The source event's OverrideReason when populated\n(Screening today), else falls back to the domain's DecisionType — most domains don't capture\na real reviewer-supplied reason yet, so this is a best-effort label, not a true diagnosis.", "nullable": true }, "severity": { "type": "string", "description": "Coarse severity placeholder (AB#547300) — NOT a real severity model. No confidence/score/\nmagnitude signal exists anywhere in the underlying Trust.Decision.* telemetry today (see\n`GetAgentValueSummaryQueryHandler.DeriveSeverity` for the exact rule and why).", "nullable": true }, "date": { "type": "string", "format": "date-time" } }, "additionalProperties": false, "description": "A single QA finding candidate (AB#547300) — one qualifying Trust.Decision.Overridden event,\nindividually (not aggregated), for BusinessMetrics to consume and persist as a mutable\n`QaFinding` (AB#547301). Read-only/point-in-time: DigitalAgents does not track status\n(open/in review/resolved) — that's owned by BusinessMetrics once a finding is persisted." }, "QueryParameters": { "required": [ "agentType", "queryFromInDays" ], "type": "object", "properties": { "agentType": { "type": "string", "nullable": true }, "queryFromInDays": { "type": "integer", "format": "int32" }, "groupMetricsByMonth": { "type": "boolean" } }, "additionalProperties": false }, "QueryParametersServiceRequest": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/QueryParameters" } }, "additionalProperties": false }, "ScorecardRecord": { "required": [ "agentName", "createdAt", "createdBy", "id", "modelId", "s3Url", "status" ], "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "agentName": { "type": "string", "nullable": true }, "modelId": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "nullable": true }, "createdBy": { "type": "string", "nullable": true }, "s3Url": { "type": "string", "nullable": true }, "approvedBy": { "type": "string", "nullable": true }, "approvalDate": { "type": "string", "nullable": true }, "approvalNotes": { "type": "string", "nullable": true }, "biasRiskRating": { "type": "string", "nullable": true }, "hallucinationExposureRating": { "type": "string", "nullable": true }, "dataPrivacyRating": { "type": "string", "nullable": true }, "mitigationNotes": { "type": "string", "nullable": true }, "residualRiskStatement": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ScorecardRecordListServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ScorecardRecord" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ScorecardRecordServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ScorecardRecord" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ServiceResponseMessage": { "type": "object", "properties": { "message": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "errorCode": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SignalVerdictBucketDto": { "required": [ "count", "pct", "verdict" ], "type": "object", "properties": { "verdict": { "type": "string", "description": "\"Significant\" | \"Insignificant\" | \"Undetermined\" (verbatim Verdict dimension value), or \"Unknown\" when missing.", "nullable": true }, "count": { "type": "integer", "description": "Count of runs with this verdict.", "format": "int32" }, "pct": { "type": "number", "description": "Percentage of all Significance runs with this verdict, rounded to 1dp.", "format": "double" } }, "additionalProperties": false, "description": "A single verdict bucket in KYRA:Signal's verdict distribution (AB#547428), sourced from\nTrust.Run{Verdict} (Significant/Insignificant/Undetermined), filtered to\nAgentName=SignificanceEngine_Evaluation." }, "SloDefinition": { "required": [ "measureName" ], "type": "object", "properties": { "measureName": { "type": "string", "nullable": true }, "windowHours": { "type": "integer", "format": "int32" }, "p50Threshold": { "type": "number", "format": "double", "nullable": true }, "p95Threshold": { "type": "number", "format": "double", "nullable": true }, "thresholdDirection": { "$ref": "#/components/schemas/ThresholdDirection" }, "driftTolerancePct": { "type": "number", "format": "double" }, "enabled": { "type": "boolean" } }, "additionalProperties": false }, "SloDefinitionListServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/SloDefinition" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "TaskAutocompleteTimestreamResult": { "type": "object", "properties": { "taskType": { "type": "string", "nullable": true }, "policyRequirementType": { "type": "string", "nullable": true }, "taskName": { "type": "string", "nullable": true }, "journeyType": { "type": "string", "nullable": true }, "measureValue": { "type": "number", "format": "double" }, "count": { "type": "integer", "format": "int32" }, "timeBin": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "ThresholdDirection": { "enum": [ "Floor", "Ceiling" ], "type": "string", "description": "Direction in which an Fenergo.Nebula.DigitalAgents.Models.Abstraction.SloDefinition threshold is breached." }, "UserDashboardDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "tabColour": { "type": "string", "nullable": true }, "tabOrder": { "type": "integer", "format": "int32" }, "createdAt": { "type": "string", "nullable": true }, "updatedAt": { "type": "string", "nullable": true }, "widgets": { "type": "array", "items": { "$ref": "#/components/schemas/PersonalisedWidgetDto" }, "nullable": true }, "visibility": { "type": "string", "nullable": true }, "personaId": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "visualOptions": { "nullable": true } }, "additionalProperties": false }, "UserDashboardsDto": { "type": "object", "properties": { "dashboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserDashboardDto" }, "nullable": true } }, "additionalProperties": false }, "UserDashboardsDtoServiceResponse": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserDashboardsDto" }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "WidgetDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "groupBy": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "dataSource": { "type": "string", "nullable": true }, "filters": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" }, "nullable": true }, "nullable": true } }, "additionalProperties": false }, "WidgetPositionDto": { "type": "object", "properties": { "col": { "type": "integer", "format": "int32" }, "row": { "type": "integer", "format": "int32" } }, "additionalProperties": false } }, "securitySchemes": { "Bearer": { "type": "apiKey", "description": "Please insert JWT with Bearer into field", "name": "Authorization", "in": "header" } } }, "security": [ { "Bearer": [ ] } ] }