{
    "schemes": ["https"],
    "swagger": "2.0",
    "info": {
        "description": "Vision Component API - Complete camera management and simulation system\n\nThis API provides comprehensive camera management capabilities including:\n- Camera configuration and control with live parameter updates via ZMQ\n- Interface management for various camera types (USB, RTSP, Aravis, etc.)\n- Image set management for camera simulation with upload/download capabilities\n- Logging and monitoring functionality\n- Real-time parameter configuration with symbolics support\n",
        "title": "VCA API",
        "termsOfService": "http://swagger.io/terms/",
        "contact": {
            "name": "VCA API Support",
            "url": "http://www.swagger.io/support",
            "email": "support@swagger.io"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "1.4.0"
    },
    "host": "",
    "basePath": "/vca/api/",
    "paths": {
        "/logging_server/config": {
            "get": {
                "description": "Returns the currently configured log file size and debug level state.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "logging_api"
                ],
                "summary": "Get the current logging server configuration",
                "responses": {
                    "200": {
                        "description": "Current logging server configuration",
                        "schema": {
                            "$ref": "#/definitions/models.LoggingServerConfig"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            },
            "patch": {
                "description": "Updates logging server settings at runtime. All fields are optional.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "logging_api"
                ],
                "summary": "Update logging server configuration",
                "parameters": [
                    {
                        "description": "Logging server configuration",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.LoggingServerConfig"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request – validation error",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/logging_server/download_logs": {
            "get": {
                "description": "Download the log files as ZIP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/zip"
                ],
                "tags": [
                    "logging_api"
                ],
                "summary": "Download the log files as ZIP",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/logging_server/logs": {
            "get": {
                "description": "Retrieves logs based on the specified filter parameters",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "logging_api"
                ],
                "summary": "Retrieves logs based on the specified filter parameters",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "INFO",
                                "WARNING",
                                "ERROR"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "The log levels to filter on",
                        "name": "log_levels",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "API",
                                "PIPELINE_EXECUTOR"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "The components to filter on",
                        "name": "components",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.LogEntry"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    }
                }
            }
        },
        "/v1/application/build": {
            "get": {
                "description": "Retrieve application build details including IEDK version, role-based access support, and user information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "application_api"
                ],
                "summary": "Get application build information",
                "responses": {
                    "200": {
                        "description": "Application build information",
                        "schema": {
                            "$ref": "#/definitions/handlers.ApplicationBuildResponse"
                        }
                    },
                    "401": {
                        "description": "Authentication required",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "403": {
                        "description": "Forbidden - insufficient permissions",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera": {
            "get": {
                "description": "Get all cameras",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Get all cameras",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/vca-api-go_src_api_models.Camera"
                            }
                        }
                    }
                }
            },
            "post": {
                "description": "Create a camera. Required fields are unique_id, name, interface_name.\nThe enable field of the newly created camera is always false and the status field is 'DISABLED'.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Create a camera",
                "parameters": [
                    {
                        "description": "Create a new camera",
                        "name": "camera",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/vca-api-go_src_api_models.Camera"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/vca-api-go_src_api_models.Camera"
                        }
                    },
                    "400": {
                        "description": "Camera already exist with this name. Missing or invalid required field. Invalid request (e.g. empty body).",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/discover/{interface_name}": {
            "get": {
                "description": "Discover the available cameras with given interface.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Discover the available cameras with given interface",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Interface name",
                        "name": "interface_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Camera interface not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/export": {
            "get": {
                "description": "Get all camera with configuration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Get all camera with configuration",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.CameraWithConfig"
                            }
                        }
                    },
                    "404": {
                        "description": "No camera found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/import": {
            "put": {
                "description": "Import a list of camera with config. Deletes all previous cameras!",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Import a list of camera with config",
                "parameters": [
                    {
                        "description": "List of cameras with configuration",
                        "name": "cameras",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.CameraWithConfig"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.CameraWithConfig"
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid camera configuration (e.g. there is no camera in the list). Invalid request (e.g. empty body).",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/trigger": {
            "post": {
                "description": "Trigger selected cameras",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Trigger selected cameras",
                "parameters": [
                    {
                        "description": "Camera IDs to trigger",
                        "name": "trigger",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "camera_ids": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Trigger results for each camera",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "object"
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid request or missing camera_ids",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/{camera_id}": {
            "get": {
                "description": "Get the camera with the given ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Get the camera with the given ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/vca-api-go_src_api_models.Camera"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            },
            "put": {
                "description": "Update camera with given ID. Only the enable field can be changed.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Update camera with given ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update camera",
                        "name": "camera",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/vca-api-go_src_api_models.Camera"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.CameraWithConfig"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete camera with given ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Delete camera with given ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Deleted"
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/{camera_id}/command": {
            "post": {
                "description": "Execute a command on the camera.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Execute a command on the camera",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Command parameters",
                        "name": "command",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "parameter_name": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Camera does not support command feature",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/{camera_id}/config": {
            "get": {
                "description": "Get config of camera with given ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Get config of camera with given ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/vca-api-go_src_api_models.CameraParameter"
                            }
                        }
                    },
                    "400": {
                        "description": "The camera has no parameters",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            },
            "put": {
                "description": "Update camera config.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Update camera config",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Camera configuration parameters",
                        "name": "config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/vca-api-go_src_api_models.CameraParameter"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Empty list if OK. List of unsuccessful config.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.CameraConfigErrorDetails"
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid request.",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/{camera_id}/replay": {
            "post": {
                "description": "Send replay command to simulated camera.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Send replay command to simulated camera",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Camera does not support replay feature",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera/{camera_id}/status": {
            "get": {
                "description": "Get camera status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "camera_api"
                ],
                "summary": "Get camera status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Camera ID",
                        "name": "camera_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/vca-api-go_src_api_models.Camera"
                        }
                    },
                    "404": {
                        "description": "Camera not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera_simulation/image_sets": {
            "get": {
                "description": "Return the list of available image sets",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "simulation_api"
                ],
                "summary": "Return the list of available image sets",
                "responses": {
                    "200": {
                        "description": "Ok, The list of available image set objects",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.ImageSetItem"
                            }
                        }
                    }
                }
            },
            "post": {
                "description": "Create a new or update an existing image set",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "simulation_api"
                ],
                "summary": "Create a new or update an existing image set",
                "parameters": [
                    {
                        "type": "file",
                        "description": "Image set package",
                        "name": "image_set_package",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Description",
                        "name": "description",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A new image set is created or an existing updated",
                        "schema": {
                            "$ref": "#/definitions/models.ImageSetItem"
                        }
                    },
                    "400": {
                        "description": "The creation or update of the image set failed",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera_simulation/image_sets/cancel": {
            "post": {
                "description": "Cancel the image set upload specified by the image set name in the request body",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "simulation_api"
                ],
                "summary": "Cancel the image set upload specified by the image set name in the request body",
                "parameters": [
                    {
                        "description": "Image set name to cancel",
                        "name": "cancel_request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "image_set_name": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "OK, the image set upload cancelled for image_set_name"
                    },
                    "400": {
                        "description": "image_set_name is not provided in request body. Invalid request.",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "No upload in progress for the specified image_set_name",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera_simulation/image_sets/{image_set_id}": {
            "delete": {
                "description": "Delete the image_set_id specified image set",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "simulation_api"
                ],
                "summary": "Delete the image_set_id specified image set",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Image set ID",
                        "name": "image_set_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Image set deleted"
                    },
                    "400": {
                        "description": "Image set is built in or used by a camera",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Image set not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera_simulation/image_sets/{image_set_id}/description": {
            "patch": {
                "description": "Change the description of the image_set_id specified image name",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "simulation_api"
                ],
                "summary": "Change the description of the image_set_id specified image name",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Image set ID",
                        "name": "image_set_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New description",
                        "name": "description",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ImageSetDescription"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Image set description updated",
                        "schema": {
                            "$ref": "#/definitions/models.ImageSetItem"
                        }
                    },
                    "400": {
                        "description": "Failed to update image set description (e.g. the imageset is built-in or missing description)",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Image set not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/camera_simulation/image_sets/{image_set_id}/package": {
            "get": {
                "description": "Download the image set package specified by the image_set_id",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/zip"
                ],
                "tags": [
                    "simulation_api"
                ],
                "summary": "Download the image set package specified by the image_set_id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Image set ID",
                        "name": "image_set_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ok, The image set package",
                        "schema": {
                            "$ref": "#/definitions/models.ImageSetPackage"
                        }
                    },
                    "400": {
                        "description": "The image set cannot be downloaded",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "The image set or image set package not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/interface": {
            "get": {
                "description": "Get the list of interfaces",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "interface_api"
                ],
                "summary": "Get the list of interfaces",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.Interface"
                            }
                        }
                    }
                }
            }
        },
        "/v1/interface/{interface_name}": {
            "post": {
                "description": "Upload a custom driver ZIP file for a specific camera interface",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "interface_api"
                ],
                "summary": "Upload custom driver for interface",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Interface name",
                        "name": "interface_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "Driver ZIP file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Driver uploaded successfully",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad request or invalid file",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Interface not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete interface and all of the cameras with this interface.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "interface_api"
                ],
                "summary": "Delete interface and all of the cameras with this interface",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Interface name",
                        "name": "interface_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Deleted"
                    },
                    "400": {
                        "description": "Interface is built in. Invalid interface name.",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Interface not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        },
        "/v1/interface/{interface_name}/package": {
            "get": {
                "description": "Download the driver package ZIP file for a specific camera interface",
                "produces": [
                    "application/zip"
                ],
                "tags": [
                    "interface_api"
                ],
                "summary": "Download interface driver package",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Interface name",
                        "name": "interface_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Driver package ZIP file",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Interface or package not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            },
            "post": {
                "description": "Update the driver package ZIP file for an existing camera interface",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "interface_api"
                ],
                "summary": "Update interface driver package",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Interface name",
                        "name": "interface_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "Driver ZIP file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Package updated successfully",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "description": "Bad request or invalid file",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    },
                    "404": {
                        "description": "Interface not found",
                        "schema": {
                            "$ref": "#/definitions/models.Error"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "handlers.ApplicationBuildResponse": {
            "type": "object",
            "properties": {
                "iedkVersion": {
                    "type": "string"
                },
                "roleBasedAccessSupported": {
                    "type": "boolean"
                },
                "user": {
                    "$ref": "#/definitions/services.User"
                }
            }
        },
        "models.CameraConfigErrorDetails": {
            "type": "object",
            "properties": {
                "error_message": {
                    "type": "string",
                    "example": "Value out of range"
                },
                "parameter_name": {
                    "type": "string",
                    "example": "exposure_time"
                },
                "status": {
                    "description": "ERROR, WARNING",
                    "type": "string",
                    "example": "ERROR"
                }
            }
        },
        "models.CameraWithConfig": {
            "description": "CameraWithConfig represents a camera with its configuration",
            "type": "object",
            "properties": {
                "camera_id": {
                    "type": "string",
                    "example": "camera_001"
                },
                "config": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/vca-api-go_src_api_models.CameraParameter"
                    }
                },
                "enable": {
                    "type": "boolean",
                    "example": true
                },
                "interface_name": {
                    "type": "string",
                    "example": "eth0"
                },
                "name": {
                    "type": "string",
                    "example": "Front Door Camera"
                },
                "status": {
                    "description": "OFFLINE, ONLINE, DISABLED",
                    "type": "string",
                    "example": "ONLINE"
                },
                "unique_id": {
                    "type": "string",
                    "example": "unique_camera_001"
                }
            }
        },
        "models.Error": {
            "type": "object",
            "properties": {
                "details": {
                    "type": "object",
                    "additionalProperties": true
                },
                "error": {
                    "type": "string",
                    "example": "Invalid request"
                },
                "message": {
                    "type": "string",
                    "example": "The request payload is not valid"
                }
            }
        },
        "models.ImageSetDescription": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Sample image set for testing"
                }
            }
        },
        "models.ImageSetItem": {
            "type": "object",
            "properties": {
                "built_in": {
                    "type": "boolean",
                    "example": false
                },
                "description": {
                    "type": "string",
                    "example": "A set of test images"
                },
                "image_set_id": {
                    "type": "string",
                    "example": "set_001"
                },
                "image_set_name": {
                    "type": "string",
                    "example": "Test Set"
                },
                "status": {
                    "type": "string",
                    "example": "AVAILABLE"
                },
                "upload_time": {
                    "type": "string",
                    "example": "2025-11-05T12:00:00Z"
                }
            }
        },
        "models.ImageSetPackage": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "models.Interface": {
            "type": "object",
            "properties": {
                "built_in": {
                    "type": "boolean",
                    "example": true
                },
                "interface_id": {
                    "type": "integer",
                    "example": 1
                },
                "interface_name": {
                    "type": "string",
                    "example": "eth0"
                }
            }
        },
        "models.LogEntry": {
            "type": "object",
            "properties": {
                "component": {
                    "type": "string",
                    "example": "API"
                },
                "level": {
                    "type": "string",
                    "example": "INFO"
                },
                "message": {
                    "type": "string",
                    "example": "This is a log message"
                },
                "timestamp": {
                    "type": "string",
                    "example": "2025-11-05T12:00:00Z"
                }
            }
        },
        "models.LoggingServerConfig": {
            "type": "object",
            "properties": {
                "debug_level_enabled": {
                    "description": "DebugLevelEnabled activates or deactivates debug-level logging at runtime.\nThis setting is NOT persisted to the database.\nOptional in PATCH – omit to leave the current value unchanged.\nDefaults to false on startup since the value is not persisted.",
                    "type": "boolean",
                    "example": false
                },
                "filesize": {
                    "description": "FileSize is the maximum log file size in bytes (allowed: 1048576–314572800, i.e. 1 MB–300 MB).\nOptional in PATCH – omit to leave the current value unchanged.",
                    "type": "integer",
                    "example": 10485760
                }
            }
        },
        "services.User": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                }
            }
        },
        "vca-api-go_src_api_models.Camera": {
            "description": "Camera represents a camera in API requests/responses",
            "type": "object",
            "properties": {
                "camera_id": {
                    "type": "string",
                    "example": "camera_001"
                },
                "enable": {
                    "type": "boolean",
                    "example": true
                },
                "interface_name": {
                    "type": "string",
                    "example": "eth0"
                },
                "name": {
                    "type": "string",
                    "example": "Front Door Camera"
                },
                "status": {
                    "description": "OFFLINE, ONLINE, DISABLED",
                    "type": "string",
                    "example": "ONLINE"
                },
                "unique_id": {
                    "type": "string",
                    "example": "unique_camera_001"
                }
            }
        },
        "vca-api-go_src_api_models.CameraParameter": {
            "description": "CameraParameter represents a camera parameter",
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Camera exposure time in microseconds"
                },
                "increment": {
                    "type": "string",
                    "example": "1"
                },
                "parameter_max_value": {
                    "type": "string",
                    "example": "10000"
                },
                "parameter_min_value": {
                    "type": "string",
                    "example": "1"
                },
                "parameter_name": {
                    "type": "string",
                    "example": "exposure_time"
                },
                "parameter_type": {
                    "type": "string",
                    "example": "integer"
                },
                "parameter_value": {
                    "type": "string",
                    "example": "1000"
                },
                "read_only": {
                    "type": "boolean",
                    "example": false
                },
                "symbolics": {
                    "type": "string",
                    "example": "auto,manual"
                }
            }
        }
    },
    "securityDefinitions": {
        "ApiKeyAuth": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header",
            "x-extension-openapi": "{\"info\":{\"x-logo\":{\"url\":\"https://via.placeholder.com/200x50/0066cc/ffffff?text=VCA+API\",\"altText\":\"VCA API Logo\"}}}"
        }
    },
    "tags": [
        {
            "description": "Camera Management Operations - Create, configure, and control cameras with real-time parameter updates",
            "name": "camera_api"
        },
        {
            "description": "Interface Management Operations - Manage camera interfaces for different connection types",
            "name": "interface_api"
        },
        {
            "description": "Camera Simulation Operations - Upload, manage, and use image sets for camera simulation",
            "name": "simulation_api"
        },
        {
            "description": "Logging and Monitoring Operations - Access system logs and download log files",
            "name": "logging_api"
        }
    ]
}