{ "openapi": "3.0.1", "info": { "title": "Fenergo Nebula Reports Query", "description": "**Reports Query API**:


Reports Query API provides endpoints in order to retrieve all related models and their versions.


**Reports Query API provides**:
", "version": "2.0" }, "servers": [ { "url": "/reportsquery" } ], "paths": { "/api/v2/Categories": { "get": { "tags": [ "Categories", "v2" ], "summary": "Returns all non-deleted categories for the requesting tenant", "operationId": "GetAllCategories", "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": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CategoryDtoIEnumerableServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/CustomTable": { "get": { "tags": [ "CustomTable", "v2" ], "summary": "List all active custom tables for the current tenant.", "description": "\nDeleted tables are excluded. Default sort is `updatedAt` descending.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetAllCustomTables", "parameters": [ { "name": "orderBy", "in": "query", "description": "Optional sort field: `name` (ASC), `createdAt` (DESC), or `updatedAt` (DESC, default).", "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": "Success. Returns the list of custom tables.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllCustomTablesItemDtoIEnumerableServiceResponse" } } } }, "400": { "description": "Bad request — unknown orderBy value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/CustomTable/{id}": { "get": { "tags": [ "CustomTable", "v2" ], "summary": "Get a single custom table by its identifier.", "description": "\nReturns 404 when the table does not exist, belongs to a different tenant, or has been deleted.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetCustomTableById", "parameters": [ { "name": "id", "in": "path", "description": "Custom table GUID.", "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": "Success. Returns the custom table detail.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCustomTableByIdDtoServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not found.", "type": "Error", "errorCode": "Error Code" } ] } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/CustomTable/{id}/rows": { "get": { "tags": [ "CustomTable", "v2" ], "summary": "Get a paginated data preview for a custom table.", "description": "\nFilter is applied across the entire table before pagination.\n\nReturns 404 when the table does not exist, belongs to a different tenant, or has been deleted.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetCustomTableRows", "parameters": [ { "name": "id", "in": "path", "description": "Custom table GUID.", "required": true, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "Number of rows to skip (default 0).", "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "take", "in": "query", "description": "Number of rows to return (default 50, max 500).", "schema": { "type": "integer", "format": "int32", "default": 50 } }, { "name": "filter", "in": "query", "description": "Optional case-insensitive substring filter applied across all cells.", "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": "Success. Returns the paginated row preview.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCustomTableRowsDtoServiceResponse" } } } }, "400": { "description": "Bad request — invalid take value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not found.", "type": "Error", "errorCode": "Error Code" } ] } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/CustomTable/{id}/export": { "get": { "tags": [ "CustomTable", "v2" ], "summary": "Export the full CSV file for a custom table.", "description": "\nStreams the stored CSV directly from S3 as a file download.\n\nReturns 404 when the table does not exist, belongs to a different tenant, has been deleted, or has never been imported.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "ExportCustomTableCsv", "parameters": [ { "name": "id", "in": "path", "description": "Custom table GUID.", "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": "Success. Returns the CSV file as an attachment.", "content": { "application/json": { "schema": { "type": "string", "format": "binary" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not found.", "type": "Error", "errorCode": "Error Code" } ] } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/CustomTable/limits": { "get": { "tags": [ "CustomTable", "v2" ], "summary": "Get the configured limits for custom table operations.", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetCustomTableLimits", "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": "OK. Returns the limits configuration.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomTableLimitsDtoServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Favourites": { "get": { "tags": [ "Favourites", "v2" ], "summary": "Returns all favourite queries for the requesting user", "operationId": "GetFavourites", "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": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FavouriteDtoIEnumerableServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Favourites/recent-activity": { "get": { "tags": [ "Favourites", "v2" ], "summary": "Returns recent report activity for the user's favourite queries", "operationId": "GetRecentFavouriteActivity", "parameters": [ { "name": "top", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 5 } }, { "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": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecentFavouriteActivityDtoIEnumerableServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Query": { "get": { "tags": [ "Query", "v2" ], "summary": "Get all stored Query definitions", "description": "\nThis method returns all stored query definitions

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetAllQueries", "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": "Success. The list of Query definitions is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllQueryDefinitionsItemDtoIEnumerableServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Query/page": { "get": { "tags": [ "Query", "v2" ], "summary": "Get a page of stored Query definitions", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetQueriesPage", "parameters": [ { "name": "pageSize", "in": "query", "description": "Must be 50. Any other value returns a 400 Bad Request.", "schema": { "type": "integer", "format": "int32", "default": 50 } }, { "name": "pageToken", "in": "query", "description": "Opaque continuation token from the previous page response", "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": "Success. A page of Query definitions is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetQueryDefinitionSummaryDtoItemsPageServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Query/{id}": { "get": { "tags": [ "Query", "v2" ], "summary": "Get Stored Query definition", "description": "\nThis method returns the stored query definition for the given Id

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetQueryById", "parameters": [ { "name": "id", "in": "path", "description": "", "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": "Success. The Query definitions is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetQueryDefinitionByIdDtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationErrorModelListServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Query/{id}/history": { "post": { "tags": [ "Query", "v2" ], "summary": "Get Stored Query definition", "description": "\nThis method returns the reporting history of a stored query definition for the given Id and filters

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetReportingHistory", "parameters": [ { "name": "id", "in": "path", "description": "", "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" } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/GetReportingHistoryRequestDtoServiceRequest" } ] } } } }, "responses": { "200": { "description": "Success. The reporting historyis returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetReportingHistoryDtoItemsPageServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Query/{id}/assistant/history": { "get": { "tags": [ "Query", "v2" ], "summary": "Get Stored Query definition", "description": "\nThis method returns the reporting history of a stored query definition for the given Id and filters

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetAssistantHistory", "parameters": [ { "name": "id", "in": "path", "description": "", "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": "Success. The query assistant returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssistantChatMessageDtoListServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/stats": { "get": { "tags": [ "Report", "v2" ], "summary": "Get reports overview stats for the dashboard", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetReportsStats", "parameters": [ { "name": "period", "in": "query", "description": "Optional period in YYYY-MM format (e.g. \"2025-03\"). Defaults to current UTC month.", "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": "Success. The stats are returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportsOverviewStatsDtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/recent": { "get": { "tags": [ "Report", "v2" ], "summary": "Get recent reports across all queries for the current tenant", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetRecentReports", "parameters": [ { "name": "pageSize", "in": "query", "description": "Number of results per page (default: 10)", "schema": { "type": "integer", "format": "int32", "default": 10 } }, { "name": "paginationToken", "in": "query", "description": "Token for the next page of results", "schema": { "type": "string" } }, { "name": "status", "in": "query", "description": "Optional status filter: InProgress, Completed, or Failed", "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": "Success. The recent reports are returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetRecentReportDtoItemsPageServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/{id}": { "get": { "tags": [ "Report", "v2" ], "summary": "Get generated Report", "description": "\nThis method returns the generated report for the given id

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetReportByIdV2", "parameters": [ { "name": "id", "in": "path", "description": "", "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": "Success. The Report is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetReportByIdV2DtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationErrorModelListServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/{id}/status": { "get": { "tags": [ "Report", "v2" ], "summary": "Get Report status", "description": "\nThis method returns the report status for the given tenant and id.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetStatusByIdV2", "parameters": [ { "name": "id", "in": "path", "description": "", "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": "Success. The Report Status is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetReportStatusByIdV2DtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationErrorModelListServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/{id}/result/download": { "get": { "tags": [ "Report", "v2" ], "summary": "Get Report Result", "description": "\nThis method returns a Url to download the result file for the given tenant and id.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetReportResultV2", "parameters": [ { "name": "id", "in": "path", "description": "", "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": "Success. The Report url is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PresignedUrlV2DtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationErrorModelListServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not Found", "type": "Error", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/conversations": { "get": { "tags": [ "Report", "v2" ], "summary": "List conversations for the current user, newest-first.", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "ListConversations", "parameters": [ { "name": "pageSize", "in": "query", "description": "Number of results per page (default: 20).", "schema": { "type": "integer", "format": "int32", "default": 20 } }, { "name": "continuationToken", "in": "query", "description": "Pagination token from the previous page, or null for first page.", "schema": { "type": "string" } }, { "name": "source", "in": "query", "description": "Optional source filter. \"standalone\" returns conversations with a null or \"standalone\" source (backwards compat).\n\"query\" returns only query-scoped conversations. Omit to return all conversations.", "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": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationSummaryDtoItemsPageServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Report/conversations/{conversationId}/messages": { "get": { "tags": [ "Report", "v2" ], "summary": "Get message history for a specific conversation.", "description": "

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetConversationMessages", "parameters": [ { "name": "conversationId", "in": "path", "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": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationMessageDtoListServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/report-branding": { "get": { "tags": [ "ReportBranding", "v2" ], "summary": "Get report branding configuration", "description": "\nThis method returns the report branding configuration for the current tenant

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetReportBranding", "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": "Success. The report branding configuration is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportBrandingResponseDtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Schedule": { "get": { "tags": [ "Schedule", "v2" ], "summary": "Get all Schedules", "description": "\nThis method returns all schedules for the current tenant

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetAllSchedules", "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": "Success. The list of Schedules is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllSchedulesItemDtoIEnumerableServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Schedule/{id}": { "get": { "tags": [ "Schedule", "v2" ], "summary": "Get Schedule by Id", "description": "\nThis method returns the schedule for the given Id

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetScheduleById", "parameters": [ { "name": "id", "in": "path", "description": "", "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": "Success. The Schedule is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetScheduleByIdDtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Not found. No schedule exists for the given Id", "type": "Error", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal Server Error" }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Schema": { "get": { "tags": [ "Schema", "v2" ], "summary": "Get all tables", "description": "\nThis method returns all Glue tables for a specific tenant.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetTables", "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": "Success. The list of GlueTables is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllTablesItemDtoIEnumerableServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } }, "/api/v2/Schema/{tableName}": { "get": { "tags": [ "Schema", "v2" ], "summary": "Get a Table", "description": "\nThis method returns a specific Glue table for a specific tenant.

Required permissions:
Following permissions are required: ReportingAccess", "operationId": "GetTable", "parameters": [ { "name": "tableName", "in": "path", "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": "Success. The list of GlueTables is returned", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTableDtoServiceResponse" } } } }, "400": { "description": "Bad request. The request has missing/invalid values", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponse" } } } }, "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/ObjectServiceResponse" }, "example": { "data": { }, "messages": [ { "message": "Access denied. Following permissions are required: Permission1, Permission2", "type": "Forbidden", "errorCode": "Error Code" } ] } } } }, "500": { "description": "Internal server exception. Please, contact your provider.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ObjectServiceResponse" }, "example": { "data": null, "messages": [ { "message": "Internal server exception. Please, contact your provider.", "type": "Error", "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/StringServiceResponse" }, "example": { "data": null, "messages": [ { "message": "This endpoint is obsolete and was terminated on yyyy-MM-dd", "type": "Error", "errorCode": "OBSOLETE_ENDPOINT" } ] } } } } } } } }, "components": { "schemas": { "AccessLayer": { "type": "object", "properties": { "dataKey": { "type": "string", "nullable": true }, "accessLayerType": { "type": "string", "nullable": true }, "dataType": { "type": "string", "nullable": true }, "sensitiveDataType": { "allOf": [ { "$ref": "#/components/schemas/SensitiveDataType" } ] }, "isSensitiveDataAccessLayer": { "type": "boolean", "readOnly": true } }, "additionalProperties": false }, "AssistantChatMessageDto": { "type": "object", "properties": { "order": { "type": "integer", "description": "Message Order", "format": "int32" }, "role": { "type": "string", "description": "Actor", "nullable": true }, "content": { "type": "string", "description": "Message Content", "nullable": true } }, "additionalProperties": false, "description": "AssistantChatMessageDto" }, "AssistantChatMessageDtoListServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AssistantChatMessageDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "CategoryDto": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "nullable": true }, "colour": { "type": "string", "nullable": true }, "queryCount": { "type": "integer", "format": "int32" } }, "additionalProperties": false, "description": "A single query category returned in the list" }, "CategoryDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ConversationMessageDto": { "type": "object", "properties": { "order": { "type": "integer", "description": "Zero-based position in the conversation.", "format": "int32" }, "role": { "type": "string", "description": "\"user\" or \"assistant\".", "nullable": true }, "content": { "type": "string", "description": "Plain-text content of the message.", "nullable": true } }, "additionalProperties": false, "description": "A single turn in an agent chat conversation." }, "ConversationMessageDtoListServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationMessageDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ConversationSummaryDto": { "type": "object", "properties": { "conversationId": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "created": { "type": "string", "format": "date-time" }, "updated": { "type": "string", "format": "date-time" }, "messageCount": { "type": "integer", "format": "int32" }, "firstMessageSnippet": { "type": "string", "nullable": true }, "lastReportId": { "type": "string", "nullable": true }, "lastViewedAt": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false, "description": "DTO representing a single conversation in the list." }, "ConversationSummaryDtoItemsPage": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationSummaryDto" }, "nullable": true }, "paginationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ConversationSummaryDtoItemsPageServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/ConversationSummaryDtoItemsPage" } ], "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "CoverSheetResponseDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether the cover sheet is included in the report." }, "showLogo": { "type": "boolean", "description": "Whether the tenant logo is displayed on the cover sheet." }, "showGeneratedDate": { "type": "boolean", "description": "Whether the report generation date is shown on the cover sheet." } }, "additionalProperties": false, "description": "Configuration for the cover sheet injected into XLSX reports." }, "CustomTableColumnDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Column name as it appears in the CSV header.", "nullable": true }, "type": { "type": "string", "description": "Raw Glue physical column type (e.g. `\"string\"`, `\"int\"`, `\"bigint\"`,\n`\"double\"`, `\"decimal\"`, `\"date\"`, `\"timestamp\"`, `\"boolean\"`).\nThe UI maps this to a friendly label.", "nullable": true }, "nullable": { "type": "boolean", "description": "Whether the column accepts null values." }, "description": { "type": "string", "description": "Optional human-readable description of the column.", "nullable": true } }, "additionalProperties": false, "description": "DTO representing a single column in a custom table schema." }, "CustomTableLimitsDto": { "type": "object", "properties": { "maxRowsPerUpload": { "type": "integer", "description": "Maximum number of data rows allowed in a single CSV upload.", "format": "int32" }, "maxBytesPerUpload": { "type": "integer", "description": "Maximum file size in bytes for a single CSV upload.", "format": "int64" }, "maxRowsPerTable": { "type": "integer", "description": "Maximum total number of data rows per custom table.", "format": "int64" }, "maxTablesPerTenant": { "type": "integer", "description": "Maximum number of non-deleted custom tables per tenant.", "format": "int32" } }, "additionalProperties": false, "description": "DTO exposing the configured limits for custom table operations." }, "CustomTableLimitsDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/CustomTableLimitsDto" } ], "description": "DTO exposing the configured limits for custom table operations.", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "CustomTableType": { "enum": [ "Reference", "Operational" ], "type": "string" }, "DisclaimerResponseDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether the disclaimer block is included in the report." }, "text": { "type": "string", "description": "Disclaimer text content.", "nullable": true } }, "additionalProperties": false, "description": "Configuration for the disclaimer block appended to XLSX reports." }, "EmailConfigResponseDto": { "type": "object", "properties": { "senderDisplayName": { "type": "string", "description": "Display name shown in the From field of outgoing report emails.", "nullable": true }, "subjectLine": { "type": "string", "description": "Subject line for outgoing report emails.", "nullable": true }, "body": { "type": "string", "description": "Body content of outgoing report emails.", "nullable": true }, "footer": { "allOf": [ { "$ref": "#/components/schemas/EmailFooterResponseDto" } ], "description": "Footer settings for outgoing report emails.", "nullable": true }, "showLogo": { "type": "boolean", "description": "Whether the tenant logo is displayed in the email." } }, "additionalProperties": false, "description": "Email-specific branding configuration applied to report notification emails." }, "EmailFooterResponseDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether the email footer is included." }, "text": { "type": "string", "description": "Footer text content.", "nullable": true } }, "additionalProperties": false, "description": "Configuration for the footer block appended to report notification emails." }, "FavouriteDto": { "type": "object", "properties": { "queryId": { "type": "string", "format": "uuid" }, "queryName": { "type": "string", "nullable": true }, "markedAtUtc": { "type": "string", "format": "date-time" } }, "additionalProperties": false, "description": "A favourited query item" }, "FavouriteDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/FavouriteDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetAllCustomTablesItemDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the custom table.", "format": "uuid" }, "name": { "type": "string", "description": "Display name of the custom table.", "nullable": true }, "description": { "type": "string", "description": "Optional description.", "nullable": true }, "columnCount": { "type": "integer", "description": "Number of columns in the schema (0 when never imported).", "format": "int32" }, "rowCount": { "type": "integer", "description": "Total number of data rows; null when never imported.", "format": "int64", "nullable": true }, "byteSize": { "type": "integer", "description": "Size of the stored CSV in bytes; null when never imported.", "format": "int64", "nullable": true }, "createdBy": { "type": "string", "description": "User who created the table.", "nullable": true }, "createdAtUtc": { "type": "string", "description": "UTC timestamp when the table was created.", "format": "date-time" }, "updatedAtUtc": { "type": "string", "description": "UTC timestamp of the most recent update.", "format": "date-time" }, "updatedBy": { "type": "string", "description": "User who last updated the table.", "nullable": true }, "lastImportedAtUtc": { "type": "string", "description": "UTC timestamp of the most recent successful data import; null when never imported.", "format": "date-time", "nullable": true }, "lastImportedBy": { "type": "string", "description": "User who performed the most recent successful data import; null when never imported.", "nullable": true }, "tableType": { "allOf": [ { "$ref": "#/components/schemas/CustomTableType" } ], "description": "Classification of the table." } }, "additionalProperties": false, "description": "Custom table item returned in the list response." }, "GetAllCustomTablesItemDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/GetAllCustomTablesItemDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetAllQueryDefinitionsItemDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of query", "nullable": true, "example": "7e57cfd6-881c-4587-ada8-24a23b76464e" }, "name": { "type": "string", "description": "Name of query", "nullable": true, "example": "GetAllEntityDataIds" }, "description": { "type": "string", "description": "Short description", "nullable": true, "example": "Get all entitydata Ids" }, "sqlQuery": { "type": "string", "description": "Actual raw SQL of the query", "nullable": true, "example": "Select Id From entitydata" }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/QueryParameterDto" }, "description": "Parameter definitions for this query", "nullable": true }, "categoryId": { "type": "string", "description": "Optional tenant-scoped category this query belongs to", "format": "uuid", "nullable": true } }, "additionalProperties": false, "description": "Query definition item as it is returned by GetAllQueriesQuery" }, "GetAllQueryDefinitionsItemDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/GetAllQueryDefinitionsItemDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetAllSchedulesItemDto": { "allOf": [ { "$ref": "#/components/schemas/ScheduleQueryDto" }, { "type": "object", "additionalProperties": false } ], "description": "Schedule item returned in a list" }, "GetAllSchedulesItemDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/GetAllSchedulesItemDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetAllTablesItemDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of schema", "nullable": true, "example": "entitydata" }, "description": { "type": "string", "description": "Description of schema", "nullable": true, "example": "New schema for related parties" }, "created": { "type": "string", "description": "When it was created", "format": "date-time", "example": "2020-09-21T08:53:37.497+00:00" }, "parameters": { "type": "object", "additionalProperties": { "type": "string", "nullable": true }, "description": "Parameters included in schema", "nullable": true }, "columns": { "type": "array", "items": { "type": "string" }, "description": "Columns names included in schema", "nullable": true } }, "additionalProperties": false, "description": "Details included on a schema item" }, "GetAllTablesItemDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/GetAllTablesItemDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetCustomTableByIdDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the custom table.", "format": "uuid" }, "name": { "type": "string", "description": "Display name of the custom table.", "nullable": true }, "description": { "type": "string", "description": "Optional description.", "nullable": true }, "columnCount": { "type": "integer", "description": "Number of columns in the schema (0 when never imported).", "format": "int32" }, "rowCount": { "type": "integer", "description": "Total number of data rows; null when never imported.", "format": "int64", "nullable": true }, "byteSize": { "type": "integer", "description": "Size of the stored CSV in bytes; null when never imported.", "format": "int64", "nullable": true }, "createdBy": { "type": "string", "description": "User who created the table.", "nullable": true }, "createdAtUtc": { "type": "string", "description": "UTC timestamp when the table was created.", "format": "date-time" }, "updatedAtUtc": { "type": "string", "description": "UTC timestamp of the most recent update.", "format": "date-time" }, "updatedBy": { "type": "string", "description": "User who last updated the table.", "nullable": true }, "lastImportedAtUtc": { "type": "string", "description": "UTC timestamp of the most recent successful data import; null when never imported.", "format": "date-time", "nullable": true }, "lastImportedBy": { "type": "string", "description": "User who performed the most recent successful data import; null when never imported.", "nullable": true }, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CustomTableColumnDto" }, "description": "Column schema. Empty when the table has never been imported.", "nullable": true }, "tableType": { "allOf": [ { "$ref": "#/components/schemas/CustomTableType" } ], "description": "Classification of the table." } }, "additionalProperties": false, "description": "Detailed custom table response returned by `GET /api/v2/customtable/{id}`." }, "GetCustomTableByIdDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetCustomTableByIdDto" } ], "description": "Detailed custom table response returned by `GET /api/v2/customtable/{id}`.", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetCustomTableRowsDto": { "type": "object", "properties": { "headers": { "type": "array", "items": { "type": "string" }, "description": "Column header names in CSV order.", "nullable": true }, "rows": { "type": "array", "items": { "type": "array", "items": { "type": "string" } }, "description": "Page slice of (filtered) data rows.", "nullable": true }, "totalFilteredCount": { "type": "integer", "description": "Total number of rows that matched the filter (or the total row count when no filter is active).\nUse for client-side pagination calculation.", "format": "int64" }, "totalRowCount": { "type": "integer", "description": "Total number of rows before any filter is applied (from the aggregate metadata).", "format": "int64" } }, "additionalProperties": false, "description": "Paginated data preview response for `GET /api/v2/customtable/{id}/rows`." }, "GetCustomTableRowsDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetCustomTableRowsDto" } ], "description": "Paginated data preview response for `GET /api/v2/customtable/{id}/rows`.", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetQueryDefinitionByIdDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of query", "nullable": true, "example": "7e57cfd6-881c-4587-ada8-24a23b76464e" }, "name": { "type": "string", "description": "Name of query", "nullable": true, "example": "GetAllEntityDataIds" }, "description": { "type": "string", "description": "Short description", "nullable": true, "example": "Get all entitydata Ids" }, "sqlQuery": { "type": "string", "description": "Actual raw SQL of the query", "nullable": true, "example": "Select Id From entitydata" }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/QueryParameterDto" }, "description": "Parameter definitions for this query", "nullable": true }, "categoryId": { "type": "string", "description": "Optional tenant-scoped category this query belongs to", "format": "uuid", "nullable": true } }, "additionalProperties": false, "description": "Query dto as it is returned by GetQueryByIdQuery" }, "GetQueryDefinitionByIdDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetQueryDefinitionByIdDto" } ], "description": "Query dto as it is returned by GetQueryByIdQuery", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetQueryDefinitionSummaryDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/QueryParameterDto" }, "description": "Optional parameter definitions for parameterised queries.", "nullable": true }, "categoryId": { "type": "string", "description": "Optional category identifier.", "format": "uuid", "nullable": true } }, "additionalProperties": false, "description": "Slim query definition item returned by the paginated GetQueriesPage endpoint.\nSqlQuery is intentionally omitted to keep page payloads well below the Lambda 6 MB\nsynchronous-invoke limit (worst case: 50 × 256 KB = 12.5 MB).\nThe full SQL can be retrieved via GET /api/v2/Query/{id} when needed." }, "GetQueryDefinitionSummaryDtoItemsPage": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/GetQueryDefinitionSummaryDto" }, "nullable": true }, "paginationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetQueryDefinitionSummaryDtoItemsPageServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetQueryDefinitionSummaryDtoItemsPage" } ], "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetRecentReportDto": { "type": "object", "properties": { "reportId": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "status": { "allOf": [ { "$ref": "#/components/schemas/ReportStatusV2Dto" } ], "description": "Report execution status" }, "failedReason": { "type": "string", "nullable": true }, "created": { "type": "string", "format": "date-time" }, "completed": { "type": "string", "format": "date-time", "nullable": true }, "runBy": { "type": "string", "nullable": true }, "queryId": { "type": "string", "format": "uuid", "nullable": true }, "rowCount": { "type": "integer", "format": "int32", "nullable": true } }, "additionalProperties": false, "description": "DTO for a single recent report" }, "GetRecentReportDtoItemsPage": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/GetRecentReportDto" }, "nullable": true }, "paginationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetRecentReportDtoItemsPageServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetRecentReportDtoItemsPage" } ], "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetReportByIdV2Dto": { "type": "object", "properties": { "id": { "type": "string", "description": "Identifier of the report", "nullable": true, "example": "00331a74-300e-4a39-a6cb-339a3781dnna" }, "user": { "type": "string", "description": "User that created the report", "nullable": true, "example": "eac709n7-a89y-3n59-b516-bcuub500de36" }, "description": { "type": "string", "description": "Short description of the report", "nullable": true, "example": "My Monthly report for active retail clients" }, "status": { "allOf": [ { "$ref": "#/components/schemas/ReportStatusV2Dto" } ], "description": "Status of the report", "example": "InProgress, Completed, Failed" }, "created": { "type": "string", "description": "Creation datetime", "format": "date-time", "example": "2020-09-21T08:53:37.497+00:00" }, "completed": { "type": "string", "description": "Execution completed datetime", "format": "date-time", "nullable": true, "example": "2020-09-21T08:53:37.497+00:00" }, "sqlQuery": { "type": "string", "description": "The actual SQL query of the report", "nullable": true, "example": "Select * from entitydata where category='Retail'" } }, "additionalProperties": false, "description": "A report item as it is returned by GetReportByIdQueryV2" }, "GetReportByIdV2DtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetReportByIdV2Dto" } ], "description": "A report item as it is returned by GetReportByIdQueryV2", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetReportStatusByIdV2Dto": { "type": "object", "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/ReportStatusV2Dto" } ], "description": "Status of the report" }, "presignedUrl": { "allOf": [ { "$ref": "#/components/schemas/PresignedUrlV2Dto" } ], "description": "A URL of a generated Report which is valid for a small period of time", "nullable": true }, "queryErrorMessages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "description": "Query error messages", "nullable": true } }, "additionalProperties": false, "description": "" }, "GetReportStatusByIdV2DtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetReportStatusByIdV2Dto" } ], "description": "", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetReportingHistoryDto": { "type": "object", "properties": { "reportId": { "type": "string", "description": "Identifier of report", "nullable": true, "example": "7e57cfd6-881c-4587-ada8-24a23b76464e" }, "description": { "type": "string", "description": "Description of the report", "nullable": true, "example": "Entity data report" }, "status": { "allOf": [ { "$ref": "#/components/schemas/ReportStatusV2Dto" } ], "description": "Status of the report", "example": "Completed" }, "failedReason": { "type": "string", "description": "The reason the report failed if the status is Failed", "nullable": true, "example": "Athena Syntax Error" }, "runDate": { "type": "string", "description": "The date that the report ran", "format": "date-time", "nullable": true, "example": "10/1/2023" }, "runBy": { "type": "string", "description": "The id of the user that ran the report", "nullable": true, "example": "e244b410-5fba-4d6f-94be-b2e5574ff5b7" }, "sqlQuery": { "type": "string", "description": "Actual raw SQL of the query", "nullable": true, "example": "Select Id From entitydata" }, "accessLayers": { "type": "array", "items": { "$ref": "#/components/schemas/AccessLayer" }, "description": "The list of the access layers that were enforced when the report ran", "nullable": true }, "parameterValues": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The parameter values that were substituted into the SQL at execution time", "nullable": true, "example": { "entity_type": "Corporation", "from_date": "2026-01-01" } } }, "additionalProperties": false, "description": "Reporting History dto as it is returned by GetReportingHistory" }, "GetReportingHistoryDtoItemsPage": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/GetReportingHistoryDto" }, "nullable": true }, "paginationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetReportingHistoryDtoItemsPageServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetReportingHistoryDtoItemsPage" } ], "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetReportingHistoryRequestDto": { "type": "object", "properties": { "filters": { "allOf": [ { "$ref": "#/components/schemas/ReportingHistoryFilters" } ], "description": "Optional filters used for filtering the reporting history", "nullable": true }, "pageOptions": { "allOf": [ { "$ref": "#/components/schemas/PageOptions" } ], "description": "Options for the paging of the reporting history of a query", "nullable": true } }, "additionalProperties": false, "description": "Request for ReportingHistory" }, "GetReportingHistoryRequestDtoServiceRequest": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetReportingHistoryRequestDto" } ], "description": "Request for ReportingHistory", "nullable": true } }, "additionalProperties": false }, "GetScheduleByIdDto": { "allOf": [ { "$ref": "#/components/schemas/ScheduleQueryDto" }, { "type": "object", "additionalProperties": false } ], "description": "Schedule detail returned by GetScheduleById" }, "GetScheduleByIdDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetScheduleByIdDto" } ], "description": "Schedule detail returned by GetScheduleById", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "GetTableDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of schema", "nullable": true, "example": "entitydata" }, "description": { "type": "string", "description": "Description of schema", "nullable": true, "example": "New schema for related parties" }, "created": { "type": "string", "description": "When it was created", "format": "date-time", "example": "2020-09-21T08:53:37.497+00:00" }, "parameters": { "type": "object", "additionalProperties": { "type": "string", "nullable": true }, "description": "Parameters included in schema", "nullable": true }, "columns": { "type": "array", "items": { "type": "string" }, "description": "Columns names included in schema", "nullable": true } }, "additionalProperties": false, "description": "Details included on a schema item" }, "GetTableDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/GetTableDto" } ], "description": "Details included on a schema item", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "HeaderRowResponseDto": { "type": "object", "properties": { "backgroundColour": { "type": "string", "description": "Background colour of the header row (hex, e.g. \"#1B2A4A\").", "nullable": true }, "textColour": { "type": "string", "description": "Text colour of the header row (hex, e.g. \"#FFFFFF\").", "nullable": true }, "freezeRow": { "type": "boolean", "description": "Whether the header row is frozen so it remains visible when scrolling." }, "autoFitColumns": { "type": "boolean", "description": "Whether columns are auto-fitted to their content width." } }, "additionalProperties": false, "description": "Configuration for the header row styling in XLSX reports." }, "HttpValidationProblemDetails": { "allOf": [ { "$ref": "#/components/schemas/ProblemDetails" }, { "type": "object", "properties": { "errors": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } }, "nullable": true } }, "additionalProperties": { } } ] }, "LogoResponseDto": { "type": "object", "properties": { "s3Key": { "type": "string", "description": "S3 object key for the stored logo file.", "nullable": true }, "filename": { "type": "string", "description": "Original filename of the uploaded logo.", "nullable": true }, "sizeBytes": { "type": "integer", "description": "Size of the logo file in bytes.", "format": "int64", "nullable": true }, "mimeType": { "type": "string", "description": "MIME type of the logo file (e.g. \"image/png\").", "nullable": true } }, "additionalProperties": false, "description": "Represents the logo asset associated with tenant report branding." }, "ObjectServiceResponse": { "type": "object", "properties": { "data": { "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "PageOptions": { "type": "object", "properties": { "paginationToken": { "type": "string", "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "sortOrder": { "allOf": [ { "$ref": "#/components/schemas/SortOrder" } ] } }, "additionalProperties": false }, "PresignedUrlV2Dto": { "type": "object", "properties": { "url": { "type": "string", "description": "Link of the report", "nullable": true }, "expirationDate": { "type": "string", "description": "Expiration Datetime", "format": "date-time", "nullable": true }, "friendlyName": { "type": "string", "description": "Name of the file to download", "nullable": true }, "duration": { "type": "number", "description": "Duration of url validity in milliseconds", "format": "double", "readOnly": true } }, "additionalProperties": false, "description": "A URL of a generated Report which is valid for a small period of time" }, "PresignedUrlV2DtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/PresignedUrlV2Dto" } ], "description": "A URL of a generated Report which is valid for a small period of time", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "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": { } }, "QueryParameterDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "displayLabel": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "required": { "type": "boolean" }, "defaultValue": { "type": "string", "nullable": true }, "options": { "type": "array", "items": { "type": "string" }, "nullable": true } }, "additionalProperties": false, "description": "API contract DTO for a query parameter definition" }, "RecentFavouriteActivityDto": { "type": "object", "properties": { "reportId": { "type": "string", "format": "uuid" }, "queryId": { "type": "string", "format": "uuid" }, "queryName": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true }, "createdAtUtc": { "type": "string", "format": "date-time" }, "completedAtUtc": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false, "description": "A recent report run for a favourited query" }, "RecentFavouriteActivityDtoIEnumerableServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/RecentFavouriteActivityDto" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ReportBrandingResponseDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether tenant report branding is enabled." }, "logo": { "allOf": [ { "$ref": "#/components/schemas/LogoResponseDto" } ], "description": "Logo asset details. Null if no logo has been configured.", "nullable": true }, "logoPresignedUrl": { "type": "string", "description": "Presigned GET URL for downloading the configured logo from S3.\nNull if no logo has been configured.", "nullable": true }, "pdfFooter": { "type": "string", "description": "Text content placed in the footer of generated PDF reports.", "nullable": true }, "xlsx": { "allOf": [ { "$ref": "#/components/schemas/XlsxConfigResponseDto" } ], "description": "XLSX-specific branding configuration.", "nullable": true }, "email": { "allOf": [ { "$ref": "#/components/schemas/EmailConfigResponseDto" } ], "description": "Email-specific branding configuration.", "nullable": true } }, "additionalProperties": false, "description": "Response payload representing the current tenant report branding configuration." }, "ReportBrandingResponseDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/ReportBrandingResponseDto" } ], "description": "Response payload representing the current tenant report branding configuration.", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ReportStatusV2Dto": { "enum": [ "InProgress", "Completed", "Failed" ], "type": "string", "description": "Report execution status" }, "ReportingHistoryFilters": { "type": "object", "properties": { "queryId": { "type": "string", "format": "uuid" }, "users": { "type": "array", "items": { "type": "string" }, "nullable": true }, "entityGeographicAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "entityBusinessRelatedAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "journeyGeographicAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "journeyBusinessRelatedAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "fieldGeographicAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "fieldBusinessRelatedAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "productFieldBusinessRelatedAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "productFieldGeographicAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "productGeographicAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "productBusinessRelatedAccessLayers": { "type": "array", "items": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "ReportsOverviewStatsDto": { "type": "object", "properties": { "period": { "type": "string", "nullable": true }, "totalReports": { "type": "integer", "format": "int32" }, "completed": { "type": "integer", "format": "int32" }, "inProgress": { "type": "integer", "format": "int32" }, "failed": { "type": "integer", "format": "int32" }, "successRate": { "type": "number", "format": "double" }, "avgRuntimeMs": { "type": "integer", "format": "int64" }, "vsLastMonth": { "allOf": [ { "$ref": "#/components/schemas/VsLastMonthDto" } ], "description": "Month-over-month delta stats", "nullable": true }, "scheduledDeliveriesSent": { "type": "integer", "format": "int32" } }, "additionalProperties": false, "description": "DTO for the reports overview stats dashboard" }, "ReportsOverviewStatsDtoServiceResponse": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/ReportsOverviewStatsDto" } ], "description": "DTO for the reports overview stats dashboard", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ScheduleFormat": { "enum": [ "Pdf", "Xlsx", "Csv" ], "type": "string" }, "ScheduleFrequency": { "enum": [ "OneTime", "Daily", "Weekly", "Monthly" ], "type": "string" }, "ScheduleQueryDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique schedule identifier", "nullable": true }, "name": { "type": "string", "description": "Human-readable schedule name", "nullable": true }, "queryId": { "type": "string", "description": "ID of the query being scheduled", "nullable": true }, "frequency": { "allOf": [ { "$ref": "#/components/schemas/ScheduleFrequency" } ], "description": "Schedule frequency" }, "daysOfWeek": { "type": "array", "items": { "type": "integer", "format": "int32" }, "description": "Days of week for Weekly frequency", "nullable": true }, "dayOfMonth": { "type": "integer", "description": "Day of month for Monthly frequency", "format": "int32", "nullable": true }, "timeOfDay": { "type": "string", "description": "Time of day in HH:mm format", "nullable": true }, "timezone": { "type": "string", "description": "IANA timezone identifier", "nullable": true }, "format": { "allOf": [ { "$ref": "#/components/schemas/ScheduleFormat" } ], "description": "Output format" }, "recipients": { "type": "array", "items": { "type": "string" }, "description": "Recipient email addresses", "nullable": true }, "oneTimeRunAtUtc": { "type": "string", "description": "For OneTime: the exact UTC run datetime", "format": "date-time", "nullable": true }, "nextRunUtc": { "type": "string", "description": "Next scheduled UTC run time", "format": "date-time" }, "status": { "allOf": [ { "$ref": "#/components/schemas/ScheduleStatus" } ], "description": "Current schedule status" }, "createdBy": { "type": "string", "description": "User who created the schedule", "nullable": true }, "createdAtUtc": { "type": "string", "description": "UTC creation time", "format": "date-time" }, "lastRunUtc": { "type": "string", "description": "UTC time of last execution", "format": "date-time", "nullable": true }, "lastRunStatus": { "type": "string", "description": "Status of the last execution", "nullable": true }, "lastFailureReason": { "type": "string", "description": "Reason code from the most recent failed run (e.g. REPORT_EXECUTION_FAILED, QUERY_DELETED). Null if the last run succeeded.", "nullable": true }, "lastFailureMessage": { "type": "string", "description": "Sanitised detail from the most recent failed run (e.g. Athena error text). Null if the last run succeeded.", "nullable": true }, "parameters": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Fixed parameter values injected into the SQL query at execution time (name → value)", "nullable": true } }, "additionalProperties": false, "description": "Shared base properties for schedule query DTOs" }, "ScheduleStatus": { "enum": [ "Active", "Paused", "Suspended", "Completed", "Deleted" ], "type": "string" }, "SensitiveDataType": { "enum": [ "None", "SensitiveData", "SensitiveDataDelegate" ], "type": "string" }, "ServiceResponse": { "type": "object", "properties": { "data": { "type": "string", "nullable": true }, "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 }, "SortOrder": { "enum": [ "Ascending", "Descending" ], "type": "string" }, "StringServiceResponse": { "type": "object", "properties": { "data": { "type": "string", "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false }, "ValidationErrorModel": { "type": "object", "properties": { "propertyName": { "type": "string", "nullable": true }, "errorMessage": { "type": "string", "nullable": true }, "attemptedValue": { "nullable": true }, "errorCode": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ValidationErrorModelListServiceResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ValidationErrorModel" }, "nullable": true }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponseMessage" }, "nullable": true } }, "additionalProperties": false, "example": { "data": [ { "propertyName": "data", "errorMessage": "Data is required", "attemptedValue": "", "errorCode": "NotNullValidator" } ], "messages": [ { "message": "Data is required", "type": "Error", "errorCode": "Error Code" } ] } }, "VsLastMonthDto": { "type": "object", "properties": { "totalReportsDelta": { "type": "number", "format": "double" } }, "additionalProperties": false, "description": "Month-over-month delta stats" }, "XlsxConfigResponseDto": { "type": "object", "properties": { "coverSheet": { "allOf": [ { "$ref": "#/components/schemas/CoverSheetResponseDto" } ], "description": "Cover sheet settings for the XLSX report.", "nullable": true }, "headerRow": { "allOf": [ { "$ref": "#/components/schemas/HeaderRowResponseDto" } ], "description": "Header row styling settings for the XLSX report.", "nullable": true }, "disclaimer": { "allOf": [ { "$ref": "#/components/schemas/DisclaimerResponseDto" } ], "description": "Disclaimer block settings for the XLSX report.", "nullable": true } }, "additionalProperties": false, "description": "Top-level XLSX-specific branding configuration." } }, "securitySchemes": { "Bearer": { "type": "apiKey", "description": "Please insert JWT with Bearer into field", "name": "Authorization", "in": "header" } } }, "security": [ { "Bearer": [ ] } ] }