{
    "swagger": "2.0",
    "info": {
        "description": "Swagger API for Penetration Testing Advanced General Intelligence PentAGI.",
        "title": "PentAGI Swagger API",
        "termsOfService": "http://swagger.io/terms/",
        "contact": {
            "name": "PentAGI Development Team",
            "url": "https://pentagi.com",
            "email": "team@pentagi.com"
        },
        "license": {
            "name": "MIT",
            "url": "https://opensource.org/license/mit"
        },
        "version": "1.0"
    },
    "basePath": "/api/v1",
    "paths": {
        "/agentlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agentlogs"
                ],
                "summary": "Retrieve agentlogs list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "agentlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.agentlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting agentlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting agentlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/anonymize/text": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Replace sensitive data patterns (credentials, keys, PII, etc.) in the provided text with safe placeholders.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Anonymize"
                ],
                "summary": "Anonymize text",
                "parameters": [
                    {
                        "description": "Text to anonymize",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/services.anonymizeTextRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "anonymized text returned successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.anonymizeTextResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request body",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "anonymize.call permission required",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "503": {
                        "description": "anonymizer is not configured",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/assistantlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Assistantlogs"
                ],
                "summary": "Retrieve assistantlogs list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "assistantlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.assistantlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting assistantlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting assistantlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/authorize": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Login user into OAuth2 external system via HTTP redirect",
                "parameters": [
                    {
                        "type": "string",
                        "default": "/",
                        "description": "URI to redirect user there after login",
                        "name": "return_uri",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "default": "google",
                        "description": "OAuth provider name (google, github, etc.)",
                        "name": "provider",
                        "in": "query"
                    }
                ],
                "responses": {
                    "307": {
                        "description": "redirect to SSO login page"
                    },
                    "400": {
                        "description": "invalid autorizarion query",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "authorize not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on autorizarion",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/login": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Login user into system",
                "parameters": [
                    {
                        "description": "Login form JSON data",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.Login"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "login successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "400": {
                        "description": "invalid login data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "invalid login or password",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "login not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "429": {
                        "description": "too many login attempts",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on login",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/login-callback": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Login user from external OAuth application",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Auth code from OAuth provider to exchange token",
                        "name": "code",
                        "in": "query"
                    }
                ],
                "responses": {
                    "303": {
                        "description": "redirect to registered return_uri path in the state"
                    },
                    "400": {
                        "description": "invalid login data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "invalid login or password",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "login not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on login",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Login user from external OAuth application",
                "parameters": [
                    {
                        "description": "Auth form JSON data",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.AuthCallback"
                        }
                    }
                ],
                "responses": {
                    "303": {
                        "description": "redirect to registered return_uri path in the state"
                    },
                    "400": {
                        "description": "invalid login data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "invalid login or password",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "login not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on login",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/logout": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Logout current user and end all of their sessions",
                "responses": {
                    "200": {
                        "description": "logout successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on ending the user's sessions",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/logout-callback": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Logout current user from external OAuth application",
                "responses": {
                    "303": {
                        "description": "logout successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on ending the user's sessions",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/containers/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Containers"
                ],
                "summary": "Retrieve containers list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "containers list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.containers"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting containers not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting containers",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Flows"
                ],
                "summary": "Retrieve flows list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flows list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.flows"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flows not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flows",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Flows"
                ],
                "summary": "Create new flow with custom functions",
                "parameters": [
                    {
                        "description": "flow model to create",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateFlow"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "flow created successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Flow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "creating flow not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on creating flow",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Flows"
                ],
                "summary": "Retrieve flow by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Flow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting flow not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Flows"
                ],
                "summary": "Patch flow",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "flow model to patch",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.PatchFlow"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow patched successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Flow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "patching flow not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on patching flow",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Flows"
                ],
                "summary": "Delete flow by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow deleted successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Flow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "deleting flow not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on deleting flow",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/agentlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Agentlogs"
                ],
                "summary": "Retrieve agentlogs list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "agentlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.agentlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting agentlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting agentlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/assistantlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Assistantlogs"
                ],
                "summary": "Retrieve assistantlogs list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "assistantlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.assistantlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting assistantlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting assistantlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/assistants/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Assistants"
                ],
                "summary": "Retrieve assistants list",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "assistants list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.assistants"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting assistants not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting assistants",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Assistants"
                ],
                "summary": "Create new assistant with custom functions",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id (use 0 to create a new flow together with the assistant)",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "assistant model to create",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateAssistant"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "assistant created successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.AssistantFlow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid assistant request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "creating assistant not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on creating assistant",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/assistants/{assistantID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Assistants"
                ],
                "summary": "Retrieve flow assistant by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "assistant id",
                        "name": "assistantID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow assistant received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Assistant"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting flow assistant not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow assistant not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow assistant",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Assistants"
                ],
                "summary": "Patch assistant",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "assistant id",
                        "name": "assistantID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "assistant model to patch",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.PatchAssistant"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "assistant patched successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.AssistantFlow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid assistant request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "patching assistant not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on patching assistant",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Assistants"
                ],
                "summary": "Delete assistant by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "assistant id",
                        "name": "assistantID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "assistant deleted successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.AssistantFlow"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "deleting assistant not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "assistant not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on deleting assistant",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/containers/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Containers"
                ],
                "summary": "Retrieve containers list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "containers list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.containers"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting containers not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting containers",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/containers/{containerID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Containers"
                ],
                "summary": "Retrieve container info by id and flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "container id",
                        "name": "containerID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "container info received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Container"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting container not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "container not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting container",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/files/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Retrieve flow files list",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow files list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowFiles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow files request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flow files not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow files",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Upload files to flow workspace",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "files to upload (multipart, field name: files or file)",
                        "name": "files",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow files uploaded successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowFiles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow files request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "uploading flow files not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "flow file already exists",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on uploading flow files",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Delete flow files or directories by cached paths",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "relative path in cache: uploads/, resources/, or container/ (may be combined with paths[])",
                        "name": "path",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "relative paths in cache (repeatable): uploads/, resources/, or container/",
                        "name": "paths[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow files deleted successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowFiles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow file request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "deleting flow file not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow file not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on deleting flow file",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/files/container": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Retrieve flow container directory files list",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "absolute path inside the running container; defaults to /work (may be combined with paths[])",
                        "name": "path",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "absolute paths inside the running container (repeatable)",
                        "name": "paths[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "container files list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ContainerFiles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow files request data or container not running",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flow container files not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow container files",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/files/download": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Single regular file: served as a direct attachment.\nSingle directory or multiple paths (any mix): packaged as a ZIP archive.",
                "produces": [
                    "application/octet-stream",
                    "application/zip",
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Download flow file(s) or directory by cached path(s)",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "relative path in cache: uploads/, resources/, or container/ (may be combined with paths[])",
                        "name": "path",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "relative paths in cache (repeatable)",
                        "name": "paths[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "file content, or ZIP archive for directories / multiple paths",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "400": {
                        "description": "invalid flow file request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "downloading flow file not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow file not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on downloading flow file",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/files/pull": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Pull files or directories from the running container into the local cache",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "pull request: path or paths are required",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.PullFlowFilesRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "container paths synced to local cache, sorted by cache path",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowFiles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid pull request or container not running",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "pulling flow files not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "cache entry already exists; set force=true to overwrite",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on pulling flow files",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/files/resources": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Copies one or more user resources (identified by ID) into flow-{id}-data/resources/.\nFiles already present in the flow are skipped unless force=true, in which case they are replaced.\nWhen the primary container for this flow is running, new or replaced files are pushed to /work/resources/ (best-effort), same as uploads.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Copy user resources into a flow",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "resource IDs and force flag",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.AddResourcesRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "resources copied successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowFiles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "file already exists and force=false",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/files/to-resources": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FlowFiles"
                ],
                "summary": "Promote flow file(s) or directory/directories to user resources",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "source(s), destination and force flag",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.AddResourceFromFlowRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "resources created or updated",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "source or flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "destination already exists and force=false",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/graph": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Flows"
                ],
                "summary": "Retrieve flow graph by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow graph received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowTasksSubtasks"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting flow graph not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow graph not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow graph",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/msglogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Msglogs"
                ],
                "summary": "Retrieve msglogs list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "msglogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.msglogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting msglogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting msglogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/screenshots/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Screenshots"
                ],
                "summary": "Retrieve screenshots list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "screenshots list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.screenshots"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting screenshots not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting screenshots",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/screenshots/{screenshotID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Screenshots"
                ],
                "summary": "Retrieve screenshot info by id and flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "screenshot id",
                        "name": "screenshotID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "screenshot info received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Screenshot"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting screenshot not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "screenshot not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting screenshot",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/screenshots/{screenshotID}/file": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "image/png",
                    "application/json"
                ],
                "tags": [
                    "Screenshots"
                ],
                "summary": "Retrieve screenshot file by id and flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "screenshot id",
                        "name": "screenshotID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "screenshot file",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "403": {
                        "description": "getting screenshot not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting screenshot",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/searchlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Searchlogs"
                ],
                "summary": "Retrieve searchlogs list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "searchlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.searchlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting searchlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting searchlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/subtasks/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Subtasks"
                ],
                "summary": "Retrieve flow subtasks list",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow subtasks list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.subtasks"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flow subtasks not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow subtasks",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/tasks/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tasks"
                ],
                "summary": "Retrieve flow tasks list",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow tasks list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.tasks"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flow tasks not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow tasks",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/tasks/{taskID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tasks"
                ],
                "summary": "Retrieve flow task by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "task id",
                        "name": "taskID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow task received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Task"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting flow task not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow task not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow task",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/tasks/{taskID}/graph": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tasks"
                ],
                "summary": "Retrieve flow task graph by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "task id",
                        "name": "taskID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow task graph received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowTasksSubtasks"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting flow task graph not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow task graph not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow task graph",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/tasks/{taskID}/subtasks/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Subtasks"
                ],
                "summary": "Retrieve flow task subtasks list",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "task id",
                        "name": "taskID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow task subtasks list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.subtasks"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flow task subtasks not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow subtasks",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/tasks/{taskID}/subtasks/{subtaskID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Subtasks"
                ],
                "summary": "Retrieve flow task subtask by id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "task id",
                        "name": "taskID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "subtask id",
                        "name": "subtaskID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow task subtask received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Subtask"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting flow task subtask not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow task subtask not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow task subtask",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/termlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Termlogs"
                ],
                "summary": "Retrieve termlogs list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "termlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.termlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting termlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting termlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/toolcalls/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Toolcalls"
                ],
                "summary": "Retrieve toolcalls list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "toolcalls list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.toolcalls"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting toolcalls not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting toolcalls",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/toolcalls/{toolcallID}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Toolcalls"
                ],
                "summary": "Retrieve toolcall info by id and flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "toolcall id",
                        "name": "toolcallID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "toolcall info received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Toolcall"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting toolcall not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "toolcall not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting toolcall",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/usage": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get comprehensive analytics for a single flow including all breakdowns",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Flows",
                    "Usage"
                ],
                "summary": "Retrieve analytics for specific flow",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "flow analytics received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.FlowUsageResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid flow id",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting flow analytics not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "flow not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting flow analytics",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/flows/{flowID}/vecstorelogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Vecstorelogs"
                ],
                "summary": "Retrieve vecstorelogs list by flow id",
                "parameters": [
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "flow id",
                        "name": "flowID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "vecstorelogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.vecstorelogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting vecstorelogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting vecstorelogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/graphql": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "GraphQL"
                ],
                "summary": "Perform graphql requests",
                "parameters": [
                    {
                        "description": "graphql request",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/graphql.RawParams"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "graphql response",
                        "schema": {
                            "$ref": "#/definitions/graphql.Response"
                        }
                    },
                    "400": {
                        "description": "invalid graphql request data",
                        "schema": {
                            "$ref": "#/definitions/graphql.Response"
                        }
                    },
                    "403": {
                        "description": "unauthorized",
                        "schema": {
                            "$ref": "#/definitions/graphql.Response"
                        }
                    },
                    "500": {
                        "description": "internal error on graphql request",
                        "schema": {
                            "$ref": "#/definitions/graphql.Response"
                        }
                    }
                }
            }
        },
        "/info": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Public"
                ],
                "summary": "Retrieve current user and system settings",
                "parameters": [
                    {
                        "type": "boolean",
                        "description": "boolean arg to refresh current cookie, use explicit false",
                        "name": "refresh_cookie",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "info received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.info"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting info not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting information about system and config",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "503": {
                        "description": "the session could not be checked right now",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/knowledge/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Knowledge"
                ],
                "summary": "List knowledge documents",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "description": "include document text in the response",
                        "name": "with_content",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.KnowledgeDocList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Knowledge"
                ],
                "summary": "Create knowledge document",
                "parameters": [
                    {
                        "description": "Create request",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateKnowledgeDocRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.KnowledgeDocEntry"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "503": {
                        "description": "embedding provider not configured",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/knowledge/search": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Knowledge"
                ],
                "summary": "Semantic search in knowledge base",
                "parameters": [
                    {
                        "description": "Search request",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.KnowledgeSearchRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.KnowledgeSearchResult"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "503": {
                        "description": "embedding provider not configured",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/knowledge/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Knowledge"
                ],
                "summary": "Get knowledge document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Document UUID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.KnowledgeDocEntry"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "not permitted or wrong owner",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "document not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Knowledge"
                ],
                "summary": "Update knowledge document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Document UUID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update request",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UpdateKnowledgeDocRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.KnowledgeDocEntry"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted or wrong owner",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "document not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "503": {
                        "description": "embedding provider not configured",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Knowledge"
                ],
                "summary": "Delete knowledge document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Document UUID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "document deleted",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "403": {
                        "description": "not permitted or wrong owner",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "document not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/msglogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Msglogs"
                ],
                "summary": "Retrieve msglogs list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "msglogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.msglogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting msglogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting msglogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/prompts/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Prompts"
                ],
                "summary": "Retrieve prompts list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "prompts list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.prompts"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting prompts not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting prompts",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/prompts/{promptType}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Prompts"
                ],
                "summary": "Retrieve prompt by type",
                "parameters": [
                    {
                        "type": "string",
                        "description": "prompt type",
                        "name": "promptType",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "prompt received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Prompt"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid prompt request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting prompt not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "prompt not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting prompt",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Prompts"
                ],
                "summary": "Update prompt",
                "parameters": [
                    {
                        "type": "string",
                        "description": "prompt type",
                        "name": "promptType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "prompt model to update",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.PatchPrompt"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "prompt updated successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Prompt"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "201": {
                        "description": "prompt created successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Prompt"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid prompt request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "updating prompt not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "prompt not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on updating prompt",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Prompts"
                ],
                "summary": "Delete prompt by type",
                "parameters": [
                    {
                        "type": "string",
                        "description": "prompt type",
                        "name": "promptType",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "prompt deleted successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "400": {
                        "description": "invalid prompt request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "deleting prompt not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "prompt not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on deleting prompt",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/prompts/{promptType}/default": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Prompts"
                ],
                "summary": "Reset prompt by type to default value",
                "parameters": [
                    {
                        "type": "string",
                        "description": "prompt type",
                        "name": "promptType",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "prompt reset successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Prompt"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "201": {
                        "description": "prompt created with default value successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Prompt"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid prompt request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "updating prompt not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "prompt not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on resetting prompt",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/providers/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Providers"
                ],
                "summary": "Retrieve providers list",
                "responses": {
                    "200": {
                        "description": "providers list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/models.ProviderInfo"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting providers not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/resources/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "List user resources",
                "parameters": [
                    {
                        "type": "string",
                        "description": "virtual directory path; empty for root (may be combined with paths[])",
                        "name": "path",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "additional virtual directory paths (repeatable)",
                        "name": "paths[]",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "list recursively (default false)",
                        "name": "recursive",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "Upload files to resource storage",
                "parameters": [
                    {
                        "type": "string",
                        "description": "target virtual directory path; empty or omitted means root",
                        "name": "dir",
                        "in": "query"
                    },
                    {
                        "type": "file",
                        "description": "files to upload (field name: files or file)",
                        "name": "files",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "Delete a resource (file or directory)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "virtual path to delete (may be combined with paths[])",
                        "name": "path",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "additional virtual paths to delete (repeatable)",
                        "name": "paths[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/resources/copy": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "Copy resource(s) (files or directories)",
                "parameters": [
                    {
                        "description": "copy request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CopyResourceRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/resources/download": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/octet-stream",
                    "application/zip",
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "Download a resource or resources",
                "parameters": [
                    {
                        "type": "string",
                        "description": "virtual path to download (may be combined with paths[])",
                        "name": "path",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "additional virtual paths to download (repeatable)",
                        "name": "paths[]",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "resource id to download (may be combined with ids[])",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "multi",
                        "description": "additional resource ids to download (repeatable)",
                        "name": "ids[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "file content, or ZIP archive for directories / multiple paths",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "400": {
                        "description": "invalid resource request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "downloading resource not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "resource not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on downloading resource",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/resources/mkdir": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "Create a virtual directory and any missing parents",
                "parameters": [
                    {
                        "description": "mkdir request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.MkdirResourceRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceEntry"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/resources/move": {
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resources"
                ],
                "summary": "Move or rename resource(s) (files or directories)",
                "parameters": [
                    {
                        "description": "move request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.MoveResourceRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.ResourceList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/roles/": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Roles"
                ],
                "summary": "Retrieve roles list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "roles list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.roles"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting roles not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting roles",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/roles/{roleID}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Roles"
                ],
                "summary": "Retrieve role by id",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "role id",
                        "name": "roleID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "role received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.RolePrivileges"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting role not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting role",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/screenshots/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Screenshots"
                ],
                "summary": "Retrieve screenshots list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "screenshots list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.screenshots"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting screenshots not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting screenshots",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/searchlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Searchlogs"
                ],
                "summary": "Retrieve searchlogs list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "searchlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.searchlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting searchlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting searchlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/settings/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Settings"
                ],
                "summary": "Retrieve settings",
                "responses": {
                    "200": {
                        "description": "settings received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.Settings"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting settings not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/termlogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Termlogs"
                ],
                "summary": "Retrieve termlogs list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "termlogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.termlogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting termlogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting termlogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/tokens": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tokens"
                ],
                "summary": "List API tokens",
                "responses": {
                    "200": {
                        "description": "tokens retrieved successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.tokens"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "listing tokens not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on listing tokens",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tokens"
                ],
                "summary": "Create new API token for automation",
                "parameters": [
                    {
                        "description": "Token creation request",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.CreateAPITokenRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "token created successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.APITokenWithSecret"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid token request or default salt",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "creating token not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on creating token",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/tokens/{tokenID}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tokens"
                ],
                "summary": "Get API token details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Token ID",
                        "name": "tokenID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "token retrieved successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.APIToken"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "accessing token not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "token not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting token",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tokens"
                ],
                "summary": "Update API token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Token ID",
                        "name": "tokenID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Token update request",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UpdateAPITokenRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "token updated successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.APIToken"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid update request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "updating token not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "token not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on updating token",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tokens"
                ],
                "summary": "Delete API token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Token ID",
                        "name": "tokenID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "token deleted successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "403": {
                        "description": "deleting token not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "token not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on deleting token",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/toolcalls/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Toolcalls"
                ],
                "summary": "Retrieve toolcalls list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "toolcalls list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.toolcalls"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting toolcalls not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting toolcalls",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/usage": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get comprehensive analytics for all user's flows including usage, toolcalls, and structural stats",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Usage"
                ],
                "summary": "Retrieve system-wide analytics",
                "responses": {
                    "200": {
                        "description": "analytics received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.SystemUsageResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting analytics not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting analytics",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/usage/{period}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get time-series analytics data for week, month, or quarter",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Usage"
                ],
                "summary": "Retrieve analytics for specific time period",
                "parameters": [
                    {
                        "enum": [
                            "week",
                            "month",
                            "quarter"
                        ],
                        "type": "string",
                        "description": "period",
                        "name": "period",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "UTC",
                        "description": "IANA timezone name the day boundaries are cut in",
                        "name": "timezone",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "period analytics received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.PeriodUsageResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid period parameter",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting analytics not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting analytics",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Retrieve current user information",
                "responses": {
                    "200": {
                        "description": "user info received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.UserRolePrivileges"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting current user not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "current user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting current user",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/email": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Update email for current user (account)",
                "parameters": [
                    {
                        "description": "container to validate and update account email",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.EmailChange"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "account email updated successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "400": {
                        "description": "invalid account email form data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "updating account email not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "current user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "email already exists",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on updating account email",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/name": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "Change current account display name",
                "parameters": [
                    {
                        "description": "new display name",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.NameChange"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "account name updated successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "400": {
                        "description": "invalid account name form data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "current user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on updating account name",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/password": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Update password for current user (account)",
                "parameters": [
                    {
                        "description": "container to validate and update account password",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.Password"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "account password updated successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "400": {
                        "description": "invalid account password form data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "updating account password not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "current user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on updating account password",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/users/": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Retrieve users list by filters",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "users list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.users"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting users not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting users",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Create new user",
                "parameters": [
                    {
                        "description": "user model to create from",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UserPassword"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "user created successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.UserRole"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid user request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "creating user not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on creating user",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/users/{hash}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Retrieve user by hash",
                "parameters": [
                    {
                        "maxLength": 32,
                        "minLength": 32,
                        "type": "string",
                        "description": "hash in hex format (md5)",
                        "name": "hash",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "user received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.UserRolePrivileges"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "getting user not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting user",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Update user",
                "parameters": [
                    {
                        "maxLength": 32,
                        "minLength": 32,
                        "type": "string",
                        "description": "user hash in hex format (md5)",
                        "name": "hash",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "user model to update",
                        "name": "json",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.UserPassword"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "user updated successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.UserRole"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid user request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "updating user not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on updating user",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Delete user by hash",
                "parameters": [
                    {
                        "maxLength": 32,
                        "minLength": 32,
                        "type": "string",
                        "description": "hash in hex format (md5)",
                        "name": "hash",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "user deleted successful",
                        "schema": {
                            "$ref": "#/definitions/SuccessResponse"
                        }
                    },
                    "403": {
                        "description": "deleting user not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "user not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on deleting user",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/vecstorelogs/": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Vecstorelogs"
                ],
                "summary": "Retrieve vecstorelogs list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n  field is the unique identifier of the table column, different for each endpoint\n  value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n  operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n  default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'",
                        "name": "filters[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field to group results by",
                        "name": "group",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Number of page (since 1)",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "maximum": 1000,
                        "minimum": -1,
                        "type": "integer",
                        "default": 5,
                        "description": "Amount items per page (min -1, max 1000, -1 means unlimited, absent means DefaultPageSize)",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n  field order is \"ascending\" or \"descending\" value\n  order is required if prop is not empty",
                        "name": "sort[]",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "sort",
                            "filter",
                            "init",
                            "page",
                            "size"
                        ],
                        "type": "string",
                        "default": "init",
                        "description": "Type of request",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "vecstorelogs list received successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/SuccessResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/services.vecstorelogs"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "invalid query request data",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "getting vecstorelogs not permitted",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "internal error on getting vecstorelogs",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "ErrorResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string",
                    "example": "Internal"
                },
                "error": {
                    "type": "string",
                    "example": "original server error message"
                },
                "msg": {
                    "type": "string",
                    "example": "internal server error"
                },
                "status": {
                    "type": "string",
                    "example": "error"
                }
            }
        },
        "SuccessResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object"
                },
                "status": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "gqlerror.Error": {
            "type": "object",
            "properties": {
                "extensions": {
                    "type": "object",
                    "additionalProperties": true
                },
                "locations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/gqlerror.Location"
                    }
                },
                "message": {
                    "type": "string"
                },
                "path": {
                    "type": "array",
                    "items": {}
                }
            }
        },
        "gqlerror.Location": {
            "type": "object",
            "properties": {
                "column": {
                    "type": "integer"
                },
                "line": {
                    "type": "integer"
                }
            }
        },
        "graphql.RawParams": {
            "type": "object",
            "properties": {
                "extensions": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "headers": {
                    "$ref": "#/definitions/http.Header"
                },
                "operationName": {
                    "type": "string"
                },
                "query": {
                    "type": "string"
                },
                "variables": {
                    "type": "object",
                    "additionalProperties": {}
                }
            }
        },
        "graphql.Response": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/gqlerror.Error"
                    }
                },
                "extensions": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "hasNext": {
                    "type": "boolean"
                },
                "label": {
                    "type": "string"
                },
                "path": {
                    "type": "array",
                    "items": {}
                }
            }
        },
        "http.Header": {
            "type": "object",
            "additionalProperties": {
                "type": "array",
                "items": {
                    "type": "string"
                }
            }
        },
        "models.APIToken": {
            "type": "object",
            "required": [
                "created_at",
                "status",
                "token_id",
                "ttl",
                "updated_at"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "token_id": {
                    "type": "string"
                },
                "ttl": {
                    "type": "integer",
                    "maximum": 94608000,
                    "minimum": 60
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.APITokenWithSecret": {
            "type": "object",
            "required": [
                "created_at",
                "status",
                "token",
                "token_id",
                "ttl",
                "updated_at"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 100
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                },
                "token_id": {
                    "type": "string"
                },
                "ttl": {
                    "type": "integer",
                    "maximum": 94608000,
                    "minimum": 60
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.AddResourceFromFlowRequest": {
            "type": "object",
            "required": [
                "destination"
            ],
            "properties": {
                "destination": {
                    "description": "Destination is the virtual path prefix in the user's resource tree.",
                    "type": "string"
                },
                "force": {
                    "description": "Force overwrites existing resources at the target paths when true.",
                    "type": "boolean"
                },
                "source": {
                    "description": "Source is a single relative path within the flow cache (kept for backward\ncompatibility). Combined with Sources when both are provided.",
                    "type": "string"
                },
                "sources": {
                    "description": "Sources is a list of relative paths within the flow cache. Combined with\nSource when both are provided; duplicate entries are silently removed.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.AddResourcesRequest": {
            "type": "object",
            "required": [
                "ids"
            ],
            "properties": {
                "force": {
                    "description": "Force overwrites files that already exist in the flow resources directory.",
                    "type": "boolean"
                },
                "ids": {
                    "description": "IDs is the list of user resource IDs to copy into the flow resources directory.",
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "models.AgentTypeUsageStats": {
            "type": "object",
            "required": [
                "agent_type",
                "stats"
            ],
            "properties": {
                "agent_type": {
                    "type": "string"
                },
                "stats": {
                    "$ref": "#/definitions/models.UsageStats"
                }
            }
        },
        "models.Agentlog": {
            "type": "object",
            "required": [
                "executor",
                "flow_id",
                "initiator",
                "task"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "executor": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "initiator": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task": {
                    "type": "string"
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.Assistant": {
            "type": "object",
            "required": [
                "flow_id",
                "language",
                "model",
                "model_provider_name",
                "model_provider_type",
                "status",
                "title",
                "tool_call_id_template",
                "trace_id"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "functions": {
                    "$ref": "#/definitions/tools.Functions"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "language": {
                    "type": "string",
                    "maxLength": 70
                },
                "model": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_name": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_type": {
                    "type": "string"
                },
                "msgchain_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "tool_call_id_template": {
                    "type": "string",
                    "maxLength": 70
                },
                "trace_id": {
                    "type": "string",
                    "maxLength": 70
                },
                "updated_at": {
                    "type": "string"
                },
                "use_agents": {
                    "type": "boolean"
                }
            }
        },
        "models.AssistantFlow": {
            "type": "object",
            "required": [
                "flow_id",
                "language",
                "model",
                "model_provider_name",
                "model_provider_type",
                "status",
                "title",
                "tool_call_id_template",
                "trace_id"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "type": "string"
                },
                "flow": {
                    "$ref": "#/definitions/models.Flow"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "functions": {
                    "$ref": "#/definitions/tools.Functions"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "language": {
                    "type": "string",
                    "maxLength": 70
                },
                "model": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_name": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_type": {
                    "type": "string"
                },
                "msgchain_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "tool_call_id_template": {
                    "type": "string",
                    "maxLength": 70
                },
                "trace_id": {
                    "type": "string",
                    "maxLength": 70
                },
                "updated_at": {
                    "type": "string"
                },
                "use_agents": {
                    "type": "boolean"
                }
            }
        },
        "models.Assistantlog": {
            "type": "object",
            "required": [
                "assistant_id",
                "flow_id",
                "result_format",
                "type"
            ],
            "properties": {
                "assistant_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "message": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "result_format": {
                    "type": "string"
                },
                "thinking": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.AuthCallback": {
            "type": "object",
            "required": [
                "code",
                "id_token",
                "scope",
                "state"
            ],
            "properties": {
                "code": {
                    "type": "string"
                },
                "id_token": {
                    "type": "string"
                },
                "scope": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                }
            }
        },
        "models.Container": {
            "type": "object",
            "required": [
                "flow_id",
                "image",
                "name",
                "status",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "image": {
                    "type": "string"
                },
                "local_dir": {
                    "type": "string"
                },
                "local_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "models.ContainerFile": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "is_dir": {
                    "type": "boolean"
                },
                "modified_at": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                }
            }
        },
        "models.ContainerFileError": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                }
            }
        },
        "models.ContainerFiles": {
            "type": "object",
            "properties": {
                "failures": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ContainerFileError"
                    }
                },
                "files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ContainerFile"
                    }
                },
                "path": {
                    "type": "string"
                },
                "total": {
                    "type": "integer"
                },
                "truncated": {
                    "description": "Truncated is true when the directory held more entries than the listing cap\nand only the first page was returned.",
                    "type": "boolean"
                }
            }
        },
        "models.CopyResourceRequest": {
            "type": "object",
            "required": [
                "destination"
            ],
            "properties": {
                "destination": {
                    "description": "Destination is the exact target path (single source) or base directory\n(multiple sources). Required.",
                    "type": "string"
                },
                "force": {
                    "description": "Force overwrites existing resources at the target paths when true.",
                    "type": "boolean"
                },
                "source": {
                    "description": "Source is kept for backward compatibility (single source).\nCombined with Sources when both are provided; duplicates are removed.",
                    "type": "string"
                },
                "sources": {
                    "description": "Sources is a list of virtual resource paths to copy.\nCombined with Source when both are provided; duplicates are removed.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.CreateAPITokenRequest": {
            "type": "object",
            "required": [
                "ttl"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "maxLength": 100
                },
                "ttl": {
                    "description": "from 1 minute to 3 years",
                    "type": "integer",
                    "maximum": 94608000,
                    "minimum": 60
                }
            }
        },
        "models.CreateAssistant": {
            "type": "object",
            "required": [
                "input",
                "provider"
            ],
            "properties": {
                "functions": {
                    "$ref": "#/definitions/tools.Functions"
                },
                "input": {
                    "type": "string",
                    "example": "user input for running assistant"
                },
                "provider": {
                    "type": "string",
                    "example": "openai"
                },
                "resource_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "use_agents": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "models.CreateFlow": {
            "type": "object",
            "required": [
                "input",
                "provider"
            ],
            "properties": {
                "functions": {
                    "$ref": "#/definitions/tools.Functions"
                },
                "input": {
                    "type": "string",
                    "example": "user input for first task in the flow"
                },
                "provider": {
                    "type": "string",
                    "example": "openai"
                },
                "resource_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "models.CreateKnowledgeDocRequest": {
            "type": "object",
            "required": [
                "content",
                "doc_type",
                "question"
            ],
            "properties": {
                "answer_type": {
                    "type": "string"
                },
                "code_lang": {
                    "type": "string",
                    "maxLength": 100
                },
                "content": {
                    "type": "string",
                    "maxLength": 65536
                },
                "description": {
                    "type": "string",
                    "maxLength": 1000
                },
                "doc_type": {
                    "type": "string"
                },
                "guide_type": {
                    "type": "string"
                },
                "question": {
                    "type": "string",
                    "maxLength": 2048
                }
            }
        },
        "models.DailyFlowsStats": {
            "type": "object",
            "required": [
                "date",
                "stats"
            ],
            "properties": {
                "date": {
                    "type": "string"
                },
                "stats": {
                    "$ref": "#/definitions/models.FlowsStats"
                }
            }
        },
        "models.DailyToolcallsStats": {
            "type": "object",
            "required": [
                "date",
                "stats"
            ],
            "properties": {
                "date": {
                    "type": "string"
                },
                "stats": {
                    "$ref": "#/definitions/models.ToolcallsStats"
                }
            }
        },
        "models.DailyUsageStats": {
            "type": "object",
            "required": [
                "date",
                "stats"
            ],
            "properties": {
                "date": {
                    "type": "string"
                },
                "stats": {
                    "$ref": "#/definitions/models.UsageStats"
                }
            }
        },
        "models.EmailChange": {
            "type": "object",
            "required": [
                "current_password",
                "mail"
            ],
            "properties": {
                "current_password": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 5
                },
                "mail": {
                    "type": "string",
                    "maxLength": 50
                }
            }
        },
        "models.Flow": {
            "type": "object",
            "required": [
                "language",
                "model",
                "model_provider_name",
                "model_provider_type",
                "status",
                "title",
                "tool_call_id_template",
                "user_id"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "type": "string"
                },
                "functions": {
                    "$ref": "#/definitions/tools.Functions"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "language": {
                    "type": "string",
                    "maxLength": 70
                },
                "model": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_name": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_type": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "tool_call_id_template": {
                    "type": "string",
                    "maxLength": 70
                },
                "trace_id": {
                    "type": "string",
                    "maxLength": 70
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.FlowExecutionStats": {
            "type": "object",
            "required": [
                "flow_title"
            ],
            "properties": {
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "flow_title": {
                    "type": "string"
                },
                "tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TaskExecutionStats"
                    }
                },
                "total_assistants_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_duration_seconds": {
                    "type": "number",
                    "minimum": 0
                },
                "total_toolcalls_count": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.FlowFile": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "is_dir": {
                    "type": "boolean"
                },
                "modified_at": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "path": {
                    "description": "relative: \"uploads/\u003cx\u003e\" or resources/\u003cx\u003e or container/\u003cx\u003e\"",
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                }
            }
        },
        "models.FlowFiles": {
            "type": "object",
            "properties": {
                "files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.FlowFile"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "models.FlowStats": {
            "type": "object",
            "properties": {
                "total_assistants_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_subtasks_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_tasks_count": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.FlowTasksSubtasks": {
            "type": "object",
            "required": [
                "language",
                "model",
                "model_provider_name",
                "model_provider_type",
                "status",
                "tasks",
                "title",
                "tool_call_id_template",
                "user_id"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "type": "string"
                },
                "functions": {
                    "$ref": "#/definitions/tools.Functions"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "language": {
                    "type": "string",
                    "maxLength": 70
                },
                "model": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_name": {
                    "type": "string",
                    "maxLength": 70
                },
                "model_provider_type": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.TaskSubtasks"
                    }
                },
                "title": {
                    "type": "string"
                },
                "tool_call_id_template": {
                    "type": "string",
                    "maxLength": 70
                },
                "trace_id": {
                    "type": "string",
                    "maxLength": 70
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.FlowUsageResponse": {
            "type": "object",
            "required": [
                "flow_stats_by_flow",
                "toolcalls_stats_by_flow",
                "usage_stats_by_flow"
            ],
            "properties": {
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "flow_stats_by_flow": {
                    "$ref": "#/definitions/models.FlowStats"
                },
                "toolcalls_stats_by_flow": {
                    "$ref": "#/definitions/models.ToolcallsStats"
                },
                "toolcalls_stats_by_function_for_flow": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.FunctionToolcallsStats"
                    }
                },
                "usage_stats_by_agent_type_for_flow": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.AgentTypeUsageStats"
                    }
                },
                "usage_stats_by_flow": {
                    "$ref": "#/definitions/models.UsageStats"
                }
            }
        },
        "models.FlowsStats": {
            "type": "object",
            "properties": {
                "total_assistants_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_flows_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_subtasks_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_tasks_count": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.FunctionToolcallsStats": {
            "type": "object",
            "required": [
                "function_name"
            ],
            "properties": {
                "avg_duration_seconds": {
                    "type": "number",
                    "minimum": 0
                },
                "function_name": {
                    "type": "string"
                },
                "is_agent": {
                    "type": "boolean"
                },
                "total_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_duration_seconds": {
                    "type": "number",
                    "minimum": 0
                }
            }
        },
        "models.KnowledgeDocEntry": {
            "type": "object",
            "properties": {
                "answer_type": {
                    "type": "string"
                },
                "code_lang": {
                    "type": "string"
                },
                "content": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "doc_type": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer"
                },
                "guide_type": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "manual": {
                    "type": "boolean"
                },
                "part_size": {
                    "type": "integer"
                },
                "question": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer"
                },
                "task_id": {
                    "type": "integer"
                },
                "total_size": {
                    "type": "integer"
                },
                "user_id": {
                    "type": "integer"
                }
            }
        },
        "models.KnowledgeDocList": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.KnowledgeDocEntry"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "models.KnowledgeDocWithScore": {
            "type": "object",
            "properties": {
                "document": {
                    "$ref": "#/definitions/models.KnowledgeDocEntry"
                },
                "score": {
                    "type": "number"
                }
            }
        },
        "models.KnowledgeSearchRequest": {
            "type": "object",
            "required": [
                "query"
            ],
            "properties": {
                "answer_types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "code_langs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "doc_types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "flow_id": {
                    "type": "integer"
                },
                "guide_types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "limit": {
                    "type": "integer",
                    "maximum": 100,
                    "minimum": 1
                },
                "manual": {
                    "type": "boolean"
                },
                "query": {
                    "type": "string",
                    "maxLength": 2048
                }
            }
        },
        "models.KnowledgeSearchResult": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.KnowledgeDocWithScore"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "models.Login": {
            "type": "object",
            "required": [
                "mail",
                "password"
            ],
            "properties": {
                "mail": {
                    "type": "string",
                    "maxLength": 50
                },
                "password": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 4
                }
            }
        },
        "models.MkdirResourceRequest": {
            "type": "object",
            "required": [
                "path"
            ],
            "properties": {
                "path": {
                    "type": "string"
                }
            }
        },
        "models.ModelInfo": {
            "type": "object",
            "required": [
                "agent_types",
                "name"
            ],
            "properties": {
                "agent_types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string",
                    "example": "gpt-4o"
                },
                "price_info": {
                    "$ref": "#/definitions/models.ModelPriceInfo"
                }
            }
        },
        "models.ModelPriceInfo": {
            "type": "object",
            "properties": {
                "cache_read": {
                    "type": "number",
                    "minimum": 0,
                    "example": 0.1
                },
                "cache_write": {
                    "type": "number",
                    "minimum": 0,
                    "example": 0.3
                },
                "input": {
                    "type": "number",
                    "minimum": 0,
                    "example": 1.1
                },
                "output": {
                    "type": "number",
                    "minimum": 0,
                    "example": 3
                }
            }
        },
        "models.ModelUsageStats": {
            "type": "object",
            "required": [
                "model",
                "provider",
                "stats"
            ],
            "properties": {
                "model": {
                    "type": "string"
                },
                "provider": {
                    "type": "string"
                },
                "stats": {
                    "$ref": "#/definitions/models.UsageStats"
                }
            }
        },
        "models.MoveResourceRequest": {
            "type": "object",
            "properties": {
                "destination": {
                    "description": "Destination is the exact target path (single source) or base directory\n(multiple sources). Empty string means the root directory.",
                    "type": "string"
                },
                "force": {
                    "description": "Force overwrites existing resources at the target paths when true.",
                    "type": "boolean"
                },
                "source": {
                    "description": "Source is kept for backward compatibility (single source).\nCombined with Sources when both are provided; duplicates are removed.",
                    "type": "string"
                },
                "sources": {
                    "description": "Sources is a list of virtual resource paths to move.\nCombined with Source when both are provided; duplicates are removed.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.Msglog": {
            "type": "object",
            "required": [
                "flow_id",
                "message",
                "result_format",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "message": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "result_format": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "thinking": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.NameChange": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "maxLength": 70,
                    "minLength": 1
                }
            }
        },
        "models.Password": {
            "type": "object",
            "required": [
                "current_password",
                "password"
            ],
            "properties": {
                "confirm_password": {
                    "type": "string"
                },
                "current_password": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 5
                },
                "password": {
                    "type": "string"
                }
            }
        },
        "models.PatchAssistant": {
            "type": "object",
            "required": [
                "action"
            ],
            "properties": {
                "action": {
                    "type": "string",
                    "default": "stop",
                    "enum": [
                        "stop",
                        "input"
                    ]
                },
                "input": {
                    "type": "string",
                    "example": "user input for waiting assistant"
                },
                "resource_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "use_agents": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "models.PatchFlow": {
            "type": "object",
            "required": [
                "action"
            ],
            "properties": {
                "action": {
                    "type": "string",
                    "default": "stop",
                    "enum": [
                        "stop",
                        "finish",
                        "input",
                        "rename",
                        "report"
                    ]
                },
                "input": {
                    "type": "string",
                    "example": "user input for waiting flow"
                },
                "name": {
                    "type": "string",
                    "example": "new flow name"
                },
                "provider": {
                    "type": "string"
                },
                "resource_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "timeout": {
                    "type": "integer",
                    "maximum": 7200,
                    "minimum": 30,
                    "example": 600
                }
            }
        },
        "models.PatchPrompt": {
            "type": "object",
            "required": [
                "prompt"
            ],
            "properties": {
                "prompt": {
                    "type": "string"
                }
            }
        },
        "models.PeriodUsageResponse": {
            "type": "object",
            "required": [
                "period"
            ],
            "properties": {
                "flows_execution_stats_by_period": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.FlowExecutionStats"
                    }
                },
                "flows_stats_by_period": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DailyFlowsStats"
                    }
                },
                "period": {
                    "type": "string"
                },
                "toolcalls_stats_by_period": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DailyToolcallsStats"
                    }
                },
                "usage_stats_by_period": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.DailyUsageStats"
                    }
                }
            }
        },
        "models.Privilege": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 70
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.Prompt": {
            "type": "object",
            "required": [
                "prompt",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "prompt": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.ProviderInfo": {
            "type": "object",
            "required": [
                "default_model",
                "models",
                "name",
                "type"
            ],
            "properties": {
                "default_model": {
                    "type": "string",
                    "example": "gpt-4o"
                },
                "models": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ModelInfo"
                    }
                },
                "name": {
                    "type": "string",
                    "example": "my openai provider"
                },
                "type": {
                    "type": "string",
                    "example": "openai"
                }
            }
        },
        "models.ProviderUsageStats": {
            "type": "object",
            "required": [
                "provider",
                "stats"
            ],
            "properties": {
                "provider": {
                    "type": "string"
                },
                "stats": {
                    "$ref": "#/definitions/models.UsageStats"
                }
            }
        },
        "models.PullFlowFilesRequest": {
            "type": "object",
            "properties": {
                "force": {
                    "description": "Force overwrites local cache entries that already exist.",
                    "type": "boolean"
                },
                "path": {
                    "description": "Path is a single container path (maintained for backward compatibility).\nCombined with Paths if both are provided.",
                    "type": "string"
                },
                "paths": {
                    "description": "Paths is a list of container paths to pull. Combined with Path if provided.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.ResourceEntry": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "is_dir": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer"
                }
            }
        },
        "models.ResourceList": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ResourceEntry"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "models.Role": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 50
                }
            }
        },
        "models.RolePrivileges": {
            "type": "object",
            "required": [
                "name",
                "privileges"
            ],
            "properties": {
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 50
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Privilege"
                    }
                }
            }
        },
        "models.Screenshot": {
            "type": "object",
            "required": [
                "flow_id",
                "name",
                "url"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "models.Searchlog": {
            "type": "object",
            "required": [
                "engine",
                "executor",
                "flow_id",
                "initiator",
                "query"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "engine": {
                    "type": "string"
                },
                "executor": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "initiator": {
                    "type": "string"
                },
                "query": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.Settings": {
            "type": "object",
            "properties": {
                "ask_user": {
                    "type": "boolean",
                    "example": false
                },
                "assistant_use_agents": {
                    "type": "boolean",
                    "example": false
                },
                "debug": {
                    "type": "boolean",
                    "example": false
                },
                "docker_inside": {
                    "type": "boolean",
                    "example": false
                },
                "is_develop_mode": {
                    "type": "boolean",
                    "example": false
                },
                "version": {
                    "type": "string",
                    "example": "v1.0.0"
                }
            }
        },
        "models.Subtask": {
            "type": "object",
            "required": [
                "description",
                "status",
                "task_id",
                "title"
            ],
            "properties": {
                "context": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "result": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "models.SubtaskExecutionStats": {
            "type": "object",
            "required": [
                "subtask_title"
            ],
            "properties": {
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "subtask_title": {
                    "type": "string"
                },
                "total_duration_seconds": {
                    "type": "number",
                    "minimum": 0
                },
                "total_toolcalls_count": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.SystemUsageResponse": {
            "type": "object",
            "required": [
                "flows_stats_total",
                "toolcalls_stats_total",
                "usage_stats_total"
            ],
            "properties": {
                "flows_stats_total": {
                    "$ref": "#/definitions/models.FlowsStats"
                },
                "toolcalls_stats_by_function": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.FunctionToolcallsStats"
                    }
                },
                "toolcalls_stats_total": {
                    "$ref": "#/definitions/models.ToolcallsStats"
                },
                "usage_stats_by_agent_type": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.AgentTypeUsageStats"
                    }
                },
                "usage_stats_by_model": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ModelUsageStats"
                    }
                },
                "usage_stats_by_provider": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ProviderUsageStats"
                    }
                },
                "usage_stats_total": {
                    "$ref": "#/definitions/models.UsageStats"
                }
            }
        },
        "models.Task": {
            "type": "object",
            "required": [
                "flow_id",
                "input",
                "status",
                "title"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "input": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "models.TaskExecutionStats": {
            "type": "object",
            "required": [
                "task_title"
            ],
            "properties": {
                "subtasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SubtaskExecutionStats"
                    }
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_title": {
                    "type": "string"
                },
                "total_duration_seconds": {
                    "type": "number",
                    "minimum": 0
                },
                "total_toolcalls_count": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.TaskSubtasks": {
            "type": "object",
            "required": [
                "flow_id",
                "input",
                "status",
                "subtasks",
                "title"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "input": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "subtasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Subtask"
                    }
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "models.Termlog": {
            "type": "object",
            "required": [
                "container_id",
                "flow_id",
                "text",
                "type"
            ],
            "properties": {
                "container_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "created_at": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "text": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.Toolcall": {
            "type": "object",
            "required": [
                "args",
                "call_id",
                "flow_id",
                "name",
                "status"
            ],
            "properties": {
                "args": {
                    "type": "string"
                },
                "call_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "duration_seconds": {
                    "type": "number",
                    "minimum": 0
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "name": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "models.ToolcallsStats": {
            "type": "object",
            "properties": {
                "total_count": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_duration_seconds": {
                    "type": "number",
                    "minimum": 0
                }
            }
        },
        "models.UpdateAPITokenRequest": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "maxLength": 100
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "models.UpdateKnowledgeDocRequest": {
            "type": "object",
            "required": [
                "content"
            ],
            "properties": {
                "answer_type": {
                    "type": "string"
                },
                "code_lang": {
                    "type": "string",
                    "maxLength": 100
                },
                "content": {
                    "type": "string",
                    "maxLength": 65536
                },
                "description": {
                    "type": "string",
                    "maxLength": 1000
                },
                "guide_type": {
                    "type": "string"
                },
                "question": {
                    "type": "string",
                    "maxLength": 2048
                }
            }
        },
        "models.UsageStats": {
            "type": "object",
            "properties": {
                "total_usage_cache_in": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_usage_cache_out": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_usage_cost_in": {
                    "type": "number",
                    "minimum": 0
                },
                "total_usage_cost_out": {
                    "type": "number",
                    "minimum": 0
                },
                "total_usage_in": {
                    "type": "integer",
                    "minimum": 0
                },
                "total_usage_out": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "models.User": {
            "type": "object",
            "required": [
                "mail",
                "role_id",
                "status",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "hash": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "mail": {
                    "type": "string",
                    "maxLength": 50
                },
                "name": {
                    "type": "string",
                    "maxLength": 70
                },
                "password_change_required": {
                    "type": "boolean"
                },
                "provider": {
                    "type": "string"
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.UserPassword": {
            "type": "object",
            "required": [
                "mail",
                "password",
                "role_id",
                "status",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "hash": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "mail": {
                    "type": "string",
                    "maxLength": 50
                },
                "name": {
                    "type": "string",
                    "maxLength": 70
                },
                "password": {
                    "type": "string"
                },
                "password_change_required": {
                    "type": "boolean"
                },
                "provider": {
                    "type": "string"
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.UserRole": {
            "type": "object",
            "required": [
                "mail",
                "role_id",
                "status",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "hash": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "mail": {
                    "type": "string",
                    "maxLength": 50
                },
                "name": {
                    "type": "string",
                    "maxLength": 70
                },
                "password_change_required": {
                    "type": "boolean"
                },
                "provider": {
                    "type": "string"
                },
                "role": {
                    "$ref": "#/definitions/models.Role"
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.UserRolePrivileges": {
            "type": "object",
            "required": [
                "mail",
                "role_id",
                "status",
                "type"
            ],
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "hash": {
                    "type": "string"
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "mail": {
                    "type": "string",
                    "maxLength": 50
                },
                "name": {
                    "type": "string",
                    "maxLength": 70
                },
                "password_change_required": {
                    "type": "boolean"
                },
                "provider": {
                    "type": "string"
                },
                "role": {
                    "$ref": "#/definitions/models.RolePrivileges"
                },
                "role_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.Vecstorelog": {
            "type": "object",
            "required": [
                "action",
                "executor",
                "filter",
                "flow_id",
                "initiator",
                "query"
            ],
            "properties": {
                "action": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "executor": {
                    "type": "string"
                },
                "filter": {
                    "type": "string"
                },
                "flow_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "id": {
                    "type": "integer",
                    "minimum": 0
                },
                "initiator": {
                    "type": "string"
                },
                "query": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "subtask_id": {
                    "type": "integer",
                    "minimum": 0
                },
                "task_id": {
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "services.agentlogs": {
            "type": "object",
            "properties": {
                "agentlogs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Agentlog"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.anonymizeTextRequest": {
            "type": "object",
            "required": [
                "text"
            ],
            "properties": {
                "text": {
                    "type": "string"
                }
            }
        },
        "services.anonymizeTextResponse": {
            "type": "object",
            "properties": {
                "text": {
                    "type": "string"
                }
            }
        },
        "services.assistantlogs": {
            "type": "object",
            "properties": {
                "assistantlogs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Assistantlog"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.assistants": {
            "type": "object",
            "properties": {
                "assistants": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Assistant"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.containers": {
            "type": "object",
            "properties": {
                "containers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Container"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.flows": {
            "type": "object",
            "properties": {
                "flows": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Flow"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.info": {
            "type": "object",
            "properties": {
                "develop": {
                    "type": "boolean"
                },
                "expires_at": {
                    "type": "string"
                },
                "issued_at": {
                    "type": "string"
                },
                "oauth": {
                    "type": "boolean"
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "providers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "role": {
                    "$ref": "#/definitions/models.Role"
                },
                "type": {
                    "type": "string"
                },
                "user": {
                    "$ref": "#/definitions/models.User"
                }
            }
        },
        "services.msglogs": {
            "type": "object",
            "properties": {
                "msglogs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Msglog"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.prompts": {
            "type": "object",
            "properties": {
                "prompts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Prompt"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.roles": {
            "type": "object",
            "properties": {
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.RolePrivileges"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.screenshots": {
            "type": "object",
            "properties": {
                "screenshots": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Screenshot"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.searchlogs": {
            "type": "object",
            "properties": {
                "searchlogs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Searchlog"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.subtasks": {
            "type": "object",
            "properties": {
                "subtasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Subtask"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.tasks": {
            "type": "object",
            "properties": {
                "tasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Task"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.termlogs": {
            "type": "object",
            "properties": {
                "termlogs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Termlog"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.tokens": {
            "type": "object",
            "properties": {
                "tokens": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.APIToken"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.toolcalls": {
            "type": "object",
            "properties": {
                "toolcalls": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Toolcall"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "services.users": {
            "type": "object",
            "properties": {
                "total": {
                    "type": "integer"
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.UserRole"
                    }
                }
            }
        },
        "services.vecstorelogs": {
            "type": "object",
            "properties": {
                "total": {
                    "type": "integer"
                },
                "vecstorelogs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Vecstorelog"
                    }
                }
            }
        },
        "tools.DisableFunction": {
            "type": "object",
            "required": [
                "context",
                "name"
            ],
            "properties": {
                "context": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "tools.ExternalFunction": {
            "type": "object",
            "required": [
                "context",
                "name",
                "schema",
                "url"
            ],
            "properties": {
                "context": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "schema": {
                    "type": "object"
                },
                "timeout": {
                    "type": "integer",
                    "minimum": 1,
                    "example": 60
                },
                "url": {
                    "type": "string",
                    "example": "https://example.com/api/v1/function"
                }
            }
        },
        "tools.Functions": {
            "type": "object",
            "properties": {
                "disabled": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/tools.DisableFunction"
                    }
                },
                "functions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/tools.ExternalFunction"
                    }
                },
                "token": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "BearerAuth": {
            "description": "Type \"Bearer\" followed by a space and JWT token.",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}