{
  "openapi": "3.0.0",
  "paths": {
    "/aiops/api/v1/events": {
      "post": {
        "operationId": "EventsController_create_v1",
        "parameters": [
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEventDto"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The new event has been accepted and will eventually be processed"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Events"
        ]
      }
    },
    "/aiops/api/v1/alerts": {
      "post": {
        "operationId": "AlertsController_create_v1",
        "parameters": [
          {
            "name": "wait_for_commit",
            "required": true,
            "in": "query",
            "description": "If true, the API wait until the change has committed before responding and will return the stored alert.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAlertDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The alert has been created and committed to the data store",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertModel"
                }
              }
            }
          },
          "202": {
            "description": "The new alert has been accepted and will eventually be created"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Alerts"
        ]
      },
      "get": {
        "operationId": "AlertsController_findAll_v1",
        "parameters": [
          {
            "name": "filter",
            "required": false,
            "in": "query",
            "description": "An optional filter to restrict the alerts returned from the query.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of alerts has been successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Base containing object for the collection.",
                  "properties": {
                    "items": {
                      "type": "array",
                      "description": "Array of items",
                      "items": {
                        "$ref": "#/components/schemas/AlertModel"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Alerts"
        ]
      }
    },
    "/aiops/api/v1/alerts/{id}": {
      "get": {
        "operationId": "AlertsController_findOne_v1",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "The id of the alert to get",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The matching alert",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Alerts"
        ]
      },
      "patch": {
        "operationId": "AlertsController_update_v1",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "The id of the alert to update",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wait_for_commit",
            "required": true,
            "in": "query",
            "description": "If true, the API wait until the change has committed before responding and will return the updated alert.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAlertDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The alert update has been processed and committed to the data store",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertModel"
                }
              }
            }
          },
          "202": {
            "description": "The alert update has been accepted and will eventually be processed"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Alerts"
        ]
      }
    },
    "/aiops/api/v1/incidents": {
      "get": {
        "operationId": "IncidentsController_findAll_v1",
        "parameters": [
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of incidents has been successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Base containing object for the collection.",
                  "properties": {
                    "items": {
                      "type": "array",
                      "description": "Array of items",
                      "items": {
                        "$ref": "#/components/schemas/IncidentModel"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Incidents",
          "Incidents"
        ]
      }
    },
    "/aiops/api/v1/incidents/{id}": {
      "get": {
        "operationId": "IncidentsController_findOne_v1",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "The id of the incident to get",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The matching incident",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Incidents",
          "Incidents"
        ]
      }
    },
    "/aiops/api/v1/incidents/{incident_id}/timeline-entries": {
      "post": {
        "operationId": "IncidentsTimelineController_createComment_v1",
        "parameters": [
          {
            "name": "incident_id",
            "required": true,
            "in": "path",
            "description": "The ID of the incident to add a timeline entry to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateIncidentTimelineDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Timeline entry (comment) has been successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the created timeline entry",
                      "example": "550e8400-e29b-41d4-a716-446655440000"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data"
          },
          "404": {
            "description": "Incident not found"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a `comment` type timeline entry for an incident",
        "tags": [
          "Incidents"
        ]
      }
    },
    "/aiops/api/v1/configuration/connection-types/{type}/connections": {
      "get": {
        "description": "Retrieve a list of all connections for a specific connection type. Optionally include full status details for each connection.",
        "operationId": "ConnectionTypesController_getConnectionsofConnectionType_v1",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "path",
            "description": "The connection type identifier, for example - Ansible, email-notifications,netcool-connector, etc.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeFullStatus",
            "required": false,
            "in": "query",
            "description": "When set to true, includes complete status details for each connection. When false or omitted, returns only basic status information (hasErrors and phase).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "decryptFields",
            "required": true,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of specified connection type has been successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Base containing object for the collection.",
                  "properties": {
                    "items": {
                      "type": "array",
                      "description": "Array of items",
                      "items": {
                        "$ref": "#/components/schemas/ConnectionsListResponseDto"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request sent to server to get details of the given connection type is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - invalid or missing token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to retrieve the details of the given connection type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get connections by type",
        "tags": [
          "Connections"
        ]
      },
      "post": {
        "description": "Create a new connection of the specified type. The connection type is specified in the URL path, and connection details are provided in the request body.",
        "operationId": "ConnectionTypesController_createConnection_v1",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "path",
            "description": "The connection type identifier for the new connection, For example - Ansible, email-notifications,netcool-connector, etc.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success response returned by create API endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCreationSuccessResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "The request sent to server to create the connection is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to create connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to create the connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new connection",
        "tags": [
          "Connections"
        ]
      }
    },
    "/aiops/api/v1/configuration/connection-types/{type}/connections/{name}": {
      "patch": {
        "description": "Update an existing connection identified by its type and name. This endpoint allows you to modify connection properties, settings, and credentials. Note: The name and displayName fields are required in the request body but their values cannot be changed - they must match the existing connection. The connection type and name in the URL path identify which connection to update. Returns a success message upon successful update with HTTP 200 status code.",
        "operationId": "ConnectionTypesController_updateConnectionByType_v1",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "path",
            "description": "The connection type identifier, for example - Ansible, email-notifications,netcool-connector, etc.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "required": true,
            "in": "path",
            "description": "The unique name of the connection to update",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success response returned by update API endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSuccessResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "The request sent to server to update the given connection is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to update connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to update the given connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update connection by type and name",
        "tags": [
          "Connections"
        ]
      },
      "delete": {
        "description": "Initiate the deletion of a connection identified by its type and name. This is an asynchronous operation that begins the termination process for the specified connection. The endpoint returns immediately with HTTP 202 (Accepted) status.",
        "operationId": "ConnectionTypesController_deleteConnectionByType_v1",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "path",
            "description": "The connection type identifier, for example - Ansible, email-notifications,netcool-connector, etc.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "required": true,
            "in": "path",
            "description": "The unique name of the connection to delete",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Connection deletion accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionDeleteResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request - client error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to delete connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to delete the given connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete connection by type and name",
        "tags": [
          "Connections"
        ]
      }
    },
    "/aiops/api/v1/configuration/connection-types/{type}/test-connection": {
      "post": {
        "description": "Tests a set of connection details to verify they can successfully reach the target system. This endpoint is used before a concrete connection has been created to validate the configuration and credentials.",
        "operationId": "ConnectionTypesController_testConnection_v1",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "path",
            "description": "The connection type identifier to test, for example - AppDynamics, netcool-connector, etc.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestConnectionDto"
              },
              "examples": {
                "netcool": {
                  "summary": "Netcool Connector Test",
                  "description": "Example payload for testing a Netcool ObjectServer connection. The connector type is automatically determined from the URL path parameter.",
                  "value": {
                    "connection_config": {
                      "tls": false,
                      "primary_objectserver": {
                        "api_port": 4100,
                        "url": "9.30.249.158"
                      },
                      "display_name": "netcool",
                      "username": "root",
                      "password": "netcool"
                    }
                  }
                },
                "appdynamics": {
                  "summary": "AppDynamics Connector Test",
                  "description": "Example payload for testing an AppDynamics connection. The connector type is automatically determined from the URL path parameter.",
                  "value": {
                    "connection_config": {
                      "using_proxy": false,
                      "tls": true,
                      "display_name": "apptest",
                      "dataSourceBaseUrl": "https://woody1.fyre.ibm.com",
                      "clientId": "root",
                      "clientSecret": "netcool"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success response returned by test connection endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Test connection succeeded"
                    },
                    "statusCode": {
                      "type": "number",
                      "example": 200
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid connection configuration or missing required parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed - invalid credentials provided for connection test",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "404": {
            "description": "Connection type not found or endpoint unreachable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse404Dto"
                }
              }
            }
          },
          "409": {
            "description": "Connection configuration conflicts with existing settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse409Dto"
                }
              }
            }
          },
          "500": {
            "description": "Connection test failed due to server error or network issues",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Test connection details",
        "tags": [
          "Connections"
        ]
      }
    },
    "/aiops/api/v1/configuration/connections": {
      "get": {
        "description": "Retrieve a list of all connections. Optionally include full status details and decrypt sensitive fields.",
        "operationId": "ConnectionsController_getallConnections_v1",
        "parameters": [
          {
            "name": "includeFullStatus",
            "required": false,
            "in": "query",
            "description": "When set to true, includes complete status details for each connection. When false or omitted, returns only basic status information (hasErrors and phase).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "decryptFields",
            "required": false,
            "in": "query",
            "description": "When set to true, decrypts sensitive field - Password in the connection configuration. When false or omitted, sensitive fields remain encrypted.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of specified connection type has been successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Base containing object for the collection.",
                  "properties": {
                    "items": {
                      "type": "array",
                      "description": "Array of items",
                      "items": {
                        "$ref": "#/components/schemas/ConnectionsListResponseDto"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request - client error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to access connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to retrieve the details of the given connection type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get all connections",
        "tags": [
          "Connections"
        ]
      }
    },
    "/aiops/api/v1/configuration/connections/{name}": {
      "get": {
        "description": "Retrieve detailed information about a specific connection identified by its name. Optionally include full status details and decrypt sensitive fields.",
        "operationId": "ConnectionsController_getConnectiondetailbyName_v1",
        "parameters": [
          {
            "name": "name",
            "required": true,
            "in": "path",
            "description": "The unique name of the connection to retrieve",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeFullStatus",
            "required": false,
            "in": "query",
            "description": "When set to true, includes complete status details for the connection. When false or omitted, returns only basic status information (hasErrors and phase).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "decryptFields",
            "required": false,
            "in": "query",
            "description": "When set to true, decrypts sensitive field - Password in the connection configuration. When false or omitted, sensitive fields remain encrypted.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of specified connection type has been successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionDto"
                }
              }
            }
          },
          "400": {
            "description": "The request sent to server to get details of the given connection type is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to access connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to retrieve the details of the given connection type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get connection by name",
        "tags": [
          "Connections"
        ]
      },
      "patch": {
        "description": "Update an existing connection configuration identified by its name. This endpoint allows you to modify connection properties, settings, and credentials. The connection name in the URL path identifies which connection to update. All connection fields can be updated except the connection type, name and displayName.",
        "operationId": "ConnectionsController_updateConnection_v1",
        "parameters": [
          {
            "name": "name",
            "required": true,
            "in": "path",
            "description": "The unique name of the connection to update",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateConnectionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success response returned by create API endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSuccessResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "The request sent to server to update the given connection is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to update connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to update the given connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update connection",
        "tags": [
          "Connections"
        ]
      },
      "delete": {
        "description": "Initiate the deletion of a connection identified by its name. This is an asynchronous operation that begins the termination process for the specified connection. The endpoint returns immediately with HTTP 202 (Accepted) status.",
        "operationId": "ConnectionsController_deleteConnection_v1",
        "parameters": [
          {
            "name": "name",
            "required": true,
            "in": "path",
            "description": "The unique name of the connection to delete",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Connection deletion accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionDeleteResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request - client error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to delete connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to delete the given connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete connection",
        "tags": [
          "Connections"
        ]
      }
    },
    "/aiops/api/v1/configuration/connections/{connection_id}/test": {
      "post": {
        "description": "Test an existing connection to verify it can successfully reach the target system. This endpoint validates the connection configuration and credentials by attempting to establish a connection to the configured endpoint.",
        "operationId": "ConnectionsController_testConnection_v1",
        "parameters": [
          {
            "name": "connection_type",
            "required": true,
            "in": "query",
            "description": "The type of the connection (e.g., netcool-connector)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connection_id",
            "required": true,
            "in": "path",
            "description": "The unique identifier of the existing connection to test",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-tenant-id",
            "in": "header",
            "description": "The tenant to access",
            "required": true,
            "schema": {
              "type": "string",
              "default": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestExistingConnectionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success response returned by test connection endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Test connection succeeded"
                    },
                    "statusCode": {
                      "type": "number",
                      "example": 200
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request sent to server to test the connection is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse400Dto"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Please provide a valid authorization token to test the connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse401Dto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse403Dto"
                }
              }
            }
          },
          "404": {
            "description": "Given Connection not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse404Dto"
                }
              }
            }
          },
          "500": {
            "description": "An internal error occurred while trying to test the connection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse500Dto"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway - upstream server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse502Dto"
                }
              }
            }
          },
          "503": {
            "description": "Service is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse503Dto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Test a connection",
        "tags": [
          "Connections"
        ]
      }
    }
  },
  "info": {
    "title": "IBM Cloud Pak for AIOps API",
    "description": "API for interacting with IBM Cloud Pak for AIOps",
    "version": "1.0",
    "contact": {}
  },
  "tags": [],
  "servers": [],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http"
      }
    },
    "schemas": {
      "EventType": {
        "type": "object",
        "properties": {
          "eventType": {
            "description": "String description of whether the event is a problem or resolution event. ",
            "enum": [
              "problem",
              "resolution"
            ],
            "type": "string"
          },
          "classification": {
            "type": "string",
            "description": "Describes the type of the event, for example, utilization, system status, threshold breach, and so on. This property is used to determine the golden signals for an alert.",
            "example": "Utilization"
          },
          "condition": {
            "type": "string",
            "description": "The condition/status or threshold causing the event. E.g. Down, 95%, Unavailable"
          }
        },
        "required": [
          "eventType",
          "classification"
        ]
      },
      "Resource": {
        "type": "object",
        "properties": {
          "port": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "type": {
            "type": "string",
            "description": "The type of resource",
            "example": "host"
          },
          "name": {
            "type": "string",
            "description": "The name of the resource",
            "example": "myhost.example.com"
          },
          "sourceId": {
            "type": "string",
            "description": "The id the resource is known by in the source system",
            "example": "7045b61d-e59c-4270-b525-545d55ecd06e"
          },
          "hostname": {
            "type": "string",
            "description": "The hostname of the resource",
            "example": "myhost.example.com"
          },
          "ipAddress": {
            "type": "string",
            "description": "The IP address of the resource",
            "example": "9.123.123.1"
          },
          "service": {
            "type": "string",
            "description": "The name of the service that the resource is serving",
            "example": "mobile-app"
          },
          "interface": {
            "type": "string",
            "description": "The interface that is the subject of this event",
            "example": "eth0"
          },
          "application": {
            "type": "string",
            "description": "The application that is the subject of this event",
            "example": "mobile-app-1"
          },
          "controller": {
            "type": "string",
            "description": "The controller that is the subject of this event",
            "example": "controller1"
          },
          "component": {
            "type": "string",
            "description": "The component that is the subject of this event",
            "example": "database"
          },
          "cluster": {
            "type": "string",
            "description": "The cluster that is the subject of this event",
            "example": "staging-cluster"
          },
          "location": {
            "type": "string",
            "description": "The location of the resource"
          },
          "accessScope": {
            "type": "string",
            "description": "The project or namespace the resource is part of",
            "example": "default"
          },
          "connectionId": {
            "type": "string",
            "description": "Configuration unique identifier of the connection this event  came from.",
            "example": "f5aa7fa9-92eb-4bec-942c-37eb3e3e9601"
          },
          "scopeId": {
            "type": "string",
            "description": "The scope identifier value for this event from the originating system",
            "example": "myhost.example.com:location01"
          }
        },
        "required": [
          "name"
        ]
      },
      "Link": {
        "type": "object",
        "properties": {
          "linkType": {
            "type": "string",
            "description": "Describes what type of link this is, giving a hint as to what may consume it.",
            "example": "webpage"
          },
          "name": {
            "type": "string",
            "description": "An identifier for this link that can be referred to programmatically",
            "example": "management-console"
          },
          "description": {
            "type": "string",
            "description": "Descriptive text which defines what the link leads to"
          },
          "url": {
            "type": "string",
            "description": "A fully qualified URL that can be used to locate the target of the link",
            "example": "https://fan-controller.example.com/?fanId=1234"
          }
        },
        "required": [
          "url"
        ]
      },
      "ActionHistory": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that triggered the action.",
            "example": "policy1234"
          },
          "actionId": {
            "type": "string",
            "description": "The ID of the action the entity has passed through.",
            "example": "aiops/alerts/deriveFromEvent"
          }
        }
      },
      "AlertResolutionsResolutionLinksInner": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL link for the resolution.",
            "example": "null"
          },
          "title": {
            "type": "string",
            "description": "The title for the resolution.",
            "example": "null"
          },
          "content": {
            "type": "string",
            "description": "A content excerpt for the resolution.",
            "example": "null"
          }
        }
      },
      "AlertResolutions": {
        "type": "object",
        "properties": {
          "resolutionLinks": {
            "description": "A list of resolution URL links for the current alert.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertResolutionsResolutionLinksInner"
            }
          },
          "shortDescription": {
            "type": "string",
            "description": "A short description for the log anomaly alert.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A description about the current log anomaly alert.",
            "example": "null"
          },
          "category": {
            "type": "string",
            "description": "The detected error category.",
            "example": "null"
          },
          "subCategory": {
            "type": "string",
            "description": "The detected error subcategory.",
            "example": "null"
          }
        }
      },
      "HTTPErrorCodeType": {
        "type": "object",
        "properties": {
          "name": {
            "description": "An HTTP error code.",
            "enum": [
              "400",
              "401",
              "403",
              "408",
              "429",
              "500",
              "502",
              "503",
              "504",
              "5xx"
            ],
            "type": "string"
          },
          "unit": {
            "type": "string",
            "description": "The unit for the HTTP error code KPI.",
            "enum": [
              "count"
            ]
          }
        }
      },
      "ExceptionType": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "description": "unit for the exception KPI",
            "enum": [
              "count"
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the exception, in other words, a token containing the string \\\"exception\\\" found within a log.",
            "example": "[java.net.UnknownHostException,UnknownHostException,kafka.common.FailedToSendMessageException,ioException,java.lang.StringIndexOutOfBoundsException,java.lang.Exception,java.lang.ArithmeticException]"
          }
        }
      },
      "MessageIdType": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "description": "The unit for the message ID KPI.",
            "enum": [
              "count"
            ]
          },
          "name": {
            "type": "string",
            "description": "An IBM WebSphere or MQ message ID.",
            "example": "[AMQ90021,AMQ5005E,CWLIB0109E,TRAS3300E,SRVE9969E,WSVR8000E]"
          }
        }
      },
      "MetricType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The metric name.",
            "example": "null"
          },
          "unit": {
            "type": "string",
            "description": "The unit for the metric KPI. For example, bytes, mb, ms, s, and so on.",
            "example": "null"
          }
        }
      },
      "KPI": {
        "type": "object",
        "properties": {
          "httpErrorCode": {
            "$ref": "#/components/schemas/HTTPErrorCodeType"
          },
          "exception": {
            "$ref": "#/components/schemas/ExceptionType"
          },
          "messageId": {
            "$ref": "#/components/schemas/MessageIdType"
          },
          "metric": {
            "$ref": "#/components/schemas/MetricType"
          }
        }
      },
      "ExpectedRange": {
        "type": "object",
        "properties": {
          "upperThreshold": {
            "type": "number",
            "description": "The expected upper bound of the count/frequency of the KPI in a given time aggregated window"
          },
          "lowerThreshold": {
            "type": "number",
            "description": "The expected lower bound of the count/frequency of the KPI in a given time aggregated window"
          }
        }
      },
      "Anomaly": {
        "type": "object",
        "properties": {
          "kpi": {
            "$ref": "#/components/schemas/KPI"
          },
          "algorithmNames": {
            "description": "A list of the algorithms that triggered an alert.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expectedRange": {
            "$ref": "#/components/schemas/ExpectedRange"
          },
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "algorithmNamesString": {
            "type": "string",
            "description": "A comma separated string of the algorithms that triggered an alert.",
            "example": "null"
          },
          "actualValue": {
            "type": "number",
            "description": "The observed value for a KPI."
          },
          "expectedValue": {
            "type": "number",
            "description": "The expected value for a KPI."
          },
          "resourceAggregator": {
            "type": "string",
            "description": "An entity in the underlying client application that can be used to logically aggregate all anomalies related to the same application resource. For example, in the context of metric anomalies, this entity would be a server that could be used to aggregate anomalies across all ports exposed by that server. For log anomalies, this entity might be a Kubernetes ReplicaSet that aggregates all the pods it manages.",
            "example": "[server1,16THWILLIAM-19001,qotd-qrcode,sockshop-part]"
          }
        }
      },
      "AssociatedAlertTemplates": {
        "type": "object",
        "properties": {
          "error_template_list": {
            "description": "A list of error templates.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "error_count_vector": {
            "description": "The count vector corresponding to the error template list.",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "significant_message_code": {
            "type": "string",
            "description": "The message code for the significant error template.",
            "example": "null"
          },
          "type_window": {
            "type": "string",
            "description": "Indicates the window type, in other words, \\\"liberty_twas\\\"",
            "example": "null"
          }
        }
      },
      "BusinessCriticality": {
        "type": "object",
        "properties": {
          "criticalityLabel": {
            "type": "string",
            "description": "The label of the assigned criticality.",
            "example": "null"
          },
          "criticalityNumber": {
            "type": "number",
            "description": "The numeric value of the criticality."
          }
        }
      },
      "CausalRelationship": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "description": "The id of the policy that added this relationship (where applicable)",
            "example": "null"
          }
        }
      },
      "ChatOpsIntegrators": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique ID for this integrator.",
            "example": "null"
          },
          "channel_name": {
            "type": "string",
            "description": "The ChatOps channel name.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The specific ChatOps connection, for example, Slack or Microsoft Teams.",
            "example": "null"
          },
          "app_state": {
            "type": "string",
            "description": "The custom state field.",
            "example": "null"
          },
          "permalink": {
            "type": "string",
            "description": "The permalink for integrators.",
            "example": "null"
          }
        }
      },
      "ChatOpsNotificationNotificationInner": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of notification.",
            "example": "slack"
          },
          "name": {
            "type": "string",
            "description": "The name of this notification.",
            "example": "AIOPSSystemDefault"
          },
          "details": {
            "type": "object",
            "description": "Additional information for the notification handler."
          }
        }
      },
      "ChatOpsNotification": {
        "type": "object",
        "properties": {
          "notification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChatOpsNotificationNotificationInner"
            }
          }
        }
      },
      "CreatedBy": {
        "type": "object",
        "properties": {
          "partitionKey": {
            "type": "string",
            "description": "The flink partitionKey to use for that action.",
            "example": "null"
          },
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that creates the request.",
            "example": "null"
          },
          "actionId": {
            "type": "string",
            "description": "The ID of the action triggered by this request.",
            "example": "null"
          }
        }
      },
      "DeduplicationDetails": {
        "type": "object",
        "properties": {
          "lastProcessedEventOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was last detected by the system. The occurrence time of the most recently processed event that indicated this anomalous condition",
            "example": "null"
          }
        }
      },
      "ThumbsFeedback": {
        "type": "object",
        "properties": {
          "isPositive": {
            "type": "boolean",
            "description": "Defines whether a user agrees with an alert (thumbs up) or not (thumbs down) as expressed via user feedback."
          }
        }
      },
      "ThumbsFeedbackPrediction": {
        "type": "object",
        "properties": {
          "predictionScore": {
            "type": "number",
            "description": "Ranges from 0 to 100. Scores close to 0 mean we are confident alert is a false positive. Scores close to 100 mean we are confident is a true positive. Scores closer to 50 mean that the model prediction was inconclusive."
          }
        }
      },
      "FeedbackType": {
        "type": "object",
        "properties": {
          "thumbsFeedback": {
            "$ref": "#/components/schemas/ThumbsFeedback"
          },
          "thumbsFeedbackPrediction": {
            "$ref": "#/components/schemas/ThumbsFeedbackPrediction"
          }
        }
      },
      "Feedback": {
        "type": "object",
        "properties": {
          "feedback": {
            "$ref": "#/components/schemas/FeedbackType"
          }
        }
      },
      "GoldenSignal": {
        "type": "object",
        "properties": {
          "goldenSignal": {
            "description": "string representing the label",
            "enum": [
              "error",
              "availability",
              "latency",
              "saturation",
              "traffic",
              "information"
            ],
            "type": "string"
          },
          "typeGoldenSignal": {
            "description": "string representing type of golden signal",
            "enum": [
              "effect",
              "cause",
              "none"
            ],
            "type": "string"
          }
        }
      },
      "ITSMIntegrators": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique ID for this platform.",
            "example": "null"
          },
          "ticket_num": {
            "type": "string",
            "description": "The ticket number associated with the ITSM system.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The type of ITSM, for example, ServiceNow.",
            "example": "null"
          },
          "app_state": {
            "type": "string",
            "description": "The custom state field.",
            "example": "null"
          },
          "permalink": {
            "type": "string",
            "description": "The permalink for the ITSM platform.",
            "example": "null"
          },
          "type": {
            "type": "string",
            "description": "The type of ITSM integrators.",
            "example": "null"
          }
        }
      },
      "IncidentSummary": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "description": "The generated summary from the story snapshot at the time of generation. This summary is generated using LLM with predefined prompt. It will take alerts, insights, and runbook history ect. into consideration.",
            "example": "null"
          },
          "createdTime": {
            "type": "string",
            "description": "Represents the time when this incident summarization is generated.",
            "example": "null"
          }
        }
      },
      "IncidentTitle": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The generated title by example from the story snapshot at the time of generation. This title is generated using LLM with predefined prompt.",
            "example": "null"
          },
          "createdTime": {
            "type": "string",
            "description": "Represents the time when this incident title is generated.",
            "example": "null"
          }
        }
      },
      "LogTemplate": {
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string",
            "description": "Unique identifier for log template associated with log anomaly golden signal metric anomaly",
            "example": "10_latency"
          },
          "templateName": {
            "type": "string",
            "description": "User defined string (set in AI Hub) to characterize template pattern."
          },
          "templatePattern": {
            "type": "string",
            "description": "Template pattern from Log Anomaly Detection algorithm that appeared enough to trigger Metric Anomaly Detection"
          }
        }
      },
      "ProbableCauseRanking": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The correlationId in the alert or the eventId in the story.",
            "example": "null"
          },
          "rank": {
            "type": "number",
            "description": "The rank of the alert."
          },
          "score": {
            "type": "number",
            "description": "The relative score, that leads to the ranking of the alarms, this is the total score, made up of the itnmScore, pathScore, wordScorem, causeScore, severityScore, startTimeScore"
          },
          "itmnScore": {
            "type": "number",
            "description": "The amount the score is effected by the itmn, if turn on"
          },
          "pathScore": {
            "type": "number",
            "description": "The score for the path calculation"
          },
          "causeScore": {
            "type": "number",
            "description": "The amount added to the total score due to population of the cause in the alert"
          },
          "severityScore": {
            "type": "number",
            "description": "The amount added to the total score due to the severity of the alert"
          },
          "startTimeScore": {
            "type": "number",
            "description": "The amount added to the total score due to the alert being the 1st alert in the group"
          }
        }
      },
      "ProposedStory": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that proposes this story.",
            "example": "null"
          },
          "delay": {
            "type": "number",
            "description": "The suggested delay in seconds before creating the story."
          },
          "policyExecutionOrder": {
            "type": "number",
            "description": "Execution order of the policy. The lowest in order will be created."
          }
        }
      },
      "RelatedAlert": {
        "type": "object",
        "properties": {
          "alertId": {
            "type": "string",
            "description": "A system-generated unique id for the alert.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          }
        }
      },
      "RunbookError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code representation of error or brief summery of error.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "detail description of error message.",
            "example": "null"
          },
          "occurrenceTime": {
            "type": "string",
            "description": "Time when error occurred.",
            "example": "null"
          }
        }
      },
      "RunbookMappingsInner": {
        "type": "object",
        "properties": {
          "mappingType": {
            "description": "Choose how a parameter is mapped. &#39;parameter&#39; uses a field or property from the story. &#39;fixed&#39; always uses the same value. &#39;useDefault&#39; uses the default from the runbook. &#39;runtime&#39; leaves the entry up to the operator.",
            "enum": [
              "parameter",
              "fixed",
              "useDefault",
              "runtime"
            ],
            "type": "string"
          },
          "runbookParameterName": {
            "type": "string",
            "description": "The name of the runbook parameter that is mapped to, as valued by the mapping type.",
            "example": "null"
          },
          "parameterValue": {
            "type": "object",
            "description": "The value put into the runbook for the parameter. Depending on the \\'mappingType\\' this value is optional (useDefault), represents the name of a story parameter (parameter), or is the value to be entered (fixed)."
          }
        }
      },
      "Runbook": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/RunbookError"
          },
          "mappings": {
            "description": "In order to execute a runbook, all required runbook parameters need to be filled out. If the story defines the values based on the policy or on its own attributes, a suitable mapping has to be created. This is required if execution should be triggered automatically.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookMappingsInner"
            }
          },
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that connected this insight.",
            "example": "null"
          },
          "runbookId": {
            "type": "string",
            "description": "The ID of the runbook.",
            "example": "null"
          },
          "runbookVersion": {
            "type": "number",
            "description": "Optional. Defines whether a fixed version of a runbook should be linked. If not, the specified latest version is used."
          },
          "order": {
            "type": "number",
            "description": "Optional. The order for runbook actions. Defines in which order runbooks should be executed."
          },
          "isAutomated": {
            "type": "boolean",
            "description": "Defines whether or not the connected runbook will be automatically executed, once the policy matches."
          }
        },
        "required": [
          "policyId",
          "runbookId",
          "isAutomated"
        ]
      },
      "SeasonalWindow": {
        "type": "object",
        "properties": {
          "dayInWeek": {
            "description": "An optional day of week for this seasonal window.",
            "enum": [
              "Mon",
              "Tue",
              "Wed",
              "Thu",
              "Fri",
              "Sat",
              "Sun"
            ],
            "type": "string"
          },
          "dayInMonth": {
            "type": "number",
            "description": "An optional day of the month for this seasonal window."
          },
          "hourInDay": {
            "type": "number",
            "description": "An optional hour of the day for this seasonal window."
          }
        }
      },
      "SeasonalOccurrence": {
        "type": "object",
        "properties": {
          "timeWindows": {
            "description": "All time windows provided by the originating seasonal rule. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeasonalWindow"
            }
          },
          "matchedWindows": {
            "description": "Active time windows discovered for the given entity. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeasonalWindow"
            }
          },
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that relates to the seasonality insight.",
            "example": "null"
          },
          "isSeasonal": {
            "type": "boolean",
            "description": "Whether this alert falls within a seasonal window listed by the policy."
          }
        },
        "required": [
          "timeWindows",
          "matchedWindows",
          "policyId",
          "isSeasonal"
        ]
      },
      "TextSpan": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text for action",
            "example": "null"
          },
          "begin_offset": {
            "type": "number",
            "description": "Beginning offset where the action is extracted in sentence."
          },
          "end_offset": {
            "type": "number",
            "description": "End offset where the action is extracted in sentence."
          }
        }
      },
      "ActionItem": {
        "type": "object",
        "properties": {
          "action": {
            "$ref": "#/components/schemas/TextSpan"
          },
          "components": {
            "description": "A list of componentes upon which the action exerts affect on.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TextSpan"
            }
          }
        }
      },
      "SimilarIncidentItem": {
        "type": "object",
        "properties": {
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionItem"
            }
          },
          "incident_id": {
            "type": "string",
            "description": "The id of the incident in system.",
            "example": "null"
          },
          "title": {
            "type": "string",
            "description": "The title to the incident in source system.",
            "example": "null"
          },
          "url": {
            "type": "string",
            "description": "The url link back to the original incident system.",
            "example": "null"
          },
          "resolution": {
            "type": "string",
            "description": "Resolution provided in this incident",
            "example": "null"
          },
          "score": {
            "type": "number",
            "description": "Matching score for this related incident"
          },
          "started_at": {
            "type": "string"
          },
          "closed_by": {
            "type": "string",
            "description": "Name or id who closed the incident.",
            "example": "null"
          }
        }
      },
      "RecommendedActionItem": {
        "type": "object",
        "properties": {
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionItem"
            }
          },
          "incident_id": {
            "type": "string",
            "description": "Incident id where action is extracted from.",
            "example": "null"
          },
          "sentence": {
            "type": "string",
            "description": "Sentence in the resolution where action is extracted from.",
            "example": "null"
          }
        }
      },
      "SimilarIncidents": {
        "type": "object",
        "properties": {
          "similar_incidents": {
            "description": "The list of similar incients for the query.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimilarIncidentItem"
            }
          },
          "recommended_actions": {
            "description": "The list of extracted actions from resolutions in related incidents.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecommendedActionItem"
            }
          }
        }
      },
      "SimiliarStory": {
        "type": "object",
        "properties": {
          "storyid": {
            "type": "string",
            "description": "The ID of the related story.",
            "example": "null"
          },
          "link": {
            "type": "string",
            "description": "The URL to the story in the source system.",
            "example": "null"
          },
          "distance": {
            "type": "number",
            "description": "Indicates how closely related this story is to the given story."
          }
        }
      },
      "StoryCreationHoldoff": {
        "type": "object",
        "properties": {
          "holdoffSec": {
            "type": "number",
            "description": "The time in seconds to delay creation of the story."
          }
        }
      },
      "StoryTopology": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The topology group ID.",
            "example": "null"
          },
          "time": {
            "type": "number",
            "description": "The time in milliseconds when the last resource in the topology group was added."
          }
        }
      },
      "Suppression": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that triggers suppression.",
            "example": "null"
          },
          "condition": {
            "type": "string",
            "description": "The suppression condition.",
            "example": "null"
          }
        }
      },
      "ThirdPartyEventCorrelation": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "description": "The id of the policy that added this relationship (where applicable)",
            "example": "null"
          }
        }
      },
      "TopologicalGroup": {
        "type": "object",
        "properties": {
          "tags": {
            "description": "A list of any tags assigned to the resource group.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "entityTypes": {
            "description": "An array of group types that pertains to this group. For example, waiopsApplication which signifies this resource group represents an application. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "type": "string",
            "description": "The human readable name of the resource group.",
            "example": "null"
          }
        }
      },
      "TopologicalResource": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The human-readable name of the resource.",
            "example": "null"
          },
          "compositeOfIds": {
            "type": "string",
            "description": "The list of resource IDs for each resource in a composite of resources.",
            "example": "null"
          },
          "compositeId": {
            "type": "string",
            "description": "The ID of the compositeId.",
            "example": "null"
          }
        }
      },
      "TopologicalStatusId": {
        "type": "object",
        "properties": {
          "nonset": {
            "type": "string",
            "description": "A placeholder property not used in the insight.",
            "example": "null"
          }
        }
      },
      "Union": {
        "type": "object",
        "properties": {
          "subsumedUnions": {
            "description": "An array of IDs of previous union insights which were subsumed by this one, due to the addition of a new entity. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VerboseDescription": {
        "type": "object",
        "properties": {
          "verboseDescription": {
            "type": "string",
            "description": "The extended verbose description of the event. For Log Anomalies, if the event is from MQ or websphere data, then the description of the significant message code is used. For Log Anomalies, if the event is from Natural Language algorithm, then the top 5 template pattern strings are used. Used for golden signal classification at an alert level."
          }
        }
      },
      "XinY": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "description": "The ID of the policy that triggers suppression.",
            "example": "null"
          },
          "state": {
            "type": "string",
            "description": "Whether or not the alert is suppressed.",
            "example": "null"
          },
          "condition": {
            "type": "string",
            "description": "The suppression condition.",
            "example": "null"
          },
          "x": {
            "type": "number",
            "description": "The number of related occurrences."
          },
          "y": {
            "type": "number",
            "description": "The time in seconds that the occurrences need to happen."
          }
        }
      },
      "Insight": {
        "type": "object",
        "properties": {
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ActionHistory"
              },
              {
                "$ref": "#/components/schemas/AlertResolutions"
              },
              {
                "$ref": "#/components/schemas/Anomaly"
              },
              {
                "$ref": "#/components/schemas/AssociatedAlertTemplates"
              },
              {
                "$ref": "#/components/schemas/BusinessCriticality"
              },
              {
                "$ref": "#/components/schemas/CausalRelationship"
              },
              {
                "$ref": "#/components/schemas/ChatOpsIntegrators"
              },
              {
                "$ref": "#/components/schemas/ChatOpsNotification"
              },
              {
                "$ref": "#/components/schemas/CreatedBy"
              },
              {
                "$ref": "#/components/schemas/DeduplicationDetails"
              },
              {
                "$ref": "#/components/schemas/Feedback"
              },
              {
                "$ref": "#/components/schemas/GoldenSignal"
              },
              {
                "$ref": "#/components/schemas/ITSMIntegrators"
              },
              {
                "$ref": "#/components/schemas/IncidentSummary"
              },
              {
                "$ref": "#/components/schemas/IncidentTitle"
              },
              {
                "$ref": "#/components/schemas/LogTemplate"
              },
              {
                "$ref": "#/components/schemas/ProbableCauseRanking"
              },
              {
                "$ref": "#/components/schemas/ProposedStory"
              },
              {
                "$ref": "#/components/schemas/RelatedAlert"
              },
              {
                "$ref": "#/components/schemas/Runbook"
              },
              {
                "$ref": "#/components/schemas/SeasonalOccurrence"
              },
              {
                "$ref": "#/components/schemas/SimilarIncidents"
              },
              {
                "$ref": "#/components/schemas/SimiliarStory"
              },
              {
                "$ref": "#/components/schemas/StoryCreationHoldoff"
              },
              {
                "$ref": "#/components/schemas/StoryTopology"
              },
              {
                "$ref": "#/components/schemas/Suppression"
              },
              {
                "$ref": "#/components/schemas/ThirdPartyEventCorrelation"
              },
              {
                "$ref": "#/components/schemas/TopologicalGroup"
              },
              {
                "$ref": "#/components/schemas/TopologicalResource"
              },
              {
                "$ref": "#/components/schemas/TopologicalStatusId"
              },
              {
                "$ref": "#/components/schemas/Union"
              },
              {
                "$ref": "#/components/schemas/VerboseDescription"
              },
              {
                "$ref": "#/components/schemas/XinY"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "The unique identifier for this specific relationship, used to identify other related entities. Entities with the same insight id will participate in the same insight. In other words, this may act as a correlation key.",
            "example": "98aa5f81-7da7-4063-bd66-dccaf59097d1"
          },
          "type": {
            "type": "string",
            "description": "The type of insight being described.",
            "example": "aiops.ibm.com/insight-type/relationship/causal",
            "enum": [
              "aiops.ibm.com/insight-type/action/history",
              "aiops.ibm.com/insight-type/lad/resolutions",
              "aiops.ibm.com/insight-type/anomaly",
              "aiops.ibm.com/insight-type/lad/templates",
              "aiops.ibm.com/insight-type/business/criticality",
              "aiops.ibm.com/insight-type/relationship/causal",
              "aiops.ibm.com/insight-type/chatops/metadata",
              "aiops.ibm.com/insight-type/chatops/notification",
              "aiops.ibm.com/insight-type/created-by",
              "aiops.ibm.com/insight-type/deduplication-details",
              "aiops.ibm.com/insight-type/feedback",
              "aiops.ibm.com/insight-type/golden-signal",
              "aiops.ibm.com/insight-type/itsm/metadata",
              "aiops.ibm.com/insight-type/incident-summary",
              "aiops.ibm.com/insight-type/incident-title",
              "aiops.ibm.com/insight-type/log-template",
              "aiops.ibm.com/insight-type/probable-cause",
              "aiops.ibm.com/insight-type/story/proposed-by",
              "aiops.ibm.com/insight-type/event/related-alert",
              "aiops.ibm.com/insight-type/runbook",
              "aiops.ibm.com/insight-type/seasonal-occurrence",
              "aiops.ibm.com/insight-type/similar-incidents",
              "aiops.ibm.com/insight-type/similar-story",
              "aiops.ibm.com/insight-type/story/holdoff",
              "aiops.ibm.com/insight-type/topology/story",
              "aiops.ibm.com/insight-type/suppression",
              "aiops.ibm.com/insight-type/relationship/third-party-event-correlation",
              "aiops.ibm.com/insight-type/topology/group",
              "aiops.ibm.com/insight-type/topology/resource",
              "aiops.ibm.com/insight-type/topology/statusId",
              "aiops.ibm.com/insight-type/relationship/causal-union",
              "aiops.ibm.com/insight-type/verbose-description",
              "aiops.ibm.com/insight-type/xiny"
            ]
          },
          "source": {
            "type": "string",
            "description": "The source of the insight information.",
            "example": "aiops.ibm.com/insight-source/temporal-analytics"
          }
        }
      },
      "CreateEventDto": {
        "type": "object",
        "properties": {
          "severity": {
            "description": "Indicates the event severity level, which indicates how the perceived capability of the managed object has been affected. 1 - Indeterminate 2 - Information 3 - Warning 4 - Minor 5 - Major 6 - Critical ",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "number"
          },
          "type": {
            "$ref": "#/components/schemas/EventType"
          },
          "sender": {
            "$ref": "#/components/schemas/Resource"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "links": {
            "description": "An optional array of links to external systems which provide addition information or control over the event, or its subject. This may include a management console for the subject resource, or a page containing further event information from the source monitoring system. Each link should be in the form of a fully qualified URL. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "details": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the alert with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "id": {
            "type": "string",
            "description": "A system-generated unique id for the event",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "occurrenceTime": {
            "type": "string",
            "description": "The time at which this event occurred",
            "example": "2023-01-01T00:00Z"
          },
          "summary": {
            "type": "string",
            "description": "A human-readable description of the event"
          },
          "expirySeconds": {
            "type": "number",
            "description": "The number of seconds before the event should automatically expire. A value of zero indicates that there is no expiration."
          }
        },
        "required": [
          "severity",
          "type",
          "resource",
          "occurrenceTime",
          "summary"
        ]
      },
      "Event": {
        "type": "object",
        "properties": {
          "severity": {
            "description": "Indicates the event severity level, which indicates how the perceived capability of the managed object has been affected. 1 - Indeterminate 2 - Information 3 - Warning 4 - Minor 5 - Major 6 - Critical ",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "number"
          },
          "type": {
            "$ref": "#/components/schemas/EventType"
          },
          "sender": {
            "$ref": "#/components/schemas/Resource"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "links": {
            "description": "An optional array of links to external systems which provide addition information or control over the event, or its subject. This may include a management console for the subject resource, or a page containing further event information from the source monitoring system. Each link should be in the form of a fully qualified URL. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "details": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the alert with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "id": {
            "type": "string",
            "description": "A system-generated unique id for the event",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "occurrenceTime": {
            "type": "string",
            "description": "The time at which this event occurred",
            "example": "2023-01-01T00:00Z"
          },
          "summary": {
            "type": "string",
            "description": "A human-readable description of the event"
          },
          "expirySeconds": {
            "type": "number",
            "description": "The number of seconds before the event should automatically expire. A value of zero indicates that there is no expiration."
          }
        },
        "required": [
          "severity",
          "type",
          "resource",
          "occurrenceTime",
          "summary"
        ]
      },
      "UnauthorizedResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "example": "Unauthorized"
          },
          "statusCode": {
            "type": "number",
            "example": 401
          }
        },
        "required": [
          "message",
          "statusCode"
        ]
      },
      "CreateAlertDto": {
        "type": "object",
        "properties": {
          "state": {
            "description": "The current state of this alert.",
            "enum": [
              "open",
              "clear",
              "closed"
            ],
            "type": "string"
          },
          "severity": {
            "description": "Indicates the alert severity level, which indicates how the perceived capability of the managed object has been affected. 1 - Indeterminate 2 - Information 3 - Warning 4 - Minor 5 - Major 6 - Critical ",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "number"
          },
          "type": {
            "$ref": "#/components/schemas/EventType"
          },
          "sender": {
            "$ref": "#/components/schemas/Resource"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "links": {
            "description": "An optional array of links to external systems which provide addition information or control over the alert, or its subject. This may include a management console for the subject resource, or a page containing further alert information from the source monitoring system. Each link should be in the form of a fully qualified URL. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "details": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the alert with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "relatedStoryIds": {
            "description": "The set of story id&#39;s that this alert is a member of as a trigger alert.  ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "relatedContextualStoryIds": {
            "description": "The set of story id&#39;s that this alert is a member of as a contextual alert.  ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string",
            "description": "A system-generated unique id for the alert.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "eventCount": {
            "type": "number",
            "description": "The count of events that have contributed to this alert."
          },
          "acknowledged": {
            "type": "boolean",
            "description": "Flag indicating alert acknowledgement."
          },
          "team": {
            "type": "string",
            "description": "Team with responsibility for the alert.",
            "example": "team123"
          },
          "owner": {
            "type": "string",
            "description": "Individual with responsibility for the alert.",
            "example": "user123"
          },
          "deduplicationKey": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "deduplicationKeyExample"
          },
          "signature": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "signatureKeyExample"
          },
          "firstOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was first detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was last detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastStateChangeTime": {
            "type": "string",
            "description": "The time in millisecond granularity for which the alert was last updated. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "summary": {
            "type": "string",
            "description": "A human-readable description of the alert."
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 encoding if not specifed assumption is eng.",
            "example": "eng"
          },
          "suppressed": {
            "type": "boolean",
            "description": "Indicates whether the alert is currently suppressed. Alerts should only be suppressed at creation time. This property can be used as a filter for defining which alerts an operator should see."
          },
          "expirySeconds": {
            "type": "number",
            "description": "The number of seconds before the alert should automatically expire. A value of zero indicates that there is no expiration."
          }
        },
        "required": [
          "severity",
          "type",
          "resource",
          "id",
          "deduplicationKey",
          "summary"
        ]
      },
      "AlertModel": {
        "type": "object",
        "properties": {
          "state": {
            "description": "The current state of this alert.",
            "enum": [
              "open",
              "clear",
              "closed"
            ],
            "type": "string"
          },
          "severity": {
            "description": "Indicates the alert severity level, which indicates how the perceived capability of the managed object has been affected. 1 - Indeterminate 2 - Information 3 - Warning 4 - Minor 5 - Major 6 - Critical ",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "number"
          },
          "type": {
            "$ref": "#/components/schemas/EventType"
          },
          "sender": {
            "$ref": "#/components/schemas/Resource"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "links": {
            "description": "An optional array of links to external systems which provide addition information or control over the alert, or its subject. This may include a management console for the subject resource, or a page containing further alert information from the source monitoring system. Each link should be in the form of a fully qualified URL. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "details": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the alert with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "relatedStoryIds": {
            "description": "The set of story id&#39;s that this alert is a member of as a trigger alert.  ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "relatedContextualStoryIds": {
            "description": "The set of story id&#39;s that this alert is a member of as a contextual alert.  ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string",
            "description": "A system-generated unique id for the alert.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "eventCount": {
            "type": "number",
            "description": "The count of events that have contributed to this alert."
          },
          "acknowledged": {
            "type": "boolean",
            "description": "Flag indicating alert acknowledgement."
          },
          "team": {
            "type": "string",
            "description": "Team with responsibility for the alert.",
            "example": "team123"
          },
          "owner": {
            "type": "string",
            "description": "Individual with responsibility for the alert.",
            "example": "user123"
          },
          "deduplicationKey": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "deduplicationKeyExample"
          },
          "signature": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "signatureKeyExample"
          },
          "firstOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was first detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was last detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastStateChangeTime": {
            "type": "string",
            "description": "The time in millisecond granularity for which the alert was last updated. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "summary": {
            "type": "string",
            "description": "A human-readable description of the alert."
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 encoding if not specifed assumption is eng.",
            "example": "eng"
          },
          "suppressed": {
            "type": "boolean",
            "description": "Indicates whether the alert is currently suppressed. Alerts should only be suppressed at creation time. This property can be used as a filter for defining which alerts an operator should see."
          },
          "expirySeconds": {
            "type": "number",
            "description": "The number of seconds before the alert should automatically expire. A value of zero indicates that there is no expiration."
          }
        },
        "required": [
          "severity",
          "type",
          "resource",
          "id",
          "deduplicationKey",
          "summary"
        ]
      },
      "Collection": {
        "type": "object",
        "properties": {}
      },
      "PartialEventType": {
        "type": "object",
        "properties": {
          "eventType": {
            "description": "String description of whether the event is a problem or resolution event. ",
            "enum": [
              "problem",
              "resolution"
            ],
            "type": "string"
          },
          "classification": {
            "type": "string",
            "description": "Describes the type of the event, for example, utilization, system status, threshold breach, and so on. This property is used to determine the golden signals for an alert.",
            "example": "Utilization"
          },
          "condition": {
            "type": "string",
            "description": "The condition/status or threshold causing the event. E.g. Down, 95%, Unavailable"
          }
        }
      },
      "PartialResource": {
        "type": "object",
        "properties": {
          "port": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "type": {
            "type": "string",
            "description": "The type of resource",
            "example": "host"
          },
          "name": {
            "type": "string",
            "description": "The name of the resource",
            "example": "myhost.example.com"
          },
          "sourceId": {
            "type": "string",
            "description": "The id the resource is known by in the source system",
            "example": "7045b61d-e59c-4270-b525-545d55ecd06e"
          },
          "hostname": {
            "type": "string",
            "description": "The hostname of the resource",
            "example": "myhost.example.com"
          },
          "ipAddress": {
            "type": "string",
            "description": "The IP address of the resource",
            "example": "9.123.123.1"
          },
          "service": {
            "type": "string",
            "description": "The name of the service that the resource is serving",
            "example": "mobile-app"
          },
          "interface": {
            "type": "string",
            "description": "The interface that is the subject of this event",
            "example": "eth0"
          },
          "application": {
            "type": "string",
            "description": "The application that is the subject of this event",
            "example": "mobile-app-1"
          },
          "controller": {
            "type": "string",
            "description": "The controller that is the subject of this event",
            "example": "controller1"
          },
          "component": {
            "type": "string",
            "description": "The component that is the subject of this event",
            "example": "database"
          },
          "cluster": {
            "type": "string",
            "description": "The cluster that is the subject of this event",
            "example": "staging-cluster"
          },
          "location": {
            "type": "string",
            "description": "The location of the resource"
          },
          "accessScope": {
            "type": "string",
            "description": "The project or namespace the resource is part of",
            "example": "default"
          },
          "connectionId": {
            "type": "string",
            "description": "Configuration unique identifier of the connection this event  came from.",
            "example": "f5aa7fa9-92eb-4bec-942c-37eb3e3e9601"
          },
          "scopeId": {
            "type": "string",
            "description": "The scope identifier value for this event from the originating system",
            "example": "myhost.example.com:location01"
          }
        }
      },
      "UpdateAlertDto": {
        "type": "object",
        "properties": {
          "state": {
            "description": "The current state of this alert.",
            "enum": [
              "open",
              "clear",
              "closed"
            ],
            "type": "string"
          },
          "severity": {
            "description": "Indicates the alert severity level, which indicates how the perceived capability of the managed object has been affected. 1 - Indeterminate 2 - Information 3 - Warning 4 - Minor 5 - Major 6 - Critical ",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "number"
          },
          "type": {
            "$ref": "#/components/schemas/PartialEventType"
          },
          "sender": {
            "$ref": "#/components/schemas/PartialResource"
          },
          "resource": {
            "$ref": "#/components/schemas/PartialResource"
          },
          "links": {
            "description": "An optional array of links to external systems which provide addition information or control over the alert, or its subject. This may include a management console for the subject resource, or a page containing further alert information from the source monitoring system. Each link should be in the form of a fully qualified URL. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "details": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the alert with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "relatedStoryIds": {
            "description": "The set of story id&#39;s that this alert is a member of as a trigger alert.  ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "relatedContextualStoryIds": {
            "description": "The set of story id&#39;s that this alert is a member of as a contextual alert.  ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string",
            "description": "A system-generated unique id for the alert.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "eventCount": {
            "type": "number",
            "description": "The count of events that have contributed to this alert."
          },
          "acknowledged": {
            "type": "boolean",
            "description": "Flag indicating alert acknowledgement."
          },
          "team": {
            "type": "string",
            "description": "Team with responsibility for the alert.",
            "example": "team123"
          },
          "owner": {
            "type": "string",
            "description": "Individual with responsibility for the alert.",
            "example": "user123"
          },
          "deduplicationKey": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "deduplicationKeyExample"
          },
          "signature": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "signatureKeyExample"
          },
          "firstOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was first detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was last detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastStateChangeTime": {
            "type": "string",
            "description": "The time in millisecond granularity for which the alert was last updated. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "summary": {
            "type": "string",
            "description": "A human-readable description of the alert."
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 encoding if not specifed assumption is eng.",
            "example": "eng"
          },
          "suppressed": {
            "type": "boolean",
            "description": "Indicates whether the alert is currently suppressed. Alerts should only be suppressed at creation time. This property can be used as a filter for defining which alerts an operator should see."
          },
          "expirySeconds": {
            "type": "number",
            "description": "The number of seconds before the alert should automatically expire. A value of zero indicates that there is no expiration."
          }
        }
      },
      "AlertResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A system-generated unique id for the alert.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "state": {
            "enum": [
              "open",
              "clear",
              "closed"
            ],
            "type": "string",
            "description": "The current state of this alert."
          },
          "eventCount": {
            "type": "number",
            "description": "The count of events that have contributed to this alert."
          },
          "acknowledged": {
            "type": "boolean",
            "description": "Flag indicating alert acknowledgement."
          },
          "team": {
            "type": "string",
            "description": "Team with responsibility for the alert.",
            "example": "team123"
          },
          "owner": {
            "type": "string",
            "description": "Individual with responsibility for the alert.",
            "example": "user123"
          },
          "deduplicationKey": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "deduplicationKeyExample"
          },
          "signature": {
            "type": "string",
            "description": "The key that uniquely identifies the anomalous condition that this alert represents.",
            "example": "signatureKeyExample"
          },
          "firstOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was first detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastOccurrenceTime": {
            "type": "string",
            "description": "The time at which the anomalous condition was last detected, in millisecond granularity. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "lastStateChangeTime": {
            "type": "string",
            "description": "The time in millisecond granularity for which the alert was last updated. Format: yyyy-mm-ddThh:mm:ss.sssZ (ISO8601)",
            "example": "2023-12-31T04:45:00.005Z",
            "readOnly": true
          },
          "summary": {
            "type": "string",
            "description": "A human-readable description of the alert.",
            "example": "Fan failure detected on server1.example.com"
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 encoding if not specified assumption is eng.",
            "example": "eng"
          },
          "severity": {
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "number",
            "description": "Indicates the alert severity level, which indicates how the perceived capability of the managed object has been affected. 1 - Indeterminate, 2 - Information, 3 - Warning, 4 - Minor, 5 - Major, 6 - Critical"
          },
          "suppressed": {
            "type": "boolean",
            "description": "Indicates whether the alert is currently suppressed. Alerts should only be suppressed at creation time. This property can be used as a filter for defining which alerts an operator should see."
          },
          "type": {
            "description": "The type of event that generated this alert.",
            "allOf": [
              {
                "$ref": "#/components/schemas/EventType"
              }
            ]
          },
          "sender": {
            "description": "The sender of the alert.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Resource"
              }
            ]
          },
          "resource": {
            "description": "The resource that is the subject of the alert.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Resource"
              }
            ]
          },
          "expirySeconds": {
            "type": "number",
            "description": "The number of seconds before the alert should automatically expire. A value of zero indicates that there is no expiration."
          },
          "links": {
            "description": "An optional array of links to external systems which provide additional information or control over the alert, or its subject. This may include a management console for the subject resource, or a page containing further alert information from the source monitoring system. Each link should be in the form of a fully qualified URL.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "details": {
            "type": "object",
            "description": "Additional properties that describe the alert.",
            "additionalProperties": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the alert with one or more other entities or groupings.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "relatedStoryIds": {
            "description": "The set of story id's that this alert is a member of as a trigger alert.",
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "relatedContextualStoryIds": {
            "description": "The set of story id's that this alert is a member of as a contextual alert.",
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "deduplicationKey",
          "summary",
          "severity",
          "type",
          "resource",
          "details"
        ]
      },
      "ResponseError": {
        "type": "object",
        "properties": {
          "type": {
            "description": "An enumurated indication on the type of error that occurred. bad-request - The request was invalid due to an invalid entity. not-found - The reference entity or parent entity could not be found. conflict - The request could not complete due to conflict. timeout - The request failed to complete due to a timeout. server-error - The request failed due to an internal datalayer issue. ",
            "enum": [
              "bad-request",
              "not-found",
              "conflict",
              "timeout",
              "server-error"
            ],
            "type": "string"
          },
          "message": {
            "type": "string",
            "description": "An explanation message of the error that occurred."
          }
        }
      },
      "ChangeResponse": {
        "type": "object",
        "properties": {
          "requestType": {
            "description": "The original request type of the request. If the response indicates the request failed, this will indicate what action type the original request was for. ",
            "enum": [
              "create",
              "update",
              "delete"
            ],
            "type": "string"
          },
          "type": {
            "description": "The type of action the response is for.",
            "enum": [
              "created",
              "updated",
              "deleted",
              "failed"
            ],
            "type": "string"
          },
          "entityType": {
            "description": "The type of entity that is being notified on.",
            "enum": [
              "event",
              "alert",
              "story",
              "alert-timeline",
              "story-timeline",
              "alert-insight",
              "story-insight"
            ],
            "type": "string"
          },
          "err": {
            "$ref": "#/components/schemas/ResponseError"
          },
          "tenantid": {
            "type": "string",
            "description": "The id of the tenant this response is for.",
            "example": "615e87d2-7d38-4a2e-b63f-e813cbcbedf4"
          },
          "requestid": {
            "type": "string",
            "description": "The id of the request that this response is for.",
            "example": "46c4b4ac-cbfe-45eb-88cb-0b8a04fb6a85"
          },
          "responseTime": {
            "type": "string",
            "description": "The time at which the response was generated.",
            "example": "null"
          },
          "entity": {
            "type": "object"
          }
        },
        "required": [
          "requestType",
          "type",
          "entityType",
          "tenantid",
          "requestid",
          "entity"
        ]
      },
      "ErrorResponse401Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Unauthorized - invalid or missing token"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Unauthorized"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 401,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "ErrorResponse403Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Forbidden - insufficient permissions"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Forbidden"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 403,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "ErrorResponse500Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Internal server error"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Internal Server Error"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 500,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "ErrorResponse502Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Invalid response from upstream service"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Bad Gateway"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 502,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "ErrorResponse503Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Service is unavailable"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Service Unavailable"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 503,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "ErrorResponse400Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Invalid request data provided"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Bad Request"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 400,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "ErrorResponse404Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Resource not found"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Not Found"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 404,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "BulkUpdateFailedDetails": {
        "type": "object",
        "properties": {
          "number": {
            "type": "number",
            "description": "Number of failed updates",
            "example": 0
          },
          "details": {
            "type": "array",
            "description": "Array of detailed failure information",
            "items": {
              "type": "object"
            },
            "example": []
          }
        },
        "required": [
          "number",
          "details"
        ]
      },
      "BulkUpdateConflictDetails": {
        "type": "object",
        "properties": {
          "number": {
            "type": "number",
            "description": "Number of conflicting updates",
            "example": 0
          },
          "details": {
            "type": "array",
            "description": "Array of detailed conflict information",
            "items": {
              "type": "object"
            },
            "example": []
          }
        },
        "required": [
          "number",
          "details"
        ]
      },
      "BulkUpdateAlertsResponseDto": {
        "type": "object",
        "properties": {
          "affected": {
            "type": "number",
            "description": "Number of alerts successfully updated",
            "example": 2
          },
          "failed": {
            "description": "Information about failed updates",
            "allOf": [
              {
                "$ref": "#/components/schemas/BulkUpdateFailedDetails"
              }
            ]
          },
          "conflict": {
            "description": "Information about conflicting updates",
            "allOf": [
              {
                "$ref": "#/components/schemas/BulkUpdateConflictDetails"
              }
            ]
          }
        },
        "required": [
          "affected",
          "failed",
          "conflict"
        ]
      },
      "TimelineEntry": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of timeline entry that this is.&lt;br&gt;&lt;ul&gt; &lt;li&gt;alertadded - Details on addition of alert to element&lt;/li&gt; &lt;li&gt;automation - Details on runbook action on element&lt;/li&gt; &lt;li&gt;comment - System or operator comment on element&lt;/li&gt; &lt;li&gt;created - Details on element creation&lt;/li&gt; &lt;li&gt;eventadded - Details on addition of event to element&lt;/li&gt; &lt;li&gt;notification - Notification of a timeline entry related to an element.&lt;/li&gt; &lt;li&gt;ownerchange - Details on element ownership change&lt;/li&gt; &lt;li&gt;policy - Details on policy affect on element&lt;/li&gt; &lt;li&gt;statechange - Details on element state change&lt;/li&gt; &lt;li&gt;unknown - Unknown content type for timeline. Used to extend timeline in deployment without type. Onus is on consuming client to handle it.&lt;/li&gt; &lt;li&gt;updated - Details on element update not related to owner or state&lt;/li&gt; ",
            "enum": [
              "alertadded",
              "automation",
              "comment",
              "created",
              "eventadded",
              "notification",
              "ownerchange",
              "policy",
              "statechange",
              "unknown",
              "updated"
            ],
            "type": "string"
          },
          "id": {
            "type": "string",
            "description": "A unique identifier for this timeline",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "createdTime": {
            "type": "string",
            "description": "The time at which this timeline was created utc time",
            "example": "null"
          },
          "content": {
            "type": "object"
          }
        }
      },
      "CreateAlertTimelineDto": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "The comment text to add to the alert timeline",
            "example": "Investigating the root cause of this alert"
          },
          "metadata": {
            "type": "string",
            "description": "Optional metadata or additional context for the timeline entry",
            "example": "Added by cpadmin"
          }
        },
        "required": [
          "comment"
        ]
      },
      "InsightType": {
        "type": "string",
        "enum": [
          "aiops.ibm.com/insight-type/action/history",
          "aiops.ibm.com/insight-type/anomaly",
          "aiops.ibm.com/insight-type/business/criticality",
          "aiops.ibm.com/insight-type/chatops/metadata",
          "aiops.ibm.com/insight-type/chatops/notification",
          "aiops.ibm.com/insight-type/created-by",
          "aiops.ibm.com/insight-type/deduplication-details",
          "aiops.ibm.com/insight-type/event/related-alert",
          "aiops.ibm.com/insight-type/feedback",
          "aiops.ibm.com/insight-type/golden-signal",
          "aiops.ibm.com/insight-type/incident-summary",
          "aiops.ibm.com/insight-type/incident-title",
          "aiops.ibm.com/insight-type/itsm/metadata",
          "aiops.ibm.com/insight-type/lad/resolutions",
          "aiops.ibm.com/insight-type/lad/templates",
          "aiops.ibm.com/insight-type/log-template",
          "aiops.ibm.com/insight-type/probable-cause",
          "aiops.ibm.com/insight-type/relationship/causal",
          "aiops.ibm.com/insight-type/relationship/causal-union",
          "aiops.ibm.com/insight-type/relationship/third-party-event-correlation",
          "aiops.ibm.com/insight-type/runbook",
          "aiops.ibm.com/insight-type/seasonal-occurrence",
          "aiops.ibm.com/insight-type/similar-incidents",
          "aiops.ibm.com/insight-type/similar-story",
          "aiops.ibm.com/insight-type/story/holdoff",
          "aiops.ibm.com/insight-type/story/proposed-by",
          "aiops.ibm.com/insight-type/suppression",
          "aiops.ibm.com/insight-type/topology/group",
          "aiops.ibm.com/insight-type/topology/resource",
          "aiops.ibm.com/insight-type/topology/statusId",
          "aiops.ibm.com/insight-type/topology/story",
          "aiops.ibm.com/insight-type/verbose-description",
          "aiops.ibm.com/insight-type/xiny"
        ]
      },
      "CreateInsightDto": {
        "type": "object",
        "properties": {
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ActionHistory"
              },
              {
                "$ref": "#/components/schemas/AlertResolutions"
              },
              {
                "$ref": "#/components/schemas/Anomaly"
              },
              {
                "$ref": "#/components/schemas/AssociatedAlertTemplates"
              },
              {
                "$ref": "#/components/schemas/BusinessCriticality"
              },
              {
                "$ref": "#/components/schemas/CausalRelationship"
              },
              {
                "$ref": "#/components/schemas/ChatOpsIntegrators"
              },
              {
                "$ref": "#/components/schemas/ChatOpsNotification"
              },
              {
                "$ref": "#/components/schemas/CreatedBy"
              },
              {
                "$ref": "#/components/schemas/DeduplicationDetails"
              },
              {
                "$ref": "#/components/schemas/Feedback"
              },
              {
                "$ref": "#/components/schemas/GoldenSignal"
              },
              {
                "$ref": "#/components/schemas/ITSMIntegrators"
              },
              {
                "$ref": "#/components/schemas/IncidentSummary"
              },
              {
                "$ref": "#/components/schemas/IncidentTitle"
              },
              {
                "$ref": "#/components/schemas/LogTemplate"
              },
              {
                "$ref": "#/components/schemas/ProbableCauseRanking"
              },
              {
                "$ref": "#/components/schemas/ProposedStory"
              },
              {
                "$ref": "#/components/schemas/RelatedAlert"
              },
              {
                "$ref": "#/components/schemas/Runbook"
              },
              {
                "$ref": "#/components/schemas/SeasonalOccurrence"
              },
              {
                "$ref": "#/components/schemas/SimilarIncidents"
              },
              {
                "$ref": "#/components/schemas/SimiliarStory"
              },
              {
                "$ref": "#/components/schemas/StoryCreationHoldoff"
              },
              {
                "$ref": "#/components/schemas/StoryTopology"
              },
              {
                "$ref": "#/components/schemas/Suppression"
              },
              {
                "$ref": "#/components/schemas/ThirdPartyEventCorrelation"
              },
              {
                "$ref": "#/components/schemas/TopologicalGroup"
              },
              {
                "$ref": "#/components/schemas/TopologicalResource"
              },
              {
                "$ref": "#/components/schemas/TopologicalStatusId"
              },
              {
                "$ref": "#/components/schemas/Union"
              },
              {
                "$ref": "#/components/schemas/VerboseDescription"
              },
              {
                "$ref": "#/components/schemas/XinY"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "The unique identifier for this specific relationship, used to identify other related entities. Entities with the same insight id will participate in the same insight. In other words, this may act as a correlation key.",
            "example": "98aa5f81-7da7-4063-bd66-dccaf59097d1"
          },
          "type": {
            "type": "string",
            "description": "The type of insight being described.",
            "example": "aiops.ibm.com/insight-type/relationship/causal",
            "enum": [
              "aiops.ibm.com/insight-type/action/history",
              "aiops.ibm.com/insight-type/lad/resolutions",
              "aiops.ibm.com/insight-type/anomaly",
              "aiops.ibm.com/insight-type/lad/templates",
              "aiops.ibm.com/insight-type/business/criticality",
              "aiops.ibm.com/insight-type/relationship/causal",
              "aiops.ibm.com/insight-type/chatops/metadata",
              "aiops.ibm.com/insight-type/chatops/notification",
              "aiops.ibm.com/insight-type/created-by",
              "aiops.ibm.com/insight-type/deduplication-details",
              "aiops.ibm.com/insight-type/feedback",
              "aiops.ibm.com/insight-type/golden-signal",
              "aiops.ibm.com/insight-type/itsm/metadata",
              "aiops.ibm.com/insight-type/incident-summary",
              "aiops.ibm.com/insight-type/incident-title",
              "aiops.ibm.com/insight-type/log-template",
              "aiops.ibm.com/insight-type/probable-cause",
              "aiops.ibm.com/insight-type/story/proposed-by",
              "aiops.ibm.com/insight-type/event/related-alert",
              "aiops.ibm.com/insight-type/runbook",
              "aiops.ibm.com/insight-type/seasonal-occurrence",
              "aiops.ibm.com/insight-type/similar-incidents",
              "aiops.ibm.com/insight-type/similar-story",
              "aiops.ibm.com/insight-type/story/holdoff",
              "aiops.ibm.com/insight-type/topology/story",
              "aiops.ibm.com/insight-type/suppression",
              "aiops.ibm.com/insight-type/relationship/third-party-event-correlation",
              "aiops.ibm.com/insight-type/topology/group",
              "aiops.ibm.com/insight-type/topology/resource",
              "aiops.ibm.com/insight-type/topology/statusId",
              "aiops.ibm.com/insight-type/relationship/causal-union",
              "aiops.ibm.com/insight-type/verbose-description",
              "aiops.ibm.com/insight-type/xiny"
            ]
          },
          "source": {
            "type": "string",
            "description": "The source of the insight information.",
            "example": "aiops.ibm.com/insight-source/temporal-analytics"
          }
        }
      },
      "AlgorithmInfoDto": {
        "type": "object",
        "properties": {
          "algorithmName": {
            "type": "string",
            "description": "The name of the algorithm",
            "example": "temporal-grouping"
          },
          "algorithmDescription": {
            "type": "string",
            "description": "A description of what the algorithm does",
            "example": "Groups alerts based on temporal patterns"
          },
          "isRegistered": {
            "type": "boolean",
            "description": "Whether the algorithm is registered in the system",
            "example": true
          },
          "lastChange": {
            "type": "string",
            "description": "Timestamp of the last change to the algorithm",
            "example": "2025-01-14T10:30:00Z"
          },
          "runtimeName": {
            "type": "string",
            "description": "The runtime environment name for the algorithm",
            "example": "python-3.9"
          },
          "version": {
            "type": "string",
            "description": "The version of the algorithm",
            "example": "1.0.0"
          },
          "manifestBase64": {
            "type": "string",
            "description": "Base64-encoded manifest of the algorithm configuration",
            "example": "eyJuYW1lIjoidGVtcG9yYWwtZ3JvdXBpbmcifQ=="
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Whether the algorithm is currently enabled",
            "example": true
          },
          "usedStatus": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "COMPLETED",
                "FAILED",
                "QUEUED",
                "RETRIEVING_DATA",
                "PREPARING_DATA",
                "CHECKING_DATA_QUALITY",
                "TRAINING",
                "EVALUATING_MODELS",
                "SAVING_MODELS"
              ]
            },
            "description": "Current usage status of the algorithm",
            "example": [
              "COMPLETED",
              "TRAINING"
            ]
          }
        },
        "required": [
          "algorithmName",
          "algorithmDescription",
          "isRegistered",
          "lastChange",
          "runtimeName",
          "version",
          "manifestBase64",
          "isEnabled",
          "usedStatus"
        ]
      },
      "RegisterAlgorithmDto": {
        "type": "object",
        "properties": {
          "algorithmName": {
            "type": "string",
            "description": "The name of the algorithm to register",
            "example": "temporal-grouping"
          },
          "runtimeName": {
            "enum": [
              "SPARK",
              "LUIGI"
            ],
            "type": "string",
            "description": "The runtime environment for the algorithm",
            "example": "SPARK"
          },
          "configBase64": {
            "type": "string",
            "description": "Base64-encoded configuration for the algorithm",
            "example": "eyJjb25maWciOiAidmFsdWUifQ=="
          },
          "configType": {
            "enum": [
              "JSON",
              "YAML"
            ],
            "type": "string",
            "description": "The type of configuration format",
            "example": "JSON"
          },
          "algorithmDescription": {
            "type": "string",
            "description": "A description of what the algorithm does",
            "example": "Groups alerts based on temporal patterns"
          },
          "version": {
            "type": "string",
            "description": "The version of the algorithm",
            "example": "1.0.0"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Whether the algorithm should be enabled upon registration",
            "example": true
          },
          "usedStatus": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "COMPLETED",
                "FAILED",
                "QUEUED",
                "RETRIEVING_DATA",
                "PREPARING_DATA",
                "CHECKING_DATA_QUALITY",
                "TRAINING",
                "EVALUATING_MODELS",
                "SAVING_MODELS"
              ]
            },
            "description": "Initial usage status of the algorithm",
            "example": [
              "QUEUED"
            ]
          }
        },
        "required": [
          "algorithmName",
          "runtimeName",
          "configBase64",
          "configType",
          "algorithmDescription"
        ]
      },
      "MutationResultDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Success or error details",
            "example": "Operation completed successfully"
          },
          "status": {
            "type": "string",
            "description": "Whether or not the mutation succeeded (e.g. SUCCEEDED, FAILED)",
            "example": "SUCCEEDED"
          },
          "precheckCompleted": {
            "type": "boolean",
            "description": "Whether the associated precheck run is complete. Used for pop up notification in the UI after clicking 'Train models'",
            "example": true
          }
        },
        "required": [
          "message",
          "status"
        ]
      },
      "CreateIncidentDto": {
        "type": "object",
        "properties": {
          "priority": {
            "description": "An indication of the relative impact of the issue that caused this incident to be raised. 1 - Priority 1 (Highest), 2 - Priority 2, 3 - Priority 3, 4 - Priority 4, 5 - Priority 5 ",
            "enum": [
              1,
              2,
              3,
              4,
              5
            ],
            "type": "number"
          },
          "state": {
            "description": "The current state of the incident",
            "enum": [
              "unassigned",
              "assignedToTeam",
              "assignedToIndividual",
              "inProgress",
              "onHold",
              "resolved",
              "closed"
            ],
            "type": "string"
          },
          "alertIds": {
            "description": "The set of related alert id&#39;s that have triggered the creation of the incident. These alerts affect and are affected by the lifecycle of the incident. The incident will only be automatically resolved if all of the alerts are cleared. When the incident is resolved all of these alerts will be cleared. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contextualAlertIds": {
            "description": "The set of alert id&#39;s that provide additional context to the incident due to relationships with the triggering alerts or other contextual alerts. These alerts do not affect or are affected by the lifecycle of the incident. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the incident with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "id": {
            "type": "string",
            "description": "A unique identifier for the incident",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "createdTime": {
            "type": "string",
            "description": "The time at which the incident was created",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The actor who created the incident",
            "example": "user123"
          },
          "title": {
            "type": "string",
            "description": "A short description of the incident"
          },
          "description": {
            "type": "string",
            "description": "A longer description of the incident"
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 language id",
            "example": "eng"
          },
          "externalEndPoint": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "lastChangedTime": {
            "type": "string",
            "description": "The time at which the incident last changed",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "owner": {
            "type": "string",
            "description": "The owner who is assigned to the incident",
            "example": "user123"
          },
          "team": {
            "type": "string",
            "description": "The team who is assigned to the incident",
            "example": "team123"
          },
          "custom": {
            "type": "object",
            "description": "The best practice documented location for user defined custom properties."
          }
        }
      },
      "IncidentModel": {
        "type": "object",
        "properties": {
          "priority": {
            "description": "An indication of the relative impact of the issue that caused this incident to be raised. 1 - Priority 1 (Highest), 2 - Priority 2, 3 - Priority 3, 4 - Priority 4, 5 - Priority 5 ",
            "enum": [
              1,
              2,
              3,
              4,
              5
            ],
            "type": "number"
          },
          "state": {
            "description": "The current state of the incident",
            "enum": [
              "unassigned",
              "assignedToTeam",
              "assignedToIndividual",
              "inProgress",
              "onHold",
              "resolved",
              "closed"
            ],
            "type": "string"
          },
          "alertIds": {
            "description": "The set of related alert id&#39;s that have triggered the creation of the incident. These alerts affect and are affected by the lifecycle of the incident. The incident will only be automatically resolved if all of the alerts are cleared. When the incident is resolved all of these alerts will be cleared. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contextualAlertIds": {
            "description": "The set of alert id&#39;s that provide additional context to the incident due to relationships with the triggering alerts or other contextual alerts. These alerts do not affect or are affected by the lifecycle of the incident. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the incident with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "id": {
            "type": "string",
            "description": "A unique identifier for the incident",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "createdTime": {
            "type": "string",
            "description": "The time at which the incident was created",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The actor who created the incident",
            "example": "user123"
          },
          "title": {
            "type": "string",
            "description": "A short description of the incident"
          },
          "description": {
            "type": "string",
            "description": "A longer description of the incident"
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 language id",
            "example": "eng"
          },
          "externalEndPoint": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "lastChangedTime": {
            "type": "string",
            "description": "The time at which the incident last changed",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "owner": {
            "type": "string",
            "description": "The owner who is assigned to the incident",
            "example": "user123"
          },
          "team": {
            "type": "string",
            "description": "The team who is assigned to the incident",
            "example": "team123"
          },
          "custom": {
            "type": "object",
            "description": "The best practice documented location for user defined custom properties."
          }
        }
      },
      "UpdateIncidentDto": {
        "type": "object",
        "properties": {
          "priority": {
            "description": "An indication of the relative impact of the issue that caused this incident to be raised. 1 - Priority 1 (Highest), 2 - Priority 2, 3 - Priority 3, 4 - Priority 4, 5 - Priority 5 ",
            "enum": [
              1,
              2,
              3,
              4,
              5
            ],
            "type": "number"
          },
          "state": {
            "description": "The current state of the incident",
            "enum": [
              "unassigned",
              "assignedToTeam",
              "assignedToIndividual",
              "inProgress",
              "onHold",
              "resolved",
              "closed"
            ],
            "type": "string"
          },
          "alertIds": {
            "description": "The set of related alert id&#39;s that have triggered the creation of the incident. These alerts affect and are affected by the lifecycle of the incident. The incident will only be automatically resolved if all of the alerts are cleared. When the incident is resolved all of these alerts will be cleared. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contextualAlertIds": {
            "description": "The set of alert id&#39;s that provide additional context to the incident due to relationships with the triggering alerts or other contextual alerts. These alerts do not affect or are affected by the lifecycle of the incident. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the incident with one or more other entities or groupings. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "id": {
            "type": "string",
            "description": "A unique identifier for the incident",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "createdTime": {
            "type": "string",
            "description": "The time at which the incident was created",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The actor who created the incident",
            "example": "user123"
          },
          "title": {
            "type": "string",
            "description": "A short description of the incident"
          },
          "description": {
            "type": "string",
            "description": "A longer description of the incident"
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 language id",
            "example": "eng"
          },
          "externalEndPoint": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "lastChangedTime": {
            "type": "string",
            "description": "The time at which the incident last changed",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "owner": {
            "type": "string",
            "description": "The owner who is assigned to the incident",
            "example": "user123"
          },
          "team": {
            "type": "string",
            "description": "The team who is assigned to the incident",
            "example": "team123"
          },
          "custom": {
            "type": "object",
            "description": "The best practice documented location for user defined custom properties."
          }
        }
      },
      "IncidentResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the incident",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "createdTime": {
            "type": "string",
            "description": "The time at which the incident was created",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The actor who created the incident",
            "example": "user123"
          },
          "title": {
            "type": "string",
            "description": "A short description of the incident",
            "example": "The primary front-end is unavailable"
          },
          "description": {
            "type": "string",
            "description": "A longer description of the incident",
            "example": "The primary front-end is unavailable due to the database exhausting available memory"
          },
          "langId": {
            "type": "string",
            "description": "ISO 639-3 language id",
            "example": "eng"
          },
          "priority": {
            "enum": [
              1,
              2,
              3,
              4,
              5
            ],
            "type": "number",
            "description": "An indication of the relative impact of the issue that caused this incident to be raised. 1 - Priority 1 (Highest), 2 - Priority 2, 3 - Priority 3, 4 - Priority 4, 5 - Priority 5"
          },
          "state": {
            "enum": [
              "unassigned",
              "assignedToTeam",
              "assignedToIndividual",
              "inProgress",
              "onHold",
              "resolved",
              "closed"
            ],
            "type": "string",
            "description": "The current state of the incident"
          },
          "externalEndPoint": {
            "description": "External endpoint information",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "lastChangedTime": {
            "type": "string",
            "description": "The time at which the incident last changed",
            "example": "2023-12-31T04:45:00.005Z"
          },
          "owner": {
            "type": "string",
            "description": "The owner who is assigned to the incident",
            "example": "user123"
          },
          "team": {
            "type": "string",
            "description": "The team who is assigned to the incident",
            "example": "team123"
          },
          "alertIds": {
            "description": "The set of related alert id's that have triggered the creation of the incident. These alerts affect and are affected by the lifecycle of the incident. The incident will only be automatically resolved if all of the alerts are cleared. When the incident is resolved all of these alerts will be cleared.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contextualAlertIds": {
            "description": "The set of alert id's that provide additional context to the incident due to relationships with the triggering alerts or other contextual alerts. These alerts do not affect or are affected by the lifecycle of the incident.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "insights": {
            "description": "An array of insights associated with the incident with one or more other entities or groupings.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Insight"
            }
          },
          "custom": {
            "type": "object",
            "description": "The best practice documented location for user defined custom properties."
          }
        }
      },
      "CreateIncidentTimelineDto": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "The comment text to add to the incident timeline",
            "example": "Escalating to senior engineer for further investigation"
          },
          "metadata": {
            "type": "string",
            "description": "Optional metadata or additional context for the timeline entry",
            "example": "Added by cpadmin"
          }
        },
        "required": [
          "comment"
        ]
      },
      "AccessDetails": {
        "type": "object",
        "properties": {
          "users": {
            "description": "The users that should have access to the entity defined by the entity creator. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "description": "The teams of users that should have access to the entity defined by the entity creator. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AccessControlList": {
        "type": "object",
        "properties": {
          "admin": {
            "$ref": "#/components/schemas/AccessDetails"
          },
          "write": {
            "$ref": "#/components/schemas/AccessDetails"
          },
          "read": {
            "$ref": "#/components/schemas/AccessDetails"
          }
        }
      },
      "Condition": {
        "type": "object",
        "properties": {
          "operator": {
            "description": "The operator that connects multiple conditions",
            "enum": [
              "and",
              "or",
              "=",
              "!=",
              ">",
              "<",
              ">=",
              "<=",
              "matches",
              "!matches",
              "contains",
              "!contains",
              "isEmpty",
              "!isEmpty",
              "includesAny",
              "includesAll",
              "excludesAny",
              "excludesAll",
              "startsWith",
              "endsWith"
            ],
            "type": "string"
          },
          "additionalfields": {
            "description": "Additional fields to be included in filter evaluation",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string",
            "description": "Optionally assigned id for the condition",
            "example": "null"
          },
          "field": {
            "type": "string",
            "description": "The name of the property/field in the given structure",
            "example": "insights"
          },
          "value": {
            "type": "object"
          },
          "type": {
            "type": "string",
            "description": "Indicates the type of this condition.",
            "example": "null"
          }
        },
        "required": [
          "operator",
          "type"
        ]
      },
      "FilterConditionSet": {
        "type": "object",
        "properties": {
          "operator": {
            "description": "The operator that connects multiple conditions ",
            "enum": [
              "and",
              "or"
            ],
            "type": "string"
          },
          "conditions": {
            "description": "The conditions that will be used to select the alerts or stories ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Condition"
            }
          }
        }
      },
      "FilterMetadata": {
        "type": "object",
        "properties": {
          "creationTimestamp": {
            "type": "string",
            "description": "The time this filter was first created",
            "example": "null"
          },
          "lastUpdatedTimestamp": {
            "type": "string",
            "description": "The time this filter was last updated",
            "example": "null"
          },
          "createdBy": {
            "type": "string",
            "description": "Unique ID of the user that created this filter.",
            "example": "null"
          },
          "lastUpdatedBy": {
            "type": "string",
            "description": "Unique ID of the user that last updated this filter.",
            "example": "null"
          }
        }
      },
      "FilterStatistics": {
        "type": "object",
        "properties": {
          "lastUsedTimestamp": {
            "type": "string",
            "description": "The time this filter was last used",
            "example": "null"
          },
          "lastUsedBy": {
            "type": "string",
            "description": "Unique ID of the user that last used this filter.",
            "example": "null"
          }
        }
      },
      "Filter": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode type of the filter. There could be more modes added in the future. ",
            "enum": [
              "basic",
              "advanced"
            ],
            "type": "string"
          },
          "type": {
            "description": "The type of elements the filter can be used, such as alerts, stoires, inventory or topology. ",
            "enum": [
              "alert",
              "story",
              "inventory",
              "topology",
              "metric"
            ],
            "type": "string"
          },
          "subType": {
            "description": "The subtype for the filter. This indicates what the filter is to be used for. ",
            "enum": [
              "restriction",
              "ai"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags associated to the filter for grouping ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "conditionSet": {
            "$ref": "#/components/schemas/FilterConditionSet"
          },
          "metadata": {
            "$ref": "#/components/schemas/FilterMetadata"
          },
          "statistics": {
            "$ref": "#/components/schemas/FilterStatistics"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the filter. This will likely be a system-generated UUID or similar.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the filter defined by the filter creator or editors. Support special characters. Editable.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A descriptin of what this filter does, provided by the filter creator or editors.",
            "example": "null"
          },
          "whereClause": {
            "type": "string",
            "description": "Query predicate string used when filter mode is advanced.",
            "example": "null"
          }
        }
      },
      "CreateFilterDto": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode type of the filter. There could be more modes added in the future. ",
            "enum": [
              "basic",
              "advanced"
            ],
            "type": "string"
          },
          "type": {
            "description": "The type of elements the filter can be used, such as alerts, stoires, inventory or topology. ",
            "enum": [
              "alert",
              "story",
              "inventory",
              "topology",
              "metric"
            ],
            "type": "string"
          },
          "subType": {
            "description": "The subtype for the filter. This indicates what the filter is to be used for. ",
            "enum": [
              "restriction",
              "ai"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags associated to the filter for grouping ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "conditionSet": {
            "$ref": "#/components/schemas/FilterConditionSet"
          },
          "metadata": {
            "$ref": "#/components/schemas/FilterMetadata"
          },
          "statistics": {
            "$ref": "#/components/schemas/FilterStatistics"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the filter. This will likely be a system-generated UUID or similar.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the filter defined by the filter creator or editors. Support special characters. Editable.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A descriptin of what this filter does, provided by the filter creator or editors.",
            "example": "null"
          },
          "whereClause": {
            "type": "string",
            "description": "Query predicate string used when filter mode is advanced.",
            "example": "null"
          }
        }
      },
      "CreateFilterResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the newly created filter",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          }
        },
        "required": [
          "id"
        ]
      },
      "ErrorResponse409Dto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing what went wrong",
            "example": "Resource conflict"
          },
          "error": {
            "type": "string",
            "description": "Error type",
            "example": "Conflict"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 409,
            "minimum": 400,
            "maximum": 599
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "updateFilterDto": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode type of the filter. There could be more modes added in the future. ",
            "enum": [
              "basic",
              "advanced"
            ],
            "type": "string"
          },
          "type": {
            "description": "The type of elements the filter can be used, such as alerts, stoires, inventory or topology. ",
            "enum": [
              "alert",
              "story",
              "inventory",
              "topology",
              "metric"
            ],
            "type": "string"
          },
          "subType": {
            "description": "The subtype for the filter. This indicates what the filter is to be used for. ",
            "enum": [
              "restriction",
              "ai"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags associated to the filter for grouping ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "conditionSet": {
            "$ref": "#/components/schemas/FilterConditionSet"
          },
          "metadata": {
            "$ref": "#/components/schemas/FilterMetadata"
          },
          "statistics": {
            "$ref": "#/components/schemas/FilterStatistics"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the filter. This will likely be a system-generated UUID or similar.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the filter defined by the filter creator or editors. Support special characters. Editable.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A descriptin of what this filter does, provided by the filter creator or editors.",
            "example": "null"
          },
          "whereClause": {
            "type": "string",
            "description": "Query predicate string used when filter mode is advanced.",
            "example": "null"
          }
        }
      },
      "DeleteFiltersDto": {
        "type": "object",
        "properties": {
          "condition": {
            "type": "string",
            "minLength": 1,
            "description": "A search condition for particular set of items",
            "example": "metadata.createdBy = 'admin'"
          },
          "ids": {
            "description": "A list of ids to delete.",
            "example": [
              "1b0a852b-79b1-428e-849a-214716cb3e0a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ElementsDeletedDto": {
        "type": "object",
        "properties": {
          "deleted": {
            "description": "A list of the element ids that were deleted.",
            "example": [
              "1b0a852b-79b1-428e-849a-214716cb3e0a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notfound": {
            "description": "A list of element ids that were not found.",
            "example": [
              "2c1b963c-80c2-539f-950b-325827dc4f1b"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "failed": {
            "description": "A list of element ids that were not deleted.",
            "example": [
              "3d2c074d-91d3-640g-a61c-436938ed5g2c"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "deleted",
          "notfound",
          "failed"
        ]
      },
      "ViewColumnsInner": {
        "type": "object",
        "properties": {
          "fieldType": {
            "description": "The type of data for the column ",
            "enum": [
              "string",
              "integer",
              "date-time",
              "custom",
              "boolean"
            ],
            "type": "string"
          },
          "dataJustify": {
            "description": "Where to justify the data in the data cells ",
            "enum": [
              "left",
              "center",
              "right"
            ],
            "type": "string"
          },
          "titleType": {
            "description": "The type of title for the column to display in the header ",
            "enum": [
              "String",
              "Icon"
            ],
            "type": "string"
          },
          "titleJustify": {
            "description": "Where to justify the title in the header cell ",
            "enum": [
              "left",
              "center",
              "right"
            ],
            "type": "string"
          },
          "fieldExpression": {
            "type": "string",
            "description": "The field expression for the column, as a JSONPath statement",
            "example": "null"
          },
          "fieldTitle": {
            "type": "string",
            "description": "The title for the column in the alert details",
            "example": "null"
          },
          "titleText": {
            "type": "string",
            "description": "The title for the column to display in the header",
            "example": "null"
          },
          "columnWidth": {
            "type": "number",
            "description": "The width of the column"
          },
          "frozen": {
            "type": "boolean",
            "description": "States whether this column should be frozen"
          },
          "html": {
            "type": "boolean",
            "description": "States whether this column should render the content as html"
          },
          "hidden": {
            "type": "boolean",
            "description": "States whether this column is hidden"
          }
        }
      },
      "ViewGrouping": {
        "type": "object",
        "properties": {
          "columns": {
            "description": "The set of columns, by id, to perform groupings on. Max 3. ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sortOn": {
            "description": "The values on which to sort the groups. Either on the group itself (default) or the count. ",
            "enum": [
              "group",
              "count"
            ],
            "type": "string"
          }
        }
      },
      "ViewMetadata": {
        "type": "object",
        "properties": {
          "creationTimestamp": {
            "type": "string",
            "description": "The time this view was first created",
            "example": "null"
          },
          "lastUpdatedTimestamp": {
            "type": "string",
            "description": "The time this view was last updated",
            "example": "null"
          },
          "createdBy": {
            "type": "string",
            "description": "Unique ID of the user that created this view.",
            "example": "null"
          },
          "lastUpdatedBy": {
            "type": "string",
            "description": "Unique ID of the user that last updated this view.",
            "example": "null"
          }
        }
      },
      "ViewStatistics": {
        "type": "object",
        "properties": {
          "lastUsedTimestamp": {
            "type": "string",
            "description": "The time this view was last used",
            "example": "null"
          },
          "lastUsedBy": {
            "type": "string",
            "description": "Unique ID of the user that last used this view.",
            "example": "null"
          }
        }
      },
      "View": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the view. whether its the alert or story view ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags for grouping views ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "columns": {
            "description": "The columns, and their properties, that will be displayed in this view. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewColumnsInner"
            }
          },
          "grouping": {
            "$ref": "#/components/schemas/ViewGrouping"
          },
          "metadata": {
            "$ref": "#/components/schemas/ViewMetadata"
          },
          "statistics": {
            "$ref": "#/components/schemas/ViewStatistics"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the view. This will likely be a system-generated UUID or similar.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the view defined by the view creator or editors. Support special characters. Editable.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A description of what this view does, provided by the view creator or editors.",
            "example": "null"
          },
          "sortColumns": {
            "description": "The columns, in order, and their sort direction to sort by.",
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "CreateViewDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the view. whether its the alert or story view ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags for grouping views ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "columns": {
            "description": "The columns, and their properties, that will be displayed in this view. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewColumnsInner"
            }
          },
          "grouping": {
            "$ref": "#/components/schemas/ViewGrouping"
          },
          "metadata": {
            "$ref": "#/components/schemas/ViewMetadata"
          },
          "statistics": {
            "$ref": "#/components/schemas/ViewStatistics"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the view. This will likely be a system-generated UUID or similar.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the view defined by the view creator or editors. Support special characters. Editable.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A description of what this view does, provided by the view creator or editors.",
            "example": "null"
          },
          "sortColumns": {
            "description": "The columns, in order, and their sort direction to sort by.",
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "CreateViewResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the newly created view",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          }
        },
        "required": [
          "id"
        ]
      },
      "UpdateViewDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the view. whether its the alert or story view ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags for grouping views ",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "columns": {
            "description": "The columns, and their properties, that will be displayed in this view. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewColumnsInner"
            }
          },
          "grouping": {
            "$ref": "#/components/schemas/ViewGrouping"
          },
          "metadata": {
            "$ref": "#/components/schemas/ViewMetadata"
          },
          "statistics": {
            "$ref": "#/components/schemas/ViewStatistics"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the view. This will likely be a system-generated UUID or similar.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the view defined by the view creator or editors. Support special characters. Editable.",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "A description of what this view does, provided by the view creator or editors.",
            "example": "null"
          },
          "sortColumns": {
            "description": "The columns, in order, and their sort direction to sort by.",
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "MenuItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Reference to a remote identifier of the action called from the menu item. Currently, these actions exist in RBA-AS and IR UI.",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          },
          "hidden": {
            "type": "boolean",
            "description": "Indicates whether the menu item is visible in the menu."
          }
        }
      },
      "MenuItemOrSubmenu": {
        "type": "object",
        "properties": {
          "menuItems": {
            "description": "A list of submenu items. Order is implicit, i.e. the order of the array is the order in which the submenu items are displayed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuItem"
            }
          },
          "id": {
            "type": "string",
            "description": "Reference to a remote identifier of the action called from the menu item. Currently, these actions exist in RBA-AS and IR UI.",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          },
          "hidden": {
            "type": "boolean",
            "description": "Indicates whether the menu item is visible in the menu."
          },
          "name": {
            "type": "string",
            "description": "The name of the submenu. This is a display label used in the  menu and does not need to be unique.",
            "example": "default"
          }
        }
      },
      "MenuMetadata": {
        "type": "object",
        "properties": {
          "creationTimestamp": {
            "type": "string",
            "description": "The time this menu was first created.",
            "example": "null"
          },
          "lastUpdatedTimestamp": {
            "type": "string",
            "description": "The time this menu was last updated.",
            "example": "null"
          },
          "createdBy": {
            "type": "string",
            "description": "Unique ID of the user that created this menu.",
            "example": "null"
          },
          "lastUpdatedBy": {
            "type": "string",
            "description": "Unique ID of the user that last updated this menu.",
            "example": "null"
          }
        }
      },
      "Menu": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of menu. ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "menuItems": {
            "description": "A list of menu items. Order is implicit, i.e. the order of the array is the order in which the menu items are displayed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuItemOrSubmenu"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "metadata": {
            "$ref": "#/components/schemas/MenuMetadata"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the menu.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the menu. This is a display label for use in a menu manager and does not need to be unique.",
            "example": "default"
          },
          "description": {
            "type": "string",
            "description": "A description of the menu, intended for use in a menu manager to provide more detail on menu content and target users.",
            "example": "null"
          },
          "editable": {
            "type": "boolean",
            "description": "Is the menu editable."
          }
        }
      },
      "CreateMenuDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of menu. ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "menuItems": {
            "description": "A list of menu items. Order is implicit, i.e. the order of the array is the order in which the menu items are displayed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuItemOrSubmenu"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "metadata": {
            "$ref": "#/components/schemas/MenuMetadata"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the menu.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the menu. This is a display label for use in a menu manager and does not need to be unique.",
            "example": "default"
          },
          "description": {
            "type": "string",
            "description": "A description of the menu, intended for use in a menu manager to provide more detail on menu content and target users.",
            "example": "null"
          },
          "editable": {
            "type": "boolean",
            "description": "Is the menu editable."
          }
        }
      },
      "CreateMenuResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the newly created menu",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          }
        },
        "required": [
          "id"
        ]
      },
      "UpdateMenuDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of menu. ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "menuItems": {
            "description": "A list of menu items. Order is implicit, i.e. the order of the array is the order in which the menu items are displayed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuItemOrSubmenu"
            }
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "metadata": {
            "$ref": "#/components/schemas/MenuMetadata"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the menu.",
            "example": "null"
          },
          "name": {
            "type": "string",
            "description": "The name of the menu. This is a display label for use in a menu manager and does not need to be unique.",
            "example": "default"
          },
          "description": {
            "type": "string",
            "description": "A description of the menu, intended for use in a menu manager to provide more detail on menu content and target users.",
            "example": "null"
          },
          "editable": {
            "type": "boolean",
            "description": "Is the menu editable."
          }
        }
      },
      "ToolMappingsInner": {
        "type": "object",
        "properties": {
          "mappingType": {
            "description": "How an action parameter is mapped: &#39;parameter&#39; uses a field or property from the target. &#39;fixed&#39; always uses the same value. &#39;useDefault&#39; uses the default from the action. &#39;runtime&#39; leaves the entry up to the operator. ",
            "enum": [
              "parameter",
              "fixed",
              "useDefault",
              "runtime"
            ],
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the parameter of the underlying implementation (RBA action, IR UI).",
            "example": "null"
          },
          "value": {
            "type": "object",
            "nullable": true,
            "description": "The value of the parameter as a string potentially with property placeholders for the item in context."
          }
        }
      },
      "ToolImplementation": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of implementation. ",
            "enum": [
              "rba",
              "irui"
            ],
            "type": "string"
          },
          "rid": {
            "type": "string",
            "description": "Reference to a remote identifier of the action called from the tool item. Currently, these actions exist in RBA-AS and IR UI.",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          },
          "version": {
            "type": "number",
            "description": "The version of the underlying implementation."
          }
        }
      },
      "ToolConditionSet": {
        "type": "object",
        "properties": {
          "operator": {
            "description": "The operator that connects multiple conditions ",
            "enum": [
              "and",
              "or"
            ],
            "type": "string"
          },
          "conditions": {
            "description": "The conditions that will be used to determine the relevance to the item in context.",
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ToolMetadata": {
        "type": "object",
        "properties": {
          "creationTimestamp": {
            "type": "string",
            "description": "The time this tool was first created.",
            "example": "null"
          },
          "lastUpdatedTimestamp": {
            "type": "string",
            "description": "The time this tool was last updated.",
            "example": "null"
          },
          "createdBy": {
            "type": "string",
            "description": "Unique ID of the user that created this tool.",
            "example": "null"
          },
          "lastUpdatedBy": {
            "type": "string",
            "description": "Unique ID of the user that last updated this tool.",
            "example": "null"
          }
        }
      },
      "Tool": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of tool. ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags assigned to the tool.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mappings": {
            "description": "Mapping of parameter names to string template values passed to the underlying  implementation when a tool is executed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ToolMappingsInner"
            }
          },
          "implementation": {
            "$ref": "#/components/schemas/ToolImplementation"
          },
          "conditionSet": {
            "$ref": "#/components/schemas/ToolConditionSet"
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "metadata": {
            "$ref": "#/components/schemas/ToolMetadata"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the tool.",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          },
          "name": {
            "type": "string",
            "description": "The name of the tool. This is a display label for use in the tool runtime UI and does not need to be unique.",
            "example": "default"
          },
          "description": {
            "type": "string",
            "description": "A description of the tool, intended for use in a tool editor to provide more detail on tool content and target users.",
            "example": "null"
          },
          "timelineEntry": {
            "type": "string",
            "description": "A timeline entry to be logged to the target entity\\'s timeline upon successful execution of the tool.",
            "example": "null"
          },
          "multiTarget": {
            "type": "boolean",
            "description": "A flag to indicate whether the tool supports multiple targets."
          },
          "shortcut": {
            "type": "string",
            "description": "A key combination that can be used to invoke the tool. Format must be compatible with react-hotkeys.",
            "example": "ctrl+t"
          }
        }
      },
      "CreateToolDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of tool. ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags assigned to the tool.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mappings": {
            "description": "Mapping of parameter names to string template values passed to the underlying  implementation when a tool is executed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ToolMappingsInner"
            }
          },
          "implementation": {
            "$ref": "#/components/schemas/ToolImplementation"
          },
          "conditionSet": {
            "$ref": "#/components/schemas/ToolConditionSet"
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "metadata": {
            "$ref": "#/components/schemas/ToolMetadata"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the tool.",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          },
          "name": {
            "type": "string",
            "description": "The name of the tool. This is a display label for use in the tool runtime UI and does not need to be unique.",
            "example": "default"
          },
          "description": {
            "type": "string",
            "description": "A description of the tool, intended for use in a tool editor to provide more detail on tool content and target users.",
            "example": "null"
          },
          "timelineEntry": {
            "type": "string",
            "description": "A timeline entry to be logged to the target entity\\'s timeline upon successful execution of the tool.",
            "example": "null"
          },
          "multiTarget": {
            "type": "boolean",
            "description": "A flag to indicate whether the tool supports multiple targets."
          },
          "shortcut": {
            "type": "string",
            "description": "A key combination that can be used to invoke the tool. Format must be compatible with react-hotkeys.",
            "example": "ctrl+t"
          }
        }
      },
      "CreateToolResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the newly created tool",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          }
        },
        "required": [
          "id"
        ]
      },
      "UpdateToolDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of tool. ",
            "enum": [
              "alert",
              "story"
            ],
            "type": "string"
          },
          "tags": {
            "description": "A list of tags assigned to the tool.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mappings": {
            "description": "Mapping of parameter names to string template values passed to the underlying  implementation when a tool is executed. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ToolMappingsInner"
            }
          },
          "implementation": {
            "$ref": "#/components/schemas/ToolImplementation"
          },
          "conditionSet": {
            "$ref": "#/components/schemas/ToolConditionSet"
          },
          "accessControlList": {
            "$ref": "#/components/schemas/AccessControlList"
          },
          "metadata": {
            "$ref": "#/components/schemas/ToolMetadata"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the tool.",
            "example": "1b0a852b-79b1-428e-849a-214716cb3e0a"
          },
          "name": {
            "type": "string",
            "description": "The name of the tool. This is a display label for use in the tool runtime UI and does not need to be unique.",
            "example": "default"
          },
          "description": {
            "type": "string",
            "description": "A description of the tool, intended for use in a tool editor to provide more detail on tool content and target users.",
            "example": "null"
          },
          "timelineEntry": {
            "type": "string",
            "description": "A timeline entry to be logged to the target entity\\'s timeline upon successful execution of the tool.",
            "example": "null"
          },
          "multiTarget": {
            "type": "boolean",
            "description": "A flag to indicate whether the tool supports multiple targets."
          },
          "shortcut": {
            "type": "string",
            "description": "A key combination that can be used to invoke the tool. Format must be compatible with react-hotkeys.",
            "example": "ctrl+t"
          }
        }
      },
      "RunbookParameterArrayItems": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Optional. Define the type for each array item. If no value is set, \"string\" is assumed.",
            "enum": [
              "string",
              "integer",
              "boolean"
            ],
            "default": "string"
          },
          "enum": {
            "description": "Optional. Limit the potential input to a set of allowed values. If no value is set, the input is not limited.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              }
            ]
          },
          "enumLabels": {
            "description": "Optional. Contains human readable labels for enumerations, for example, if the base enumeration consists of ID numbers. Requires \"enum\" to be defined.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RunbookParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[^\\<>\\s&]+$",
            "description": "The name of the parameter."
          },
          "description": {
            "type": "string",
            "description": "An optional description, explaining the purpose of this."
          },
          "type": {
            "type": "string",
            "description": "Define the type for this parameter. If no value is set, \"string\" is assumed.",
            "enum": [
              "string",
              "integer",
              "array",
              "boolean"
            ],
            "default": "string"
          },
          "enum": {
            "description": "Optional. Limit the potential input to a set of allowed values. If no value is set, the input is not limited.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              }
            ]
          },
          "enumLabels": {
            "description": "Optional. Contains human readable labels for enumerations, for example, if the base enumeration consists of ID numbers. Requires \"enum\" to be defined.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "default": {
            "type": "object",
            "description": "Defines a default value, which will be used, if no other input is made."
          },
          "minLength": {
            "type": "number",
            "minimum": 0,
            "description": "Optional. Define a minimum length for a parameter of type \"string\". If no value is set, the string doesn't have a minimum length and becomes optional."
          },
          "maxLength": {
            "type": "number",
            "minimum": 0,
            "description": "Optional. Define a maximum length for a parameter of type \"string\". If no value is set, the length of a string parameter is unlimited."
          },
          "minimum": {
            "type": "number",
            "description": "Optional. Define a minimum value for a parameter of type \"integer\". If no value is set, the minimum of an integer parameter is boundless."
          },
          "maximum": {
            "type": "number",
            "description": "Optional. Define a maximum value for a parameter of type \"integer\". If no value is set, the maximum of an integer parameter is boundless."
          },
          "minItems": {
            "type": "number",
            "minimum": 0,
            "description": "Optional. Define a minimum array length for a parameter of type \"array\". If no value is set, the minimum size of an array parameter is '0'."
          },
          "maxItems": {
            "type": "number",
            "minimum": 0,
            "description": "Optional. Define a maximum array length for a parameter of type \"array\". If no value is set, the maximum size of an array parameter is boundless."
          },
          "items": {
            "description": "Optional. Define the schema for each array item. If no value is set, each item will be of type \"string\".",
            "allOf": [
              {
                "$ref": "#/components/schemas/RunbookParameterArrayItems"
              }
            ]
          },
          "format": {
            "type": "string",
            "description": "Optional. Define a specific format for a parameter to narrow down content and format. If no value is set, no additional format is used.",
            "enum": [
              "password",
              "multiline"
            ]
          }
        },
        "required": [
          "name"
        ]
      },
      "RunbookRuns": {
        "type": "object",
        "properties": {
          "success": {
            "type": "number",
            "description": "This value shows the number of runbook executions for this runbook with a successful conclusion."
          },
          "failure": {
            "type": "number",
            "description": "This value shows the number of runbook executions for this runbook indicating a failure."
          },
          "cancel": {
            "type": "number",
            "description": "This value shows the number of runbook executions for this runbook that have been canceled before finishing."
          },
          "inprogress": {
            "type": "number",
            "description": "This value shows the number of runbook executions for this runbook currently in progress."
          },
          "paused": {
            "type": "number",
            "description": "This value shows the number of runbook executions for this runbook that have been paused."
          },
          "total": {
            "type": "number",
            "description": "This value shows the number of runbook executions for this runbook independently of the state."
          }
        }
      },
      "RunbookStatistics": {
        "type": "object",
        "properties": {
          "runs": {
            "description": "Runbook execution statistics",
            "allOf": [
              {
                "$ref": "#/components/schemas/RunbookRuns"
              }
            ]
          },
          "comments": {
            "type": "number",
            "description": "This value shows the number of comments on execution records of this object."
          },
          "ratingavg": {
            "type": "number",
            "description": "Shows the average rating of this rating. Ratings go from *1* (worst) to *5* (best)."
          },
          "runspercent": {
            "type": "number",
            "description": "Runs percentage"
          },
          "approxTime": {
            "type": "number",
            "description": "Approximate time"
          }
        },
        "required": [
          "runs",
          "comments"
        ]
      },
      "GetRunbookReferenceDto": {
        "type": "object",
        "properties": {
          "runbookId": {
            "type": "string",
            "description": "The ID of the runbook.",
            "example": "ee4dc9a1-13a6-40df-a38b-1e286099111c"
          },
          "runbookVersion": {
            "type": "number",
            "description": "The version of the runbook being referenced.",
            "example": 3
          },
          "stepNumber": {
            "type": "number",
            "description": "The step number in the runbook where this reference occurs.",
            "example": 2
          }
        },
        "required": [
          "runbookId",
          "runbookVersion",
          "stepNumber"
        ]
      },
      "GetRunbookDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the runbook",
            "example": "Generic runbook example"
          },
          "description": {
            "type": "string",
            "description": "The description of the runbook",
            "example": "A generic example for a runbook."
          },
          "steps": {
            "type": "array",
            "description": "The steps of the runbook"
          },
          "parameters": {
            "description": "Parameters for the runbook",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookParameter"
            }
          },
          "tags": {
            "description": "Tags for the runbook",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "stats": {
            "description": "Statistics for the runbook",
            "allOf": [
              {
                "$ref": "#/components/schemas/RunbookStatistics"
              }
            ]
          },
          "contextStats": {
            "description": "Context statistics for the runbook",
            "allOf": [
              {
                "$ref": "#/components/schemas/RunbookStatistics"
              }
            ]
          },
          "references": {
            "description": "References to other runbooks that reference this runbook",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetRunbookReferenceDto"
            }
          },
          "readOnly": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string"
              },
              "_createdAt": {
                "type": "string"
              },
              "_modifiedAt": {
                "type": "string"
              },
              "_createdBy": {
                "type": "string"
              },
              "_modifiedBy": {
                "type": "string"
              },
              "_type": {
                "type": "object"
              },
              "_version": {
                "type": "number"
              },
              "_runbookId": {
                "type": "string"
              },
              "_tenantId": {
                "type": "string"
              },
              "_state": {
                "type": "object"
              },
              "_canBeAutomated": {
                "type": "boolean"
              },
              "_isLatest": {
                "type": "boolean"
              }
            },
            "required": [
              "_id"
            ]
          },
          "_createdAt": {
            "type": "string",
            "description": "Creation timestamp"
          },
          "_modifiedAt": {
            "type": "string",
            "description": "Last modification timestamp"
          },
          "_createdBy": {
            "type": "string",
            "description": "Creator user ID"
          },
          "_modifiedBy": {
            "type": "string",
            "description": "Last modifier user ID"
          },
          "_type": {
            "type": "string",
            "description": "Document type"
          },
          "_version": {
            "type": "number",
            "description": "Version number"
          },
          "runbookId": {
            "type": "string",
            "description": "Runbook ID"
          },
          "_id": {
            "type": "string",
            "description": "The internal database ID of the runbook"
          },
          "_tenantId": {
            "type": "string",
            "description": "Tenant ID"
          },
          "_state": {
            "type": "string",
            "description": "State of the runbook",
            "enum": [
              "draft",
              "pending",
              "rejected",
              "approved"
            ]
          },
          "_canBeAutomated": {
            "type": "boolean",
            "description": "Whether the runbook can be automated"
          },
          "_isLatest": {
            "type": "boolean",
            "description": "Whether this is the latest version"
          },
          "draft": {
            "type": "string",
            "description": "The draft status derived from _state",
            "example": "false"
          },
          "context": {
            "type": "string",
            "description": "The context scope for the statistics"
          }
        },
        "required": [
          "name",
          "description",
          "steps"
        ]
      },
      "BranchingDto": {
        "type": "object",
        "properties": {
          "condition": {
            "type": "string",
            "description": "Condition statement for branching"
          },
          "target": {
            "type": "number",
            "description": "Target step number (-1 for end)"
          }
        },
        "required": [
          "condition",
          "target"
        ]
      },
      "StepMappingDto": {
        "type": "object",
        "properties": {
          "automationParameterName": {
            "type": "string",
            "description": "Automation parameter name"
          },
          "nestedRunbookParameterName": {
            "type": "string",
            "description": "Nested runbook parameter name"
          },
          "parameterMappingType": {
            "enum": [
              "parameter",
              "fixed",
              "useDefaultFromAutomation",
              "useDefaultFromNestedRunbook",
              "automationOutput",
              "userName"
            ],
            "type": "string",
            "description": "Parameter mapping type"
          },
          "parameterValue": {
            "description": "Parameter value",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              },
              {
                "type": "array",
                "items": {}
              }
            ]
          }
        },
        "required": [
          "parameterMappingType"
        ]
      },
      "RunbookStepDto": {
        "type": "object",
        "properties": {
          "number": {
            "type": "number",
            "minimum": 1,
            "description": "Step number (must start at 1 and be consecutive)"
          },
          "title": {
            "type": "string",
            "description": "Step title"
          },
          "type": {
            "enum": [
              "manual",
              "runbook",
              "automation"
            ],
            "type": "string",
            "description": "Step type"
          },
          "description": {
            "type": "string",
            "description": "Step description (for manual steps)"
          },
          "runbookId": {
            "type": "string",
            "description": "Runbook ID (for runbook steps)"
          },
          "runbookVersion": {
            "type": "number",
            "description": "Runbook version (for runbook steps)"
          },
          "automationId": {
            "type": "string",
            "description": "Automation ID (for automation steps)"
          },
          "branching": {
            "description": "Conditional branching definitions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BranchingDto"
            }
          },
          "mappings": {
            "description": "Parameter mappings for manual/runbook/automation steps",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StepMappingDto"
            }
          }
        },
        "required": [
          "number"
        ]
      },
      "ApprovalDto": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "submit"
            ],
            "description": "Approval action (only \"submit\" allowed for creation)"
          },
          "comment": {
            "type": "string",
            "description": "Comment (ignored on creation)"
          },
          "email": {
            "type": "string",
            "description": "Approver email address"
          }
        },
        "required": [
          "action",
          "email"
        ]
      },
      "ParameterItemsDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of array items",
            "enum": [
              "string",
              "integer",
              "boolean"
            ]
          },
          "enum": {
            "type": "array",
            "description": "Restrict allowed values",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "enumLabels": {
            "type": "array",
            "description": "Descriptive labels for enum values",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RunbookParameterDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Parameter name (mandatory)"
          },
          "description": {
            "type": "string",
            "description": "Parameter description"
          },
          "default": {
            "type": "object",
            "description": "Default value"
          },
          "type": {
            "enum": [
              "string",
              "integer",
              "boolean",
              "array"
            ],
            "type": "string",
            "description": "Parameter type",
            "default": "string"
          },
          "enum": {
            "type": "array",
            "description": "Restrict allowed values",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "enumLabels": {
            "type": "array",
            "description": "Descriptive labels for enum values",
            "items": {
              "type": "string"
            }
          },
          "minLength": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum string length"
          },
          "maxLength": {
            "type": "number",
            "minimum": 0,
            "description": "Maximum string length"
          },
          "minimum": {
            "type": "number",
            "description": "Minimum integer value"
          },
          "maximum": {
            "type": "number",
            "description": "Maximum integer value"
          },
          "minItems": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum array items"
          },
          "maxItems": {
            "type": "number",
            "minimum": 0,
            "description": "Maximum array items"
          },
          "items": {
            "description": "Array item definition",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParameterItemsDto"
              }
            ]
          },
          "format": {
            "enum": [
              "password",
              "multiline"
            ],
            "type": "string",
            "description": "Parameter format (password, multiline)"
          }
        },
        "required": [
          "name"
        ]
      },
      "CreateRunbookDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "description": "Runbook name (mandatory, max 200 characters)"
          },
          "exampleName": {
            "type": "string",
            "description": "Example name (if set, runbook is treated as example)"
          },
          "description": {
            "type": "string",
            "description": "Runbook description"
          },
          "tags": {
            "type": "array",
            "maxLength": 30,
            "description": "Tags (array of strings, max 30 chars each)",
            "items": {
              "type": "string"
            }
          },
          "steps": {
            "description": "Runbook steps (mandatory)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookStepDto"
            }
          },
          "approval": {
            "description": "Approval configuration",
            "allOf": [
              {
                "$ref": "#/components/schemas/ApprovalDto"
              }
            ]
          },
          "parameters": {
            "description": "Runbook parameters",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookParameterDto"
            }
          },
          "automations": {
            "type": "object",
            "description": "Previously exported runbooks may contain automation definitions"
          },
          "_runbookId": {
            "type": "string",
            "description": "Previously exported runbooks may try to set their runbook id"
          },
          "draft": {
            "type": "boolean",
            "description": "If true, the runbook will be saved as a draft and not published. If false, the runbook will be published directly. Defaults to publishing directly.",
            "default": false
          }
        },
        "required": [
          "name",
          "steps"
        ]
      },
      "RunbookStatsResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the runbook",
            "example": "Generic runbook example"
          },
          "_id": {
            "type": "string",
            "description": "The internal database ID of the runbook",
            "example": "507f1f77bcf86cd799439011"
          },
          "runbookId": {
            "type": "string",
            "description": "The id of the runbook",
            "example": "ee4dc9a1-13a6-40df-a38b-1e286099111c"
          },
          "context": {
            "type": "string",
            "description": "The context scope for the statistics",
            "example": "incident-123"
          },
          "stats": {
            "description": "Runbook execution statistics",
            "allOf": [
              {
                "$ref": "#/components/schemas/RunbookStatistics"
              }
            ]
          }
        },
        "required": [
          "name",
          "runbookId"
        ]
      },
      "UpdateRunbookDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "description": "Runbook name (mandatory, max 200 characters)"
          },
          "exampleName": {
            "type": "string",
            "description": "Example name (if set, runbook is treated as example)"
          },
          "description": {
            "type": "string",
            "description": "Runbook description"
          },
          "tags": {
            "type": "array",
            "maxLength": 30,
            "description": "Tags (array of strings, max 30 chars each)",
            "items": {
              "type": "string"
            }
          },
          "steps": {
            "description": "Runbook steps (mandatory)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookStepDto"
            }
          },
          "approval": {
            "description": "Approval configuration",
            "allOf": [
              {
                "$ref": "#/components/schemas/ApprovalDto"
              }
            ]
          },
          "parameters": {
            "description": "Runbook parameters",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookParameterDto"
            }
          },
          "automations": {
            "type": "object",
            "description": "Previously exported runbooks may contain automation definitions"
          },
          "_runbookId": {
            "type": "string",
            "description": "Previously exported runbooks may try to set their runbook id"
          },
          "draft": {
            "type": "boolean",
            "description": "If true, the runbook will be saved as a draft and not published. If false, the runbook will be published directly. Defaults to publishing directly.",
            "default": false
          }
        }
      },
      "ExecutionParameterDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The name of the runbook parameter.",
            "example": "hostname"
          },
          "value": {
            "type": "string",
            "description": "The value of the runbook parameter for this runbook execution.",
            "example": "server01.example.com"
          }
        },
        "required": [
          "name"
        ]
      },
      "ExecuteRunbook": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "description": "Specify the version number to execute. Leaving this option empty or specifying the keyword \"latest\", will execute the latest published/approved version of this runbook"
          },
          "parameters": {
            "description": "Define the values of the parameters for this runbook execution. Each parameter must have a name (required) and can optionally have a value.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionParameterDto"
            }
          },
          "context": {
            "type": "string",
            "description": "Execute this runbook in a specific context. This context can later be used for more fine-grained analysis of runbook execution and tie it to specific other elements like Alerts or Stories in AIManager. Calculating statistics for a specific runbook and context is also possible."
          }
        }
      },
      "RunbookInstanceParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Parameter name"
          },
          "value": {
            "type": "string",
            "description": "Parameter value"
          }
        }
      },
      "HistoryItem": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "description": "Action performed",
            "enum": [
              "complete",
              "back"
            ]
          },
          "step": {
            "type": "number",
            "description": "Step number"
          },
          "processedAt": {
            "type": "number",
            "description": "Timestamp when processed"
          },
          "processedBy": {
            "type": "string",
            "description": "User who processed this step"
          },
          "parameters": {
            "type": "object",
            "description": "Parameters for this history item"
          }
        },
        "required": [
          "action",
          "step"
        ]
      },
      "GetRunbookExecutionDto": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "Database document ID"
          },
          "_rev": {
            "type": "string",
            "description": "Database document revision"
          },
          "_type": {
            "type": "string",
            "description": "Type of the document, in this case runbookInstance"
          },
          "_dataModel": {
            "type": "number",
            "description": "Version of the data model"
          },
          "_runbookId": {
            "type": "string",
            "description": "ID of executed runbook"
          },
          "_runbookVersion": {
            "type": "number",
            "description": "Version of executed runbook"
          },
          "_runbookName": {
            "type": "string",
            "description": "Name of executed runbook"
          },
          "_context": {
            "type": "string",
            "description": "Context for this runbook instance"
          },
          "_createdAt": {
            "type": "number",
            "description": "Timestamp when the runbook instance was created"
          },
          "_createdBy": {
            "type": "string",
            "description": "User ID which created this runbook instance"
          },
          "_modifiedAt": {
            "type": "number",
            "description": "Timestamp when the runbook instance was last changed"
          },
          "_modifiedBy": {
            "type": "string",
            "description": "User ID which last changed this runbook instance"
          },
          "_triggeredAutomatically": {
            "type": "boolean",
            "description": "Signals if this instance has been triggered automatically"
          },
          "_automationErrors": {
            "type": "string",
            "description": "For automated runs, error messages of executed automations will be written here"
          },
          "automationInformation": {
            "type": "object",
            "description": "Object with step number as key and automation details inside an object"
          },
          "parameters": {
            "description": "Parameters for the runbook instance",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunbookInstanceParameter"
            }
          },
          "history": {
            "description": "Array with the history of changes to this runbook instance",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoryItem"
            }
          },
          "status": {
            "type": "string",
            "description": "Status of the runbook execution",
            "enum": [
              "in progress",
              "success",
              "failure",
              "paused",
              "have errors",
              "wrong runbook",
              "resolved before end",
              "not needed",
              "other"
            ]
          },
          "rating": {
            "type": "number",
            "description": "The rating of the runbook by the user",
            "minimum": 1,
            "maximum": 5
          },
          "comment": {
            "type": "string",
            "description": "A comment on the runbook by the user"
          },
          "note": {
            "type": "string",
            "description": "Notes of the operator during execution"
          },
          "runbook": {
            "type": "object",
            "description": "Complete runbook data (when data=runbook or data=full)"
          },
          "automation": {
            "type": "object",
            "description": "Automation data (when data=automation or data=full)"
          }
        }
      },
      "ManualRunbookExecution": {
        "type": "object",
        "properties": {
          "version": {
            "type": "number",
            "description": "Version to execute."
          },
          "context": {
            "type": "string",
            "description": "Specify the context this runbook is executed in."
          },
          "updateTimeline": {
            "type": "boolean",
            "description": "Specify whether this instance should update the alert/story timeline."
          },
          "parameters": {
            "description": "Define the values of the parameters for this runbook execution. Each parameter must have a name (required) and can optionally have a value.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionParameterDto"
            }
          }
        }
      },
      "UpdateExecutionParameterDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The name of the runbook parameter.",
            "example": "hostname"
          },
          "value": {
            "type": "object",
            "description": "The value of the runbook parameter for this runbook execution.",
            "example": "server01.example.com"
          }
        },
        "required": [
          "name"
        ]
      },
      "AutomationParameterMapping": {
        "type": "object",
        "properties": {
          "automationParameterName": {
            "type": "string",
            "description": "Runbook Automation Parameter name",
            "example": "hostname"
          },
          "parameterMappingType": {
            "type": "string",
            "description": "Runbook Automation Parameter mapping type",
            "enum": [
              "parameter",
              "fixed",
              "useDefaultFromAutomation",
              "automationOutput",
              "userName"
            ],
            "example": "parameter"
          },
          "parameterValue": {
            "type": "object",
            "description": "The value of the parameter mapping",
            "example": "server01.example.com"
          }
        },
        "required": [
          "automationParameterName",
          "parameterMappingType"
        ]
      },
      "AutomationMappingDto": {
        "type": "object",
        "properties": {
          "mappingId": {
            "type": "string",
            "description": "Mapping ID"
          },
          "parameterMappings": {
            "description": "Runbook parameter Mappings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationParameterMapping"
            }
          }
        }
      },
      "AutomationResultDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status of the automation execution",
            "enum": [
              "successful",
              "unsuccessful",
              "failed",
              "executing",
              "unknown"
            ]
          },
          "startTime": {
            "type": "string",
            "description": "Start time of the automation"
          },
          "output": {
            "type": "string",
            "description": "Output from the automation"
          },
          "data": {
            "type": "string",
            "description": "Data from the automation"
          },
          "returnCode": {
            "type": "number",
            "description": "Return code from the automation"
          },
          "executionTime": {
            "type": "number",
            "description": "Execution time in milliseconds"
          }
        }
      },
      "AutomationInformationDto": {
        "type": "object",
        "properties": {
          "automationId": {
            "type": "string",
            "description": "ID of the automation"
          },
          "automationInstanceId": {
            "type": "string",
            "description": "ID of the automation instance"
          },
          "parameterMappings": {
            "description": "Parameter mappings for the automation",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationMappingDto"
            }
          },
          "result": {
            "description": "Result of the automation execution",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutomationResultDto"
              }
            ]
          }
        },
        "required": [
          "automationId",
          "automationInstanceId"
        ]
      },
      "UpdateRunbookExecutionDto": {
        "type": "object",
        "properties": {
          "parameters": {
            "description": "Redefine the runbook parameters for this runbook execution. Array of name/value objects.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateExecutionParameterDto"
            }
          },
          "completeStep": {
            "type": "boolean",
            "description": "If set to true, the runbook will advance by one step. Cannot be combined with previousStep or goToStep."
          },
          "previousStep": {
            "type": "boolean",
            "description": "If set to true, the runbook will go back one step. Cannot be combined with completeStep or goToStep. Cannot be used if on the first step."
          },
          "goToStep": {
            "type": "number",
            "description": "Set the current active step to the specified number. Cannot be combined with completeStep or previousStep. Specify the number of runbook steps + 1 to go to the end."
          },
          "pause": {
            "type": "boolean",
            "description": "Pause this runbook instance."
          },
          "resume": {
            "type": "boolean",
            "description": "Resume this runbook instance."
          },
          "status": {
            "type": "string",
            "description": "Terminates the runbook with the provided status. Must be one of the allowed values. The last five values indicate cancellation.",
            "enum": [
              "success",
              "failure",
              "have errors",
              "wrong runbook",
              "resolved before end",
              "not needed",
              "other"
            ]
          },
          "note": {
            "type": "string",
            "description": "Set a personal note attached to this runbook execution. Can only be set when the last step has been executed."
          },
          "comment": {
            "type": "string",
            "description": "Provide a comment upon runbook completion. May only be set if status is also set."
          },
          "rating": {
            "type": "number",
            "minimum": 1,
            "maximum": 5,
            "description": "Provide a rating between 1-5 upon runbook completion. May only be set if status is also set."
          },
          "automationInformation": {
            "description": "Passes information about automations executed within the scope of this runbook instance.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutomationInformationDto"
              }
            ]
          },
          "automationErrors": {
            "type": "string",
            "description": "Reserved keyword for automated runbook execution. Do not specify this manually. May only be set if the type of execution is automated."
          }
        }
      },
      "ConnectionDto": {
        "type": "object",
        "properties": {
          "connectionConfig": {
            "type": "object",
            "description": "Connection configuration",
            "additionalProperties": {
              "type": "object"
            }
          },
          "connectionType": {
            "type": "string",
            "description": "Type of the connection",
            "example": "ansible"
          },
          "connectorUID": {
            "type": "string",
            "description": "UID of the connector",
            "example": "abc-123"
          },
          "deploymentType": {
            "type": "string",
            "description": "Deployment type of the connection",
            "example": "local"
          },
          "displayName": {
            "type": "string",
            "description": "Display name of the connection",
            "example": "My Ansible Connection"
          },
          "name": {
            "type": "string",
            "description": "Name of the connection",
            "example": "my-ansible-connection"
          },
          "status": {
            "type": "string",
            "description": "Status phase of the connection",
            "example": "Running"
          },
          "statusDetails": {
            "type": "object",
            "description": "Status details of the connection",
            "additionalProperties": {
              "type": "object"
            }
          }
        }
      },
      "ConnectionsListResponseDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code",
            "format": "int64",
            "example": 200
          },
          "data": {
            "description": "Array of connections",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionDto"
            }
          }
        },
        "required": [
          "code",
          "data"
        ]
      },
      "CreateConnectionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the connection",
            "example": "testingnetcool"
          },
          "displayName": {
            "type": "string",
            "description": "Display name of the connection",
            "example": "testingnetcool"
          },
          "deploymentType": {
            "type": "string",
            "description": "DeploymentType for the connection",
            "example": "local"
          },
          "connectorState": {
            "type": "string",
            "description": "Connector state (enabled/disabled)",
            "example": "disabled"
          },
          "connectionConfig": {
            "type": "object",
            "description": "ConnectionConfig json containing connection-specific configuration",
            "example": {
              "backup_objectserver": {
                "api_port": 4200
              },
              "collectAlerts": true,
              "filter": "Severity >= 3",
              "mapping": "(\n  $isIPAddr := function($i){ $contains($i,/^[0-9]+.[0-9]+.[0-9]+.[0-9]+$/)};...",
              "password": "testing",
              "primary_objectserver": {
                "api_port": 5432,
                "url": "example.com"
              },
              "tls": false,
              "username": "root2"
            }
          }
        },
        "required": [
          "name",
          "deploymentType",
          "connectionConfig"
        ]
      },
      "ConnectionCreationSuccessResponseDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Detailed message",
            "example": "Connection created successfully"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code 201 - Created",
            "example": 201,
            "format": "int64",
            "minimum": 201,
            "maximum": 201
          }
        },
        "required": [
          "message",
          "statusCode"
        ]
      },
      "ConnectionSuccessResponseDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Detailed message",
            "example": "Connection for the given type is retrieved successfully."
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code 200 - OK",
            "example": 200,
            "format": "int64",
            "minimum": 200,
            "maximum": 200
          }
        },
        "required": [
          "message",
          "statusCode"
        ]
      },
      "ConnectionDeleteResponseDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Detailed message",
            "example": "The connection is being terminated. The deletion process has been accepted and is in progress."
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code 202 - Accepted",
            "example": 202,
            "format": "int64",
            "minimum": 202,
            "maximum": 202
          }
        },
        "required": [
          "message",
          "statusCode"
        ]
      },
      "TestConnectionDto": {
        "type": "object",
        "properties": {
          "connection_config": {
            "type": "object"
          }
        },
        "required": [
          "connection_config"
        ]
      },
      "UpdateConnectionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the connection",
            "example": "testingnetcool"
          },
          "displayName": {
            "type": "string",
            "description": "Display name of the connection",
            "example": "testingnetcool"
          },
          "deploymentType": {
            "type": "string",
            "description": "DeploymentType for the connection",
            "example": "local"
          },
          "connectorState": {
            "type": "string",
            "description": "Connector state (enabled/disabled)",
            "example": "disabled"
          },
          "connectionConfig": {
            "type": "object",
            "description": "ConnectionConfig json containing connection-specific configuration",
            "example": {
              "backup_objectserver": {
                "api_port": 4200
              },
              "collectAlerts": true,
              "filter": "Severity >= 3",
              "mapping": "(\n  $isIPAddr := function($i){ $contains($i,/^[0-9]+.[0-9]+.[0-9]+.[0-9]+$/)};...",
              "password": "testing",
              "primary_objectserver": {
                "api_port": 5432,
                "url": "example.com"
              },
              "tls": false,
              "username": "root2"
            }
          },
          "connectionType": {
            "type": "string",
            "description": "Type of the connection"
          }
        },
        "required": [
          "name",
          "deploymentType",
          "connectionConfig",
          "connectionType"
        ]
      },
      "TestExistingConnectionDto": {
        "type": "object",
        "properties": {}
      },
      "Preference": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "A key under which the value of the preference is stored",
            "example": "alerts-page-preference-object"
          }
        }
      },
      "UpdatePreferenceValueDto": {
        "type": "object",
        "properties": {
          "value": {
            "type": "object",
            "description": "The preference value object containing key-value pairs for the preference settings",
            "additionalProperties": true,
            "example": {
              "useRowColoring": true,
              "fontSize": 16
            }
          }
        },
        "required": [
          "value"
        ]
      },
      "PrecheckVersionPerRunDto": {
        "type": "object",
        "properties": {
          "prRun": {
            "type": "string",
            "description": "Precheck Version per precheck run"
          },
          "prVersion": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "prRun",
          "prVersion"
        ]
      },
      "ModelVersionPerRunDto": {
        "type": "object",
        "properties": {
          "trRun": {
            "type": "string",
            "description": "Training Model Version per training run"
          },
          "trModelVersion": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "trRun",
          "trModelVersion"
        ]
      },
      "PrVersionPerTrainingRunDto": {
        "type": "object",
        "properties": {
          "trRun": {
            "type": "string",
            "description": "Precheck Version per training run"
          },
          "prVersion": {
            "type": "string"
          },
          "prRunVersion": {
            "type": "string"
          }
        },
        "required": [
          "trRun",
          "prVersion",
          "prRunVersion"
        ]
      },
      "TrainingScheduleDto": {
        "type": "object",
        "properties": {
          "frequency": {
            "enum": [
              "manual",
              "scheduled"
            ],
            "type": "string",
            "description": "How often should this training be repeated. Not applicable if 'repeat' is 'once'."
          },
          "repeat": {
            "enum": [
              "daily",
              "weekly",
              "biweekly",
              "monthly"
            ],
            "type": "string",
            "description": "Whether or not this training should be repeated."
          },
          "atTimeHour": {
            "type": "number",
            "description": "What hour of the day training should happen"
          },
          "atTimeMinute": {
            "type": "number",
            "description": "What minute of the hour training should happen"
          },
          "timeRangeValidStart": {
            "type": "string",
            "description": "The starting range of when the training should start."
          },
          "timeRangeValidEnd": {
            "type": "string",
            "description": "The ending range of when the training should start."
          },
          "noEndDate": {
            "type": "boolean",
            "description": "Should training repeat forever?"
          },
          "nextScheduledRun": {
            "type": "string",
            "description": "The next time training is scheduled for. Only applicable if 'TrainingFrequency' is 'scheduled'."
          }
        }
      },
      "DataSetDto": {
        "type": "object",
        "properties": {
          "dataSetId": {
            "type": "string"
          },
          "startTimestamp": {
            "type": "string",
            "description": "Start timestamp of data to use"
          },
          "endTimestamp": {
            "type": "string",
            "description": "End timestamp of data to use"
          },
          "rollingDaysBack": {
            "type": "number",
            "description": "Option to train on the last x days of data"
          },
          "rollingWeeksBack": {
            "type": "number",
            "description": "Option to train on the last x weeks of data"
          },
          "connections": {
            "type": "string",
            "description": "A comma separated string of connections. Specific to Change Risk"
          },
          "exclusionStartTimestamps": {
            "description": "Exclude these time ranges from training. Specific to Log Anomaly",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exclusionEndTimestamps": {
            "description": "Exclude these time ranges from training. Specific to Log Anomaly",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "string",
            "description": "Custom note/comment about this data set"
          },
          "automaticDataSelection": {
            "type": "boolean",
            "description": "Sets whether the automatic data selection feature is enabled"
          }
        }
      },
      "PrecheckRunDto": {
        "type": "object",
        "properties": {
          "definitionName": {
            "type": "string"
          },
          "algorithmName": {
            "type": "string"
          },
          "runtimeName": {
            "type": "string"
          },
          "precheckRunVersion": {
            "type": "string"
          },
          "precheckId": {
            "type": "string"
          },
          "startTimestamp": {
            "type": "string",
            "description": "Start timestamp for precheck"
          },
          "endTimestamp": {
            "type": "string",
            "description": "End timestamp for precheck"
          }
        }
      },
      "AppStatusDto": {
        "type": "object",
        "properties": {
          "app": {
            "type": "string",
            "description": "App Status for Data Quality"
          },
          "status": {
            "enum": [
              "COMPLETED",
              "FAILED",
              "QUEUED",
              "RETRIEVING_DATA",
              "PREPARING_DATA",
              "CHECKING_DATA_QUALITY",
              "TRAINING",
              "EVALUATING_MODELS",
              "SAVING_MODELS"
            ],
            "type": "string"
          }
        },
        "required": [
          "app"
        ]
      },
      "PrecheckStatusDto": {
        "type": "object",
        "properties": {
          "definitionName": {
            "type": "string"
          },
          "precheckRunVersion": {
            "type": "string"
          },
          "precheckVersion": {
            "type": "string"
          },
          "currentStatus": {
            "type": "string"
          },
          "appStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppStatusDto"
            }
          },
          "workDone": {
            "type": "number"
          },
          "workTotal": {
            "type": "number"
          },
          "failureCause": {
            "type": "string"
          },
          "failureNextSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "precheckEndTimestamp": {
            "type": "string"
          }
        }
      },
      "PostcheckTrainingDetailsDto": {
        "type": "object",
        "properties": {
          "postcheckStartTimestamp": {
            "type": "string"
          },
          "postcheckEndTimestamp": {
            "type": "string"
          },
          "overallModelQuality": {
            "type": "string",
            "description": "Quality of the model, EXCELLENT/GOOD/SATISFACTORY"
          },
          "aiCoverage": {
            "type": "number",
            "description": "Percentage of AI coverage"
          }
        }
      },
      "TrainedModelDto": {
        "type": "object",
        "properties": {
          "trainingRunVersion": {
            "type": "string",
            "description": "The training run version"
          },
          "version": {
            "type": "string",
            "description": "The model version"
          },
          "modelStatus": {
            "type": "string",
            "description": "The status of training this model"
          },
          "latestPrecheckVersion": {
            "type": "string",
            "description": "The latest precheck run version"
          },
          "trainingStartTimestamp": {
            "type": "string",
            "description": "The time this training ended. It's the same as precheckStartTimestamp"
          },
          "trainingEndTimestamp": {
            "type": "string",
            "description": "The time this training ended. It's the same as postcheckEndTimestamp"
          },
          "postcheckTrainingDetails": {
            "description": "Details about this training after the last run",
            "allOf": [
              {
                "$ref": "#/components/schemas/PostcheckTrainingDetailsDto"
              }
            ]
          }
        }
      },
      "TrainingStatusDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "statusMessage": {
            "type": "string"
          },
          "startTime": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "workDone": {
            "type": "number"
          },
          "workTotal": {
            "type": "number"
          },
          "statusCode": {
            "type": "number"
          },
          "failureCause": {
            "type": "string"
          },
          "failureNextSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "automaticDataSelection": {
            "type": "boolean"
          }
        }
      },
      "TrainingDefinitionDto": {
        "type": "object",
        "properties": {
          "definitionName": {
            "type": "string",
            "description": "This is a unique name used to identify this training definition"
          },
          "algorithmName": {
            "type": "string",
            "description": "The name of the ai algorithm being run"
          },
          "precheckRunVersion": {
            "type": "string",
            "description": "The precheck run version"
          },
          "prVersionPerPrRun": {
            "description": "The precheck version for a precheck run version",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrecheckVersionPerRunDto"
            }
          },
          "precheckVersion": {
            "type": "string",
            "description": "The precheck version"
          },
          "trainingRunVersion": {
            "type": "string",
            "description": "The training run version"
          },
          "trainModelPerTrainRun": {
            "description": "The model version for a training run version",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelVersionPerRunDto"
            }
          },
          "prVersionPerTrainRun": {
            "description": "The precheck version for a training run version",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrVersionPerTrainingRunDto"
            }
          },
          "version": {
            "type": "string",
            "description": "The model version. The first version is 'v1' and incremented from there."
          },
          "deployedVersion": {
            "type": "string",
            "description": "The latest version of the training model that was deployed. It is null if no model has ever been deployed."
          },
          "modelDeploymentDate": {
            "type": "string",
            "description": "When the model was deployed"
          },
          "dateCreated": {
            "type": "string",
            "description": "When the definition was created:"
          },
          "createdBy": {
            "type": "string",
            "description": "Optional. Who created this training definition?"
          },
          "trainingSchedule": {
            "description": "When do we want this training to run?",
            "allOf": [
              {
                "$ref": "#/components/schemas/TrainingScheduleDto"
              }
            ]
          },
          "promoteOption": {
            "enum": [
              "manual",
              "whenTrainingComplete",
              "lowRisk"
            ],
            "type": "string",
            "description": "Should the model be automatically or manually promoted after training"
          },
          "dataSets": {
            "description": "All associated data sets",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataSetDto"
            }
          },
          "precheckRuns": {
            "description": "Details about precheck run under this training definition",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrecheckRunDto"
            }
          },
          "precheckStatus": {
            "description": "Details about precheck status under this training definition",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrecheckStatusDto"
            }
          },
          "trainedModels": {
            "description": "Details about models trained under this training definition",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrainedModelDto"
            }
          },
          "lastTraining": {
            "type": "string",
            "description": "The last time this training definition was run"
          },
          "trainingStatuses": {
            "description": "List of the latest trainings",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrainingStatusDto"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the training definition"
          },
          "usedStatus": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "COMPLETED",
                "FAILED",
                "QUEUED",
                "RETRIEVING_DATA",
                "PREPARING_DATA",
                "CHECKING_DATA_QUALITY",
                "TRAINING",
                "EVALUATING_MODELS",
                "SAVING_MODELS"
              ]
            },
            "description": "List of the possible statuses this definition may encounter"
          },
          "precheckAutoRun": {
            "type": "boolean"
          },
          "enableSelectiveTraining": {
            "type": "boolean"
          },
          "enableLADGoldenSignal": {
            "type": "boolean"
          },
          "integrationGenAI": {
            "type": "string"
          },
          "enableGenAI": {
            "type": "boolean"
          }
        }
      },
      "TrainingScheduleInputDto": {
        "type": "object",
        "properties": {
          "frequency": {
            "enum": [
              "manual",
              "scheduled"
            ],
            "type": "string",
            "example": "scheduled"
          },
          "repeat": {
            "enum": [
              "daily",
              "weekly",
              "biweekly",
              "monthly"
            ],
            "type": "string",
            "example": "daily"
          },
          "atTimeHour": {
            "type": "number",
            "minimum": 0,
            "maximum": 23,
            "description": "What hour of the day training should happen"
          },
          "atTimeMinute": {
            "type": "number",
            "minimum": 0,
            "maximum": 59,
            "description": "What minute of the hour training should happen"
          },
          "timeRangeValidStart": {
            "type": "string",
            "description": "The starting range of when the training should start.",
            "example": "2026-03-01T00:00:00Z"
          },
          "timeRangeValidEnd": {
            "type": "string",
            "description": "The ending range of when the training should start.",
            "example": "2026-12-31T23:59:59Z"
          },
          "noEndDate": {
            "type": "boolean",
            "description": "Should training repeat forever?"
          }
        }
      },
      "CreateTrainingDefinitionDto": {
        "type": "object",
        "properties": {
          "definitionName": {
            "type": "string",
            "description": "This is a unique name used to identify this training definition",
            "example": "my-log-anomaly-training"
          },
          "algorithmName": {
            "type": "string",
            "description": "The name of the ai algorithm being run",
            "example": "log-anomaly-detection"
          },
          "createdBy": {
            "type": "string",
            "description": "Optional. Who created this training definition?",
            "example": "user@example.com"
          },
          "trainingSchedule": {
            "description": "When do we want this training to run?",
            "allOf": [
              {
                "$ref": "#/components/schemas/TrainingScheduleInputDto"
              }
            ]
          },
          "promoteOption": {
            "enum": [
              "manual",
              "whenTrainingComplete",
              "lowRisk"
            ],
            "type": "string",
            "description": "Should the model be automatically or manually promoted after training",
            "example": "manual"
          },
          "dataSetIds": {
            "description": "Array of dataset IDs to use for training",
            "example": [
              "dataset-123",
              "dataset-456"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the training definition",
            "example": "Daily automated training for log anomaly detection"
          },
          "enableSelectiveTraining": {
            "type": "boolean"
          },
          "enableLADGoldenSignal": {
            "type": "boolean"
          },
          "integrationGenAI": {
            "type": "string",
            "example": "watsonx-assistant"
          },
          "enableGenAI": {
            "type": "boolean"
          },
          "filterId": {
            "type": "string",
            "example": "filter-789"
          }
        },
        "required": [
          "definitionName",
          "algorithmName",
          "trainingSchedule",
          "promoteOption"
        ]
      },
      "UpdateTrainingDefinitionDto": {
        "type": "object",
        "properties": {
          "trainingSchedule": {
            "description": "When do we want this training to run?",
            "allOf": [
              {
                "$ref": "#/components/schemas/TrainingScheduleInputDto"
              }
            ]
          },
          "promoteOption": {
            "enum": [
              "manual",
              "whenTrainingComplete",
              "lowRisk"
            ],
            "type": "string",
            "description": "Should the model be automatically or manually promoted after training",
            "example": "manual"
          },
          "dataSetIds": {
            "description": "Array of dataset IDs to use for training",
            "example": [
              "dataset-123",
              "dataset-456"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the training definition",
            "example": "Daily automated training for log anomaly detection"
          },
          "enableSelectiveTraining": {
            "type": "boolean"
          },
          "enableLADGoldenSignal": {
            "type": "boolean"
          },
          "integrationGenAI": {
            "type": "string",
            "example": "watsonx-assistant"
          },
          "enableGenAI": {
            "type": "boolean"
          },
          "filterId": {
            "type": "string",
            "example": "filter-789"
          }
        }
      },
      "TopologyConfigRuleDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the rule",
            "example": "sevoneHostTokens"
          },
          "keyIndexName": {
            "type": "string",
            "description": "Key index name",
            "example": "sevoneHostTokens"
          },
          "ruleType": {
            "type": "string",
            "description": "Type of rule",
            "example": "matchTokensRule"
          },
          "entityTypes": {
            "description": "Entity types this rule applies to",
            "example": [
              "server"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tokens": {
            "description": "Tokens used in the rule",
            "example": [
              "ipAddress",
              "name",
              "sysName"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ruleStatus": {
            "type": "string",
            "description": "Status of the rule",
            "example": "enabled"
          },
          "observers": {
            "description": "Observers this rule applies to",
            "example": [
              "sevone-observer"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "providers": {
            "description": "Providers this rule applies to",
            "example": [
              "*"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "databaseSource": {
            "type": "string",
            "description": "Database source",
            "example": "rules"
          }
        },
        "required": [
          "name",
          "keyIndexName",
          "ruleType",
          "tokens",
          "ruleStatus",
          "observers",
          "providers",
          "databaseSource"
        ]
      },
      "TopologyRestoreRequestDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Collection wrapper from the backup endpoint. Send the GET /backup response items back in this property.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TopologyConfigRuleDto"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "TopologyRestoreSuccessDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Success message",
            "example": "Configuration restored successfully"
          },
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code 200 - OK",
            "example": 200,
            "format": "int64",
            "minimum": 200,
            "maximum": 200
          }
        },
        "required": [
          "message",
          "statusCode"
        ]
      },
      "Trigger": {
        "type": "object",
        "properties": {
          "arguments": {
            "type": "object",
            "additionalProperties": {}
          },
          "entityId": {
            "type": "string",
            "description": "The id of the entity that this policy will be triggered on",
            "example": "event"
          },
          "triggerId": {
            "type": "string",
            "description": "The id of the trigger that, when fired, will cause this policy to be evaluated",
            "example": "pre-insert"
          }
        },
        "required": [
          "entityId",
          "triggerId"
        ]
      },
      "Action": {
        "type": "object",
        "properties": {
          "arguments": {
            "type": "object",
            "additionalProperties": {}
          },
          "actionId": {
            "type": "string",
            "description": "The ID of the action that should be executed",
            "example": "null"
          },
          "output": {
            "type": "string",
            "description": "The name of the variable that any output should be stored within. May also be expressed as an argument binding, allowing for a dynamic variable name.",
            "example": "null"
          }
        }
      },
      "PolicySpec": {
        "type": "object",
        "properties": {
          "constants": {
            "type": "object",
            "additionalProperties": {}
          },
          "trigger": {
            "$ref": "#/components/schemas/Trigger"
          },
          "triggers": {
            "description": "The set of triggers for a policy ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Trigger"
            }
          },
          "actions": {
            "description": "Defines a rule that specifies a set of actions to take when a trigger fires ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          }
        }
      },
      "PolicyMetadataCreatedBy": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of entity that created this policy",
            "enum": [
              "user",
              "system"
            ],
            "type": "string"
          },
          "id": {
            "type": "string",
            "description": "The unique id of the entity that created the policy. For a user this will be their user ID.",
            "example": "com.ibm.hdm.temporal-correlation@1.0.0"
          }
        }
      },
      "PolicyMetadataLastUpdatedBy": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of entity that created this policy",
            "enum": [
              "user",
              "system"
            ],
            "type": "string"
          },
          "id": {
            "type": "string",
            "description": "The unique id of the entity that last updated the policy. For a user this will be their user ID.",
            "example": "annette@example.com"
          },
          "changeDetails": {
            "type": "string",
            "description": "The purpose/description of the update request",
            "example": "null"
          }
        }
      },
      "PolicyMetadata": {
        "type": "object",
        "properties": {
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/PolicyMetadataCreatedBy"
          },
          "lastUpdatedBy": {
            "$ref": "#/components/schemas/PolicyMetadataLastUpdatedBy"
          },
          "name": {
            "type": "string",
            "description": "A human-readable name for this policy. Note that this may be updated and may not be unique (unlike the policy ID).",
            "example": "null"
          },
          "description": {
            "type": "string",
            "description": "Describes the purpose of the policy",
            "example": "null"
          },
          "creationTimestamp": {
            "type": "string",
            "description": "The time this policy was first created",
            "example": "null"
          },
          "lastUpdatedTimestamp": {
            "type": "string",
            "description": "The time this policy was last updated",
            "example": "null"
          }
        }
      },
      "PolicyStatusStatistics": {
        "type": "object",
        "properties": {
          "executionCount": {
            "type": "number",
            "description": "The number of times this policy has executed"
          },
          "firstExecuted": {
            "type": "string",
            "description": "The time this policy was first executed",
            "example": "null"
          },
          "lastExecuted": {
            "type": "string",
            "description": "The time this policy was last executed",
            "example": "null"
          }
        }
      },
      "PolicyStatus": {
        "type": "object",
        "properties": {
          "statistics": {
            "$ref": "#/components/schemas/PolicyStatusStatistics"
          }
        }
      },
      "CreatePolicyDto": {
        "type": "object",
        "properties": {
          "state": {
            "description": "The state of the policy, this is used to determine if the policy should be executed. COMMENT: Open question - can archived policies be recovered, or           do they have some level of eventual garbage collection            - What more fields do we need for TTL etc? ",
            "enum": [
              "draft",
              "enabled",
              "disabled",
              "archived"
            ],
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/PolicySpec"
          },
          "metadata": {
            "$ref": "#/components/schemas/PolicyMetadata"
          },
          "status": {
            "$ref": "#/components/schemas/PolicyStatus"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the policy. This will likely be a system-generated UUID or similar.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "revision": {
            "type": "string",
            "description": "An identifier which distinguishes this version of the policy. Changing the content of the policy will create a new policy revision. In future this can be used to support versioning / rollback.",
            "example": "null"
          },
          "hash": {
            "type": "string",
            "description": "A hash of the policy spec which uniquely identifies the trigger/condition set. This is used to identify identical policies. COMMENT: Tied somewhat to requirements for policy reconcilliation Assumption of this specific field is it is owned and calculated by the policy system. If analytics have a hash too that is owned by the analytics - that would be stored in a label. Primary purpose of this is to find duplicate / unique policies.",
            "example": "null"
          },
          "executionPriority": {
            "type": "number",
            "description": "The execution priority for this policy. Policies with a higher priority will be executed first. Policies with the same priority will be executed in an indeterminate order. COMMENT: What should the max priority be? COMMENT: Probably needs to be indexed for UI"
          }
        }
      },
      "Policy": {
        "type": "object",
        "properties": {
          "state": {
            "description": "The state of the policy, this is used to determine if the policy should be executed. COMMENT: Open question - can archived policies be recovered, or           do they have some level of eventual garbage collection            - What more fields do we need for TTL etc? ",
            "enum": [
              "draft",
              "enabled",
              "disabled",
              "archived"
            ],
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/PolicySpec"
          },
          "metadata": {
            "$ref": "#/components/schemas/PolicyMetadata"
          },
          "status": {
            "$ref": "#/components/schemas/PolicyStatus"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the policy. This will likely be a system-generated UUID or similar.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "revision": {
            "type": "string",
            "description": "An identifier which distinguishes this version of the policy. Changing the content of the policy will create a new policy revision. In future this can be used to support versioning / rollback.",
            "example": "null"
          },
          "hash": {
            "type": "string",
            "description": "A hash of the policy spec which uniquely identifies the trigger/condition set. This is used to identify identical policies. COMMENT: Tied somewhat to requirements for policy reconcilliation Assumption of this specific field is it is owned and calculated by the policy system. If analytics have a hash too that is owned by the analytics - that would be stored in a label. Primary purpose of this is to find duplicate / unique policies.",
            "example": "null"
          },
          "executionPriority": {
            "type": "number",
            "description": "The execution priority for this policy. Policies with a higher priority will be executed first. Policies with the same priority will be executed in an indeterminate order. COMMENT: What should the max priority be? COMMENT: Probably needs to be indexed for UI"
          }
        }
      },
      "GetPoliciesQueryFilterDto": {
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "description": "Filter by entity type",
            "example": "alert"
          },
          "policyName": {
            "type": "string",
            "description": "Prefix search on policy name",
            "example": "Example Policy Name"
          },
          "labels": {
            "description": "Array of label match criteria",
            "example": [
              {
                "match": {
                  "metadata.labels.ibm.com/is-default": "false"
                }
              }
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "lastUpdatedBy": {
            "type": "string",
            "description": "Filter by last updater ID",
            "example": "temporal-patterns-correlation"
          },
          "condition": {
            "type": "string",
            "description": "Prefix search on conditions",
            "example": "ASM Resource Deletion"
          },
          "type": {
            "type": "string",
            "description": "Creator type",
            "example": "system"
          },
          "paginationFrom": {
            "type": "number",
            "description": "Pagination offset",
            "example": 0
          },
          "paginationResponseSize": {
            "type": "number",
            "description": "Number of results to return",
            "example": 1000
          },
          "policyId": {
            "type": "string",
            "description": "Comma-separated policy IDs",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06,7da7d565-6546-11ec-8507-455c0654654v8"
          },
          "description": {
            "type": "string",
            "description": "Match phrase in description",
            "example": "This is a user defined policy"
          },
          "startTime": {
            "type": "string",
            "description": "Beginning UTC timestamp in ISO format",
            "example": "2021-12-07T19:58:18.033Z"
          },
          "endTime": {
            "type": "string",
            "description": "End UTC timestamp in ISO format",
            "example": "2021-12-07T20:58:18.033Z"
          },
          "startRunTime": {
            "type": "string",
            "description": "Beginning UTC timestamp in ISO format for last run",
            "example": "2021-12-07T19:58:18.033Z"
          },
          "endRunTime": {
            "type": "string",
            "description": "End UTC timestamp in ISO format for last run",
            "example": "2021-12-07T20:58:18.033Z"
          },
          "minExecPriority": {
            "type": "number",
            "description": "Lower inclusive limit for the range of execution priorities being searched",
            "example": 0
          },
          "maxExecPriority": {
            "type": "number",
            "description": "Upper inclusive limit for the range of execution priorities being searched",
            "example": 50
          },
          "searchAfter": {
            "type": "array",
            "description": "An array contains policy info based on sort parameters to find policies after this policy",
            "example": [
              120,
              "f242d2d0-8b7a-11ed-adae-e52275e3e472"
            ],
            "items": {
              "oneOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          "searchBehavior": {
            "enum": [
              "and",
              "or"
            ],
            "type": "string",
            "description": "Toggle and/or condition search",
            "example": "and"
          }
        }
      },
      "TGetAllPolicyIdsResponseModel": {
        "type": "object",
        "properties": {
          "items": {
            "example": [
              "948d6730-4a9a-11f1-a710-c9c90f5a7d01",
              "94ba1c80-4a9a-11f1-beee-8f6e65df84ee",
              "a80ea2b0-4a95-11f1-8dea-33c8af64f378"
            ],
            "description": "Collection of policy IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "ReplacePolicyDto": {
        "type": "object",
        "properties": {
          "state": {
            "description": "The state of the policy, this is used to determine if the policy should be executed. COMMENT: Open question - can archived policies be recovered, or           do they have some level of eventual garbage collection            - What more fields do we need for TTL etc? ",
            "enum": [
              "draft",
              "enabled",
              "disabled",
              "archived"
            ],
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/PolicySpec"
          },
          "metadata": {
            "$ref": "#/components/schemas/PolicyMetadata"
          },
          "status": {
            "$ref": "#/components/schemas/PolicyStatus"
          },
          "revision": {
            "type": "string",
            "description": "Policy revision required for full replacement. Fetch the policy first, then send back the current revision in the PUT body.",
            "example": "3-f2f4c6a6c2d1"
          },
          "id": {
            "type": "string",
            "description": "A unique, immutable id for the policy. This will likely be a system-generated UUID or similar.",
            "example": "1a2a6787-59ad-4acd-bd0d-46c1ddfd8e06"
          },
          "hash": {
            "type": "string",
            "description": "A hash of the policy spec which uniquely identifies the trigger/condition set. This is used to identify identical policies. COMMENT: Tied somewhat to requirements for policy reconcilliation Assumption of this specific field is it is owned and calculated by the policy system. If analytics have a hash too that is owned by the analytics - that would be stored in a label. Primary purpose of this is to find duplicate / unique policies.",
            "example": "null"
          },
          "executionPriority": {
            "type": "number",
            "description": "The execution priority for this policy. Policies with a higher priority will be executed first. Policies with the same priority will be executed in an indeterminate order. COMMENT: What should the max priority be? COMMENT: Probably needs to be indexed for UI"
          }
        },
        "required": [
          "revision"
        ]
      },
      "PolicyStatusResponseModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "60e7e0a0-2f0f-11f1-b203-2fc22466362e",
            "description": "The policy ID"
          },
          "executions": {
            "type": "number",
            "example": 4,
            "description": "The number of times this policy has executed"
          },
          "failures": {
            "type": "number",
            "example": 0,
            "description": "The number of times this policy has failed"
          },
          "lastRun": {
            "type": "number",
            "example": 1775205163844,
            "description": "The timestamp (in milliseconds) when this policy was last run"
          },
          "lastRaise": {
            "type": "number",
            "example": 1775205163844,
            "description": "The timestamp (in milliseconds) when this policy last raised an alert/action"
          },
          "raises": {
            "type": "number",
            "example": 4,
            "description": "The number of times this policy has raised an alert/action"
          },
          "lastFailure": {
            "type": "number",
            "example": 0,
            "description": "The timestamp (in milliseconds) when this policy last failed"
          },
          "executionState": {
            "type": "number",
            "example": 1,
            "description": "The current execution state of the policy (0=idle, 1=running, etc.)"
          }
        },
        "required": [
          "id",
          "executions",
          "failures",
          "lastRun",
          "lastRaise",
          "raises",
          "lastFailure",
          "executionState"
        ]
      },
      "PolicyTimelineEntryResponseModel": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "example": "2026-04-03T03:44:12.342Z",
            "description": "The timestamp when this timeline entry was created (UTC time)"
          },
          "type": {
            "type": "string",
            "example": "update",
            "description": "The type of timeline entry"
          },
          "comment": {
            "type": "string",
            "example": "Created",
            "description": "Comment describing the change"
          },
          "commentby": {
            "type": "string",
            "example": "system",
            "description": "User or system that made the change"
          }
        },
        "required": [
          "timestamp",
          "type",
          "comment",
          "commentby"
        ]
      },
      "CreatePolicyBatchesDto": {
        "type": "object",
        "properties": {
          "policies": {
            "description": "Array of policies to create",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Policy"
            }
          }
        },
        "required": [
          "policies"
        ]
      },
      "PolicyBatchesCreateResponseModel": {
        "type": "object",
        "properties": {
          "policyids": {
            "example": [
              "b4faf4f0-4a0a-11f1-bc9e-53fa3096c11a",
              "b4fd17d0-4a0a-11f1-bc9e-53fa3096c11a",
              "b4fe2940-4a0a-11f1-bc9e-53fa3096c11a",
              "b4feec90-4a0a-11f1-bc9e-53fa3096c11a"
            ],
            "description": "The ids of the policies created by the batch request",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "req_id": {
            "type": "string",
            "example": "b464f680-4a0a-11f1-8cd4-23d50b1fde7a",
            "description": "Request correlation id returned by the create policy batches request"
          }
        },
        "required": [
          "policyids",
          "req_id"
        ]
      },
      "MeteringResourceStatsResponseDTO": {
        "type": "object",
        "properties": {
          "tenant_id": {
            "type": "string",
            "description": "Tenant ID",
            "example": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
          },
          "start_time": {
            "type": "string",
            "description": "Start time of the aggregation period",
            "format": "date-time",
            "example": "2026-05-05T00:00:00.000Z"
          },
          "end_time": {
            "type": "string",
            "description": "End time of the aggregation period",
            "format": "date-time",
            "example": "2026-05-06T00:00:00.000Z"
          },
          "total_unique_resources": {
            "type": "number",
            "description": "Total number of unique resources (includes devices in error state)",
            "example": 129
          },
          "device_name_error_state_count": {
            "type": "number",
            "description": "Count of devices in error state",
            "example": 29
          }
        },
        "required": [
          "total_unique_resources"
        ]
      },
      "MeteringResourceDetails": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Resource name",
            "example": "front-end-svc.myapp.example.com"
          },
          "hostname": {
            "type": "string",
            "description": "Resource hostname (optional)",
            "example": "front-end-svc.myapp.example.com"
          },
          "type": {
            "type": "string",
            "description": "Resource type (optional)",
            "example": "host"
          },
          "sourceId": {
            "type": "string",
            "description": "Resource source ID (optional)",
            "example": "aHdaZVWFQXyTHKfdRVnBPQ"
          },
          "service": {
            "type": "string",
            "description": "Service name (optional)",
            "example": "front-end-svc.myapp.example.com"
          }
        }
      },
      "MeteringResourceDailyBreakdown": {
        "type": "object",
        "properties": {
          "day": {
            "type": "string",
            "description": "Day of the breakdown",
            "format": "date-time",
            "example": "2026-05-06T00:00:00.000Z"
          },
          "alert_count": {
            "type": "number",
            "description": "Alert count for this day",
            "example": 32
          }
        }
      },
      "MeteringResourceItem": {
        "type": "object",
        "properties": {
          "alert_count": {
            "type": "number",
            "description": "Total alert count for this resource",
            "example": 32
          },
          "is_device_name_error_state": {
            "type": "boolean",
            "description": "Whether the device name is in error state",
            "example": false
          },
          "resource": {
            "description": "Resource details",
            "allOf": [
              {
                "$ref": "#/components/schemas/MeteringResourceDetails"
              }
            ]
          },
          "daily_breakdown": {
            "description": "Daily breakdown of alert counts (only present when include_daily_breakdown=true)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeteringResourceDailyBreakdown"
            }
          }
        }
      },
      "MeteringResourcesListResponseDTO": {
        "type": "object",
        "properties": {
          "tenant_id": {
            "type": "string",
            "description": "Tenant ID",
            "example": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
          },
          "start_time": {
            "type": "string",
            "description": "Start time of the query period",
            "format": "date-time",
            "example": "2026-01-01T00:00:00.000Z"
          },
          "end_time": {
            "type": "string",
            "description": "End time of the query period",
            "format": "date-time",
            "example": "2026-05-06T00:00:00.000Z"
          },
          "page": {
            "type": "number",
            "description": "Current page number",
            "example": 1
          },
          "limit": {
            "type": "number",
            "description": "Number of items per page",
            "example": 20
          },
          "total_items": {
            "type": "number",
            "description": "Total number of items across all pages",
            "example": 129
          },
          "total_pages": {
            "type": "number",
            "description": "Total number of pages",
            "example": 7
          },
          "items": {
            "description": "Array of resource items",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeteringResourceItem"
            }
          }
        }
      },
      "MeteringAggregationJobSubmissionDTO": {
        "type": "object",
        "properties": {
          "start_date": {
            "format": "date-time",
            "type": "string",
            "description": "The start date and time for the resource metering period, in ISO 8601 format.",
            "default": "2026-05-14T14:10:26.509Z"
          },
          "end_date": {
            "format": "date-time",
            "type": "string",
            "description": "The end date and time for the resource metering period, in ISO 8601 format.",
            "default": "2026-05-15T14:10:26.509Z"
          },
          "job_type": {
            "type": "string",
            "description": "The type of metering job to create",
            "enum": [
              "resource-stats"
            ],
            "default": "resource-stats"
          }
        }
      },
      "MeteringAggregationJobSubmittedResponseDTO": {
        "type": "object",
        "properties": {
          "job_id": {
            "type": "string",
            "description": "The job id",
            "example": "124efb94-6cf0-46ad-bb75-0f8b5717404f"
          },
          "job_type": {
            "type": "string",
            "description": "The type of metering job",
            "enum": [
              "resource-stats"
            ],
            "example": "resource-stats"
          },
          "status": {
            "type": "string",
            "description": "The status of the job",
            "enum": [
              "RUNNING",
              "COMPLETE",
              "ERROR"
            ],
            "example": "RUNNING"
          }
        }
      },
      "MeteringAggregationJobResultData": {
        "type": "object",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of the aggregation period",
            "format": "date-time",
            "example": "2026-05-06T00:00:00.000Z"
          },
          "tenant_id": {
            "type": "string",
            "description": "Tenant ID",
            "example": "cfd95b7e-3bc7-4006-a4a8-a73a79c71255"
          },
          "start_time": {
            "type": "string",
            "description": "Start time of the aggregation period",
            "format": "date-time",
            "example": "2026-05-05T00:00:00.000Z"
          },
          "total_unique_resources": {
            "type": "number",
            "description": "Total number of unique resources (includes devices in error state)",
            "example": 128
          },
          "device_name_error_state_count": {
            "type": "number",
            "description": "Count of devices",
            "example": 29
          }
        },
        "required": [
          "total_unique_resources"
        ]
      },
      "MeteringAggregationJobResultResponseDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The operation ID",
            "example": "124efb94-6cf0-46ad-bb75-0f8b5717404f"
          },
          "status": {
            "type": "string",
            "description": "The status of the operation",
            "enum": [
              "RUNNING",
              "COMPLETE",
              "ERROR"
            ],
            "example": "COMPLETE"
          },
          "operation_type": {
            "type": "string",
            "description": "The type of operation",
            "example": "SUMMARY"
          },
          "created_at": {
            "type": "string",
            "description": "When the operation was created",
            "format": "date-time",
            "example": "2026-05-06T12:35:20.206Z"
          },
          "updated_at": {
            "type": "string",
            "description": "When the operation was last updated",
            "format": "date-time",
            "example": "2026-05-06T12:35:20.206Z"
          },
          "expires_at": {
            "type": "string",
            "description": "When the operation will expire",
            "format": "date-time",
            "example": "2026-05-07T12:35:20.206Z"
          },
          "completed_at": {
            "type": "string",
            "description": "When the operation was completed (only present when status is COMPLETED)",
            "format": "date-time",
            "example": "2026-05-06T12:35:30.022Z"
          },
          "result": {
            "description": "The result data (only present when status is COMPLETED)",
            "allOf": [
              {
                "$ref": "#/components/schemas/MeteringAggregationJobResultData"
              }
            ]
          }
        }
      },
      "MeteringAggregationJobStatusResponseDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The operation ID",
            "example": "124efb94-6cf0-46ad-bb75-0f8b5717404f"
          },
          "status": {
            "type": "string",
            "description": "The status of the operation",
            "enum": [
              "RUNNING",
              "COMPLETE",
              "ERROR"
            ],
            "example": "RUNNING"
          },
          "operation_type": {
            "type": "string",
            "description": "The type of operation",
            "example": "SUMMARY"
          },
          "created_at": {
            "type": "string",
            "description": "When the operation was created",
            "format": "date-time",
            "example": "2026-05-06T12:35:20.206Z"
          },
          "updated_at": {
            "type": "string",
            "description": "When the operation was last updated",
            "format": "date-time",
            "example": "2026-05-06T12:35:20.206Z"
          },
          "expires_at": {
            "type": "string",
            "description": "When the operation will expire",
            "format": "date-time",
            "example": "2026-05-07T12:35:20.206Z"
          }
        }
      }
    }
  }
}