Swagger integration |
---|
{ "openapi": "3.0.3", "info": { "title": "QPAPI", "description": "QPAPI is a REST API for the QP hardware", "version": "1.0.0" }, "tags": [ { "name": "Capture", "description": "Everything capture related" }, { "name": "Search", "description": "Everything search related" }, { "name": "File Manager", "description": "Everything file manager related" }, { "name": "Service Manager", "description": "Everything service manager related" }, { "name": "Request", "description": "Everything request related" }, { "name": "Etc", "description": "Everything request related" } ], "paths": { "/capture/capture_settings": { "get": { "tags": [ "Capture" ], "summary": "Get capture settings", "description": "Get capture settings such as port status, file naming, directory paths, capture methods, size configurations, compression, rotation, synchronization, and other specific settings related to data capture operations.", "operationId": "capture_settings", "parameters": [ { "$ref": "#/components/parameters/port" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "capture_settings example": { "value": { "status": "SUCCESS", "msg": { "Port0": "on", "Port_Alias": "Floor3", "Filename": "20200213_144347", "CapDir": "/cifs/capture/records/Port0", "Timestamp": "microsecond", "Cap2Disk": "capture", "IncFile": "on", "SegmentSize": "bysize", "Bytesize": "1000", "Sizeunit": "MB", "compress": "false", "Rotation": "on", "SyncDetect": "false", "Merge_Ports": "off", "Port_Slicing": "", "Filtering_Enable": "off", "Inc_Resume": "0" } } } } } } }, "422": { "description": "FAILED" }, "500": { "description": "ERROR" } } }, "put": { "tags": [ "Capture" ], "summary": "Set capture settings", "description": "Set capture settings such as port status, file naming, directory paths, capture methods, size configurations, compression, rotation, synchronization, and other specific settings related to data capture operations.", "operationId": "set_capture_settings", "parameters": [ { "$ref": "#/components/parameters/port" } ], "requestBody": { "description": "Capture Settings", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptureSettings" } }, "application/xml": { "schema": { "$ref": "#/components/schemas/CaptureSettings" } }, "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/CaptureSettings" } } }, "required": true }, "responses": { "200": { "description": "SUCCESS" }, "422": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/capture_settings_help": { "get": { "tags": [ "Capture" ], "summary": "Get capture settings help information", "description": "Get capture settings help information of parameters that can be set in the capture settings.", "operationId": "capture_settings_help", "parameters": [ { "$ref": "#/components/parameters/port" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "capture_settings example": { "value": { "Port#": { "Description": "Port number. Usually key is Port followed by the number. Example key: Port0. (Note: this is not currently used)", "Type": "str", "Required": "False", "Default": "on", "Enum": [ "on", "off" ], "Notes": "This is not currently used." }, "Port_Alias": { "Description": "Port alias to get capture settings for.", "Type": "str", "Required": "False", "Default": "", "Example": [ "Port 0", "Name of Port 0", "ID of Port 0", "etc" ] }, "CapDir": { "Description": "Directory to store capture files.", "Type": "str", "Required": "True", "Default": "/cifs/capture/records/", "Example": "/cifs/capture/records/Port1", "Notes": "This directory must exist on the system and be writable by the user running the script." }, "Timestamp": { "Description": "Timestamp format to use for capture files.", "Type": "str", "Required": "True", "Default": "nanosecond", "Enum": [ "nanosecond", "microsecond", "millisecond", "second" ] }, "Cap2Disk": { "Description": "Capture to disk setting.", "Type": "str", "Required": "True", "Default": "capture", "Enum": [ "capture", "nocapture" ] }, "IncFile": { "Description": "Increment file name setting.", "Type": "str", "Required": "True", "Default": "on", "Enum": [ "on", "off" ] }, "SegmentSize": { "Description": "Segment size setting.", "Type": "str", "Required": "True", "Default": "bysize", "Enum": [ "bysize", "bytime" ] }, "Bytesize": { "Description": "Bytesize setting.", "Type": "int", "Required": "True", "Default": "1000", "Example": "1000", "Notes": "This is the number of bytes to capture before creating a new file. This is only used if SegmentSize is set to bysize." }, "Sizeunit": { "Description": "Size unit setting.", "Type": "str", "Required": "True", "Default": "MB", "Enum": [ "MB", "GB", "TB", "PB" ], "Notes": "At the moment, MB is the only unit that is supported." }, "compress": { "Description": "Compression setting.", "Type": "str", "Required": "True", "Default": "false", "Enum": [ "true", "false" ] }, "Rotation": { "Description": "Rotation setting.", "Type": "str", "Required": "True", "Default": "on", "Enum": [ "on", "off" ] }, "SyncDetect": { "Description": "Sync detect setting.", "Type": "str", "Required": "True", "Default": "false", "Enum": [ "true", "false" ] }, "Merge_Ports": { "Description": "Merge ports setting.", "Type": "str", "Required": "True", "Default": "off", "Enum": [ "on", "off" ] }, "Filtering_Enable": { "Description": "Filtering enable setting.", "Type": "str", "Required": "True", "Default": "off", "Enum": [ "on", "off" ] }, "Inc_Resume": { "Description": "Increment resume setting.", "Type": "int", "Required": "True", "Default": "0", "Example": "14530", "Notes": "This is the number to start incrementing the file name at. This is only used if IncFile is set to on." } } } } } } } } } }, "/capture/capture_filter_settings": { "get": { "tags": [ "Capture" ], "summary": "Get capture filter settings", "description": "Get capture filter settings such as IP address, port number, protocol, and other specific settings related to virtual capture setting operations.", "operationId": "capture_filter_settings", "parameters": [ { "$ref": "#/components/parameters/port_num_required" }, { "$ref": "#/components/parameters/filter_num" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "capture_filter_settings example": { "value": { "status": "SUCCESS", "msg": { "Filter": "Filter0", "Color": "0", "Priority": "0", "Filtering_Enable": "on", "VLAN_ID": "", "Cap_Unfiltered": "", "IPV4": "192.168.1.180|0|AND|192.168.1.100|0", "IPV6": "", "IP_ALL": "192.168.1.180|0|AND|192.168.1.100|0", "Protocol_Select": "other_port", "Port_Number_Entry": "", "Port_Type": "any", "IP0": "", "IP1": "", "IP2": "", "IP3": "", "IPD0": "", "IPD1": "", "IPD2": "", "IPD3": "", "IP_COND": "", "ALL_TCP": "false", "HTTP": "false", "HTTPS": "false", "TELNET": "false", "SSH": "false", "RSH": "false", "FTP": "false", "SMTP": "false", "POP3": "false", "NNTP": "false", "NNTPS": "false", "IRC": "false", "LDAP": "false", "ALL_UDP": "false", "DNS": "false", "TFTP": "false", "SNTP": "false", "NETBIOS": "false", "NTP": "false", "DHCP": "false", "BOOTP": "false", "GTP_CNTL": "false", "GTP_USER": "false", "GTP_V0U": "false", "GTP_V1U": "false", "GTP_V1V2": "false", "CAP_NAME": "20240627_121351", "CAP_DIR": "", "Inc_Resume": "0", "Custom_Filter": "" } } } } } } }, "422": { "description": "FAILED" }, "500": { "description": "ERROR" } } }, "put": { "tags": [ "Capture" ], "summary": "Set capture filter settings", "description": "Get capture filter settings such as IP address, port number, protocol, and other specific settings related to virtual capture setting operations.", "parameters": [ { "$ref": "#/components/parameters/port_num_required" }, { "$ref": "#/components/parameters/filter_num" } ], "requestBody": { "description": "Capture Settings", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterSettings" } }, "application/xml": { "schema": { "$ref": "#/components/schemas/FilterSettings" } }, "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/FilterSettings" } } }, "required": true }, "responses": { "200": { "description": "SUCCESS" }, "422": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/capture_scheduler": { "get": { "tags": [ "Capture" ], "summary": "Get capture scheduler settings", "description": "Get capture scheduler settings such as port status, start time, and end time.", "operationId": "capture_scheduler", "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "capture_scheduler example": { "value": { "ports": { "0": "on", "1": "on" }, "is_enabled": true, "start_hour": 0, "duration": 1, "current_time": "06/27/2024, 12:31:02 PM", "start_time": "06/28/2024, 12:00:00 AM", "end_time": "06/28/2024, 01:00:00 AM" } } } } } }, "422": { "description": "FAILED" }, "500": { "description": "ERROR" } } }, "put": { "tags": [ "Capture" ], "summary": "Set capture scheduler settings", "description": "Get capture scheduler settings such as port status, start time, and end time.", "parameters": [ { "$ref": "#/components/parameters/ports" }, { "$ref": "#/components/parameters/duration" }, { "$ref": "#/components/parameters/start_hour" } ], "requestBody": { "description": "Capture Settings", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptureScheduler" } }, "application/xml": { "schema": { "$ref": "#/components/schemas/CaptureScheduler" } }, "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/CaptureScheduler" } } }, "required": true }, "responses": { "200": { "description": "SUCCESS" }, "422": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/is_capturing": { "get": { "tags": [ "Capture" ], "summary": "Check if a port is capturing", "description": "Check if a port is capturing. If no port is specified, check all ports. Port must be a valid port number, or 'ALL' for all ports.\n\n_Port parameter is optional._", "operationId": "is_capturing", "parameters": [ { "$ref": "#/components/parameters/port" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "Is_cap example": { "value": { "status": "SUCCESS", "msg": { "0": false, "1": false, "2": false, "3": false, "4": false, "5": false } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } }, "security": [ { "qp_user": [] }, { "api_key": [] } ] } }, "/capture/start_capture": { "post": { "tags": [ "Capture" ], "summary": "Start capturing", "description": "Start capturing. If no port is specified, start capturing on all ports. Port must be a valid port number, or 'ALL' for all ports.\n\n_Port parameter is optional._", "operationId": "start_capture", "parameters": [ { "$ref": "#/components/parameters/port" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "start_capture example": { "value": { "status": "SUCCESS", "msg": { "0": "Capture started on port 0" } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/stop_capture": { "post": { "tags": [ "Capture" ], "summary": "Stop capturing", "description": "Stop capturing. If no port is specified, stop capturing on all ports. Port must be a valid port number, or 'ALL' for all ports.\n\n_Port parameter is optional._", "parameters": [ { "$ref": "#/components/parameters/port" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "stop_capture example": { "value": { "status": "SUCCESS", "msg": { "0": "Capture stopped on port 0" } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/capture_stats": { "get": { "tags": [ "Capture" ], "summary": "Get capture statistics", "description": "Returns the status and network traffic statistics for monitored ports.", "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "capture_stats example": { "value": { "status": "SUCCESS", "msg": { "DATETIME": "01/10/2020 13:25:02", "1": { "PORT_NUM": "1", "RX_BYTES_SEC": "0000000000000000", "RX_PACKETS_SEC": "0000000000000000" }, "0": { "PORT_NUM": "0", "RX_BYTES_SEC": "0000000000000000", "RX_PACKETS_SEC": "0000000000000000" } } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/reset_capture_stats": { "post": { "tags": [ "Capture" ], "summary": "Reset capture statistics", "description": "Reset capture statistics", "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "reset_capture_stats example": { "value": { "status": "SUCCESS", "msg": "Capture stats successfully reset" } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/port_link_state": { "get": { "tags": [ "Capture" ], "summary": "Get capture port link state", "description": "Checking capture link state on all ports", "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "port_link_state example": { "value": { "status": "SUCCESS", "msg": { "0": "up", "1": "up" } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/capture/capture_usage": { "get": { "tags": [ "Capture" ], "summary": "Get capture usage", "description": "Get a log of actions performed on the capture settings and operations for different ports. Each log entry includes a timestamp, an action description, and the user who performed the action.", "parameters": [ { "$ref": "#/components/parameters/tail" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "capture_usage example": { "value": { "status": "SUCCESS", "msg": [ { "timestamp": "Fri May 10 15:53:20 UTC 2024", "action": "Capture SETTINGS EDITING on Port 0 using the GUI by user", "user": "admin" }, { "timestamp": "Fri May 10 15:53:26 UTC 2024", "action": "Capture SETTINGS EDITING on Port 1 using the GUI by user", "user": "admin" }, { "timestamp": "Fri May 10 15:53:26 UTC 2024", "action": "Capture SETTINGS EDITING on Port 1 using the GUI by user", "user": "admin" }, { "timestamp": "Tue 14 May 2024 03:29:03 PM UTC", "action": "Capture STARTED on Port 0 using the CLI", "user": "root" } ] } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/search/packet_search": { "post": { "tags": [ "Search" ], "summary": "Get packet search result", "description": "Get packet search result. BPF, expression, packet slice can be used to filter the search result. The response contains a task_id, which can be passed to the endpoint /request/status to check the status of the search results.", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/PacketSearch" } } } }, "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "packet_search example": { "value": { "status": "SUCCESS", "msg": { "task_id": "e5682203-fb23-4f0e-8b79-1ec4454b823b" } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/search/time_search": { "post": { "tags": [ "Search" ], "summary": "Get time search result", "description": "Get time search result. This endpoint allows users to perform searches within a time_range window starting from the current time of the request and going back time_range seconds from that time. Time range, syntax, expression, port number, packet slice can be used to filter the search result. The response contains a task_id, which can be passed to the endpoint /request/status to check the status of the search results.", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/TimeSearch" } } } }, "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "time_search example": { "value": { "status": "SUCCESS", "msg": { "port": null, "capture_directory": null, "time_range": 1, "args": [ null, "/cifs/capture/permanent/search_results/20240626-113324", 1, "", "udp", 0 ] }, "task_id": "674851e4-eb7c-43f6-858e-4f3489753a1c" } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/search/date_time_search": { "post": { "tags": [ "Search" ], "summary": "Get date and time search result", "description": "Get date and time search result. This endpoint allows users to perform searches based on a specific start time and end time. start time, end time, syntax, expression, port number, packet slice can be used to filter the search result. The response contains a task_id, which can be passed to the endpoint /request/status to check the status of the search results.", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/DateTimeSearch" } } } }, "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "date_time_search example": { "value": { "status": "SUCCESS", "task_id": "37192b0b-7814-4e47-8b24-77b9d1a437e2", "msg": { "port": null, "capture_directory": "/cifs/capture/permanent/date_time_search/", "start_time": "2023-02-03 10:49:00", "end_time": "2023-02-03 10:50:00", "args": [ "/cifs/capture/permanent/date_time_search/", "/cifs/capture/permanent/search_results/20240709-151553", "2023-02-03 10:49:00", "2023-02-03 10:50:00", null, "udp", 0 ] } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/search/directory_search": { "post": { "tags": [ "Search" ], "summary": "Run directory packet search result", "description": "Run packet search for all files in a specified directory. BPF, expression, packet slice can be used to filter the search result. When capture is in progress, the search will be performed on the files that are already captured. The response contains a task_id, which can be passed to the endpoint /request/status to check the status of the search results.", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/DirectorySearch" } } } }, "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "directory_search example": { "value": { "status": "SUCCESS", "msg": "packet search is in progress", "task_id": "f5128ebb-fcef-48ef-acc2-e451a93667ce" } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/file_manager/download_pcap": { "get": { "tags": [ "File Manager" ], "summary": "Download a pcap file", "description": "Download a pcap file under /cifs/capture directory", "operationId": "downloadfile", "parameters": [ { "$ref": "#/components/parameters/filename" } ], "responses": { "200": { "description": "SUCCESS" }, "400": { "description": "ERROR" }, "500": { "description": "ERROR" } } } }, "/file_manager/display_directory": { "get": { "tags": [ "File Manager" ], "summary": "Display capture directories", "description": "Display capture directories. If parameter is empty, display all directories under /records and /permanent", "operationId": "displaydirs", "parameters": [ { "$ref": "#/components/parameters/directory" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "display_directory example": { "value": { "status": "SUCCESS", "msg": [ "/cifs/capture/records/Port0", "/cifs/capture/records/Port1" ] } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/service_manager/get_service_status": { "get": { "tags": [ "Service Manager" ], "summary": "Get a service status", "description": "Get a service status of the input service. service name does not be a full name, it can be a partial name.", "parameters": [ { "$ref": "#/components/parameters/service" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "get_service_status example": { "value": { "status": "SUCCESS", "msg": { "qmanager_api.service": "enabled" } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/service_manager/restart_service": { "post": { "tags": [ "Service Manager" ], "summary": "Restart service", "description": "Restart service. Parameter needs to be a full service name.", "parameters": [ { "$ref": "#/components/parameters/service" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "restart_service example": { "value": { "status": "SUCCESS", "msg": "nfs-server.service restarted" } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/service_manager/enable_service": { "post": { "tags": [ "Service Manager" ], "summary": "Enable service", "description": "Enable service. Parameter needs to be a full service name.", "parameters": [ { "$ref": "#/components/parameters/service" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "enable_service example": { "value": { "status": "SUCCESS", "msg": "nfs-server.service enabled" } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/service_manager/disable_service": { "post": { "tags": [ "Service Manager" ], "summary": "Disable service", "description": "Disable service. Parameter needs to be a full service name.", "parameters": [ { "$ref": "#/components/parameters/service" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "disable_service example": { "value": { "status": "SUCCESS", "msg": "nfs-server.service disabled" } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/service_manager/list_all_services": { "get": { "tags": [ "Service Manager" ], "summary": "List all services", "description": "List all services in the system.", "parameters": [ ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "list_all_services example": { "value": { "status": "SUCCESS", "msg": { "accounts-daemon.service": "enabled", "apache-htcacheclean.service": "disabled", "apache2.service": "enabled" } } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/request/status": { "get": { "tags": [ "Request" ], "summary": "Get a task status", "description": "Get a task status based on the task id passed in the parameter", "parameters": [ { "$ref": "#/components/parameters/task_id" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "system_time example": { "value": { "task": null, "ready": true, "result": { "time": "20240628-134640", "Input Filename": "/cifs/capture/records/Port0/qpapi_1111.pcap", "Output Filename": "/cifs/capture/permanent/qpapi_search.pcap", "BPF Syntax": "src host 172.16.131.10 and src port 8080", "Filter Expressions": "http", "Total Packets Filtered": 31, "Total Packets Processed": 704182, "PCAP File Size": 4026, "Average Packet Size": 113.1, "Packet Filtered": true }, "status": "SUCCESS", "completed_at": "2024-06-28 20:46:40.032663+00:00", "success": true } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } } , }, "security/etc/auth": [ {}{ ], "serversget": { [ { "tags": [ "url": "https://{hostname}:8080/api/v1", "descriptionEtc": "QP server" }, ], { "urlsummary": "http://{hostname}:8080/api/v1",Get an auth id", "description": "QP server" Get an auth id for qpapi", } ], "componentsparameters": [ { "parameters": { { "port": { "name$ref": "port",#/components/parameters/user" "in": "query", } "description": "Port Number"], "requiredresponses": false,{ "schema200": { "typedescription": "stringSUCCESS", "defaultcontent": "ALL",{ "enum": [ "application/json": { "examples": { "auth example": { "value": { "task": null, "ready": true, "result": { "time": "20240628-134640", "Input Filename": "/cifs/capture/records/Port0/qpapi_1111.pcap", "Output Filename": "/cifs/capture/permanent/qpapi_search.pcap", "BPF Syntax": "src host 172.16.131.10 and src port 8080", "Filter Expressions": "http", "Total Packets Filtered": 31, "Total Packets Processed": 704182, "PCAP File Size": 4026, "Average Packet Size": 113.1, "Packet Filtered": true }, "status": "SUCCESS", "completed_at": "2024-06-28 20:46:40.032663+00:00", "success": true } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } }, "/etc/check_auth": { "get": { "tags": [ "Etc" ], "summary": "Check an auth id", "description": "Check an auth id for qpapi", "parameters": [ { "$ref": "#/components/parameters/user" }, { "$ref": "#/components/parameters/subscription_key" } ], "responses": { "200": { "description": "SUCCESS", "content": { "application/json": { "examples": { "check_auth example": { "value": { "task": null, "ready": true, "result": { "time": "20240628-134640", "Input Filename": "/cifs/capture/records/Port0/qpapi_1111.pcap", "Output Filename": "/cifs/capture/permanent/qpapi_search.pcap", "BPF Syntax": "src host 172.16.131.10 and src port 8080", "Filter Expressions": "http", "Total Packets Filtered": 31, "Total Packets Processed": 704182, "PCAP File Size": 4026, "Average Packet Size": 113.1, "Packet Filtered": true }, "status": "SUCCESS", "completed_at": "2024-06-28 20:46:40.032663+00:00", "success": true } } } } } }, "400": { "description": "FAILED" }, "500": { "description": "ERROR" } } } } }, "security": [ {} ], "servers": [ { "url": "https://{hostname}:8080/api/v1", "description": "QP server" }, { "url": "http://{hostname}:8080/api/v1", "description": "QP server" } ], "components": { "parameters": { "port": { "name": "port", "in": "query", "description": "Port Number", "required": false, "schema": { "type": "string", "default": "ALL", "enum": [ "ALL", "0", "1", "2", "3", "4", "5" ] } }, "port_num": { "name": "port", "in": "query", "description": "Port Number", "required": false, "schema": { "type": "integer", "ALLenum",: [ "0", "1", "2", "3", "4", "5" ] } }, "port_num_required": { "name": "port", "in": "query", "description": "Port Number", "required": falsetrue, "schema": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7 ] } }, "port_num_requiredfilename": { "name": "portfilename", "in": "query", "description": "Port NumberFilename", "required": true, "schema": { "type": "integerstring", "enumexample": ["/cifs/capture/permanent/qpapi.pcap" } 0, }, "directory": { 1, 2"name": "directory", 3"in": "query", "description": 4"Directory path", 5"required": true, "schema": { 6, "type": "string", 7 ]"example": "/cifs/capture/permanent/qpapi" } }, "filenameinput_directory": { "name": "filenameinput_directory", "in": "query", "description": "FilenameInput directory path", "required": true, "schema": { "type": "string", "example": "/cifs/capture/permanent/qpapi.pcap" } }, "output_directory": { "name": "output_directory", "in": "query", "description": "DirectoryOutput directory path", "required": true, "schema": { "type": "string", "example": "/cifs/capture/permanent/qpapi" } }, "input_directorysyntax": { "name": "input_directorysyntax", "in": "query", "description": "Input directoryBPF pathsyntax", "required": truefalse, "schema": { "type": "string", "example": "/cifs/capture/permanent/qpapiip host 192.168.1.120" } }, "outputsearch_file_directorycount": { "name": "outputsearch_file_directorycount", "in": "query", "description": "Output directory pathFile counts to search at once", "required": truefalse, "schema": { "type": "stringinteger", "exampledefault": "/cifs/capture/permanent/qpapi" 5, "example": 10 } }, "syntaxexpression": { "name": "syntaxexpression", "in": "query", "description": "BPF syntaxExpression", "required": false, "schema": { "type": "string", "example": "ip host 192.168.1.120password" } }, "search_file_counttail": { "name": "search_file_counttail", "in": "query", "description": "File counts to search at onceTail", "required": false, "schema": { "type": "integer", "default": 510, "example": 105 } }, "expressionloop_replay": { "name": "expressionloop_replay", "in": "query", "description": "ExpressionLoop replay counts", "required": falsetrue, "schema": { "type": "stringinteger", "example": "password"0 } }, "tailservice": { "name": "tailservice", "in": "query", "description": "TailService name", "required": falsetrue, "schema": { "type": "integerstring", "defaultexample": 10, "example": 5"qmanager_api.service" } }, "looptime_replayrange": { "name": "looptime_replayrange", "in": "query", "description": "Loop replay countsTime range for a search", "required": truefalse, "schema": { "type": "integer", "default": 1, "example": 0600 } }, "servicecapture_directory": { "name": "servicecapture_directory", "in": "query", "description": "ServiceInput directory namepath", "required": true, "schema": { "type": "string", "example": "qmanager_api.service/cifs/capture/records/Port0" } }, "timepacket_rangeslice": { "name": "timepacket_rangeslice", "in": "query", "description": "TimePacket range for a searchslice (bytes)", "required": false, "schema": { "type": "integer", "default": 1, "example": 600120 } }, "capturefilter_directorynum": { "name": "capturefilter_directorynum", "in": "query", "description": "InputFilter directory pathnumber", "required": true, "schema": { "type": "stringinteger", "example": "/cifs/capture/records/Port0"0 } }, "packetstart_slicehour": { "name": "packetstart_slicehour", "in": "query", "description": "Packet sliceTime to start capturing (bytesmilitary time)", "required": falsetrue, "schema": { "type": "integer", "example": 12022 } }, "filter_numduration": { "name": "filter_numduration", "in": "query", "description": "FilterCapture numberduration", "required": true, "schema": { "type": "integer", "example": 01 } }, "start_hourports": { "name": "start_hourports", "in": "query", "description": "Time to start capturing (military time)Ports", "required": true, "schema": { "type": "integer", "example": 220 } }, "durationtask_id": { "name": "durationtask_id", "in": "query", "description": "CaptureTask durationID", "required": true, "schema": { "type": "integerstring", "example": 1"e2e9ba08-c88c-4d47-b9ca-c01257d5ff80" } }, "portsuser": { "name": "portsuser", "in": "query", "description": "PortsUser name", "required": true, "schema": { "type": "integerstring", "example": 0"admin" } }, "tasksubscription_idkey": { "name": "tasksubscription_idkey", "in": "query", "description": "TaskSubscription IDkey", "required": true, "schema": { "type": "string", "example": "e2e9ba08-c88c-4d47-b9ca-c01257d5ff80eyJhciOiJIUzR5cCI6VCJ9.eyJ1c2VWRtaW4iLW4iLCJpYXQiO1ODA5NTV9.KjMOhT1" } } }, "schemas": { "CaptureSettings": { "type": "object", "properties": { "Filename": { "type": "string" }, "CapDir": { "type": "string" }, "Timestamp": { "enum": [ "µs", "ns" ] }, "Cap2Disk": { "type": "string" }, "IncFile": { "enum": [ "on", "off" ] }, "Compression": { "enum": [ "on", "off" ] }, "Rotation": { "enum": [ "on", "off" ] }, "SegmentSize": { "type": "string", "enum": [ "10SEC", "15SEC", "30SEC", "1MIN", "2MIN", "3MIN", "5MIN", "10MIN", "20MIN", "30MIN", 10000, 100000, 1000000, 2000000, 10000000, "bysize" ] } } }, "CaptureScheduler": { "type": "object", "properties": { "ports": { "type": "object", "example": { "0": "off", "1": "off" } }, "is_enabled": { "type": "boolean", "enum": [ true, false ] }, "start_hour": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ] }, "duration": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ] }, "current_time": { "type": "string", "example": "06/27/2024, 11:57:57 AM" }, "start_time": { "type": "string", "example": "06/28/2024, 10:00:00 AM" }, "end_time": { "type": "string", "example": "06/28/2024, 11:00:00 AM" } } }, "FilterSettings": { "type": "object", "properties": { "Filter": { "type": "string", "description": "filter numbers are different depending on the QP series", "example": "Filter0" }, "Color": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7 ] }, "Priority": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7 ] }, "Filtering_Enable": { "enum": [ "on", "" ] }, "VLAN_ID": { "type": "integer", "example": 21 }, "Cap_Unfiltered": { "enum": [ "on", "" ] }, "IPV4": { "type": "string", "example src ip": "192.168.1.100|-|-", "example dst ip": "-|-|192.168.1.100", "example src ip or dst ip": "192.168.1.100|0|OR|192.168.1.134|0", "example src ip and dst ip": "192.168.1.100|0|AND|192.168.1.134|0", "example src ip or dst ip with cidr": "192.168.1.100|24|OR|192.168.1.134|24", "example src ip and dst ip with cidr": "192.168.1.100|24|AND|192.168.1.134|24" }, "IPV6": { "type": "string", "example": "2001:db8:3333:4444:5555:6666:7777:8888|-|-" }, "IP_ALL": { "type": "string" }, "Protocol_Select": { "type": "string", "enum": [ "tcp", "udp", "other_port" ] }, "Port_Number_Entry": { "type": "integer", "example": 80 }, "Port_Type": { "type": "string", "enum": [ "tcp", "udp", "any" ] }, "IP0": { "type": "string" }, "IP1": { "type": "string" }, "IP2": { "type": "string" }, "IP3": { "type": "string" }, "IPD0": { "type": "string" }, "IPD1": { "type": "string" }, "IPD2": { "type": "string" }, "IPD3": { "type": "string" }, "IP_COND": { "type": "string" }, "ALL_TCP": { "type": "boolean", "enum": [ true, false ] }, "HTTP": { "type": "boolean", "enum": [ true, false ] }, "HTTPS": { "type": "boolean", "enum": [ true, false ] }, "TELNET": { "type": "boolean", "enum": [ true, false ] }, "SSH": { "type": "boolean", "enum": [ true, false ] }, "RSH": { "type": "boolean", "enum": [ true, false ] }, "FTP": { "type": "boolean", "enum": [ true, false ] }, "SMTP": { "type": "boolean", "enum": [ true, false ] }, "POP3": { "type": "boolean", "enum": [ true, false ] }, "NNTP": { "type": "boolean", "enum": [ true, false ] }, "NNTPS": { "type": "boolean", "enum": [ true, false ] }, "IRC": { "type": "boolean", "enum": [ true, false ] }, "LDAP": { "type": "boolean", "enum": [ true, false ] }, "ALL_UDP": { "type": "boolean", "enum": [ true, false ] }, "DNS": { "type": "boolean", "enum": [ true, false ] }, "TFTP": { "type": "boolean", "enum": [ true, false ] }, "SNTP": { "type": "boolean", "enum": [ true, false ] }, "NETBIOS": { "type": "boolean", "enum": [ true, false ] }, "NTP": { "type": "boolean", "enum": [ true, false ] }, "DHCP": { "type": "boolean", "enum": [ true, false ] }, "BOOTP": { "type": "boolean", "enum": [ true, false ] }, "GTP_CNTL": { "type": "boolean", "enum": [ true, false ] }, "GTP_USER": { "type": "boolean", "enum": [ true, false ] }, "GTP_V0U": { "type": "boolean", "enum": [ true, false ] }, "GTP_V1U": { "type": "boolean", "enum": [ true, false ] }, "GTP_V1V2": { "type": "boolean", "enum": [ true, false ] }, "CAP_NAME": { "type": "boolean", "enum": [ true, false ] }, "CAP_DIR": { "type": "string", "example": "/cifs/capture/permanent/qpapi" }, "Inc_Resume": { "type": "string" }, "Custom_Filter": { "type": "string" } } }, "InputOutputDir": { "type": "object", "properties": { "input_directory": { "type": "string", "description": "Path to the input directory", "example": "/cifs/capture/permanent/qpapi_1" }, "output_directory": { "type": "string", "description": "Path to the output directory", "example": "/cifs/capture/permanent/qpapi_2" } } }, "TimeSearch": { "type": "object", "properties": { "port": { "type": "integer", "description": "Select the port if the capture is in progress", "example": 0 }, "capture_directory": { "type": "string", "description": "Path to the capture directory", "example": "/cifs/capture/records/Port0" }, "time_range": { "type": "integer", "description": "Time range for a search (sec). Default is 1 second", "default": 1, "example": 600 }, "expression": { "type": "string", "description": "Expression", "example": "password" }, "syntax": { "type": "string", "description": "BPF syntax", "example": "src host 192.168.1.122" }, "packet_slice": { "type": "integer", "description": "Packet slice (bytes)", "example": 120 }, "inline_txt": { "type": "string", "description": "Path to the inline text file", "example": "/data/mgr/html/filterfile_upload/qpapi.txt" }, "output_filename": { "type": "string", "description": "Name of output merged pcap filename", "example": "port0.pcap" }, "vxlan": { "type": "boolean", "description": "VXLAN is true or false", "example": "true" }, "vxlanid": { "type": "integer", "description": "VXLAN ID", "example": 1234 }, "vlan": { "type": "boolean", "description": "VLAN is true or false", "example": "true" }, "vlanid": { "type": "integer", "description": "VLAN ID", "example": 21 } } }, "DateTimeSearch": { "type": "object", "properties": { "port": { "type": "integer", "description": "Select the port if the capture is in progress", "example": 0 }, "capture_directory": { "type": "string", "description": "Path to the capture directory", "example": "/cifs/capture/records/Port0" }, "start_time": { "type": "string", "description": "Start time. Valid format is YYYY-MM-DD HH:MM:SS (2023-07-04 14:30:00), YYYY/MM/DD HH:MM:SS (2023/07/04 14:30:00), YYYYMMDD HHMMSS (20230704 143000), YYYY-MM-DDTHH:MM:SS (2023-07-04T14:30:00), YYYYMMDDTHHMMSS (20230704T143000), YYY-MM-DD (2023-07-04), YYYY/MM/DD (2023/07/04), YYYYMMDD (20230704)", "example": "2023-07-04 14:30:00" }, "end_time": { "type": "string", "description": "End time. Valid format is YYYY-MM-DD HH:MM:SS (2023-07-04 14:30:00), YYYY/MM/DD HH:MM:SS (2023/07/04 14:30:00), YYYYMMDD HHMMSS (20230704 143000), YYYY-MM-DDTHH:MM:SS (2023-07-04T14:30:00), YYYYMMDDTHHMMSS (20230704T143000), YYY-MM-DD (2023-07-04), YYYY/MM/DD (2023/07/04), YYYYMMDD (20230704)", "example": "2023-07-04 15:30:00" }, "expression": { "type": "string", "description": "Expression", "example": "password" }, "syntax": { "type": "string", "description": "BPF syntax", "example": "src host 192.168.1.122" }, "packet_slice": { "type": "integer", "description": "Packet slice (bytes)", "example": 120 }, "inline_txt": { "type": "string", "description": "Path to the inline text file", "example": "/data/mgr/html/filterfile_upload/qpapi.txt" }, "output_filename": { "type": "string", "description": "Name of output merged pcap filename", "example": "port0.pcap" }, "vxlan": { "type": "boolean", "description": "VXLAN is true or false", "example": "true" }, "vxlanid": { "type": "integer", "description": "VXLAN ID", "example": 1234 }, "vlan": { "type": "boolean", "description": "VLAN is true or false", "example": "true" }, "vlanid": { "type": "integer", "description": "VLAN ID", "example": 21 } } }, "DirectorySearch": { "type": "object", "properties": { "port": { "type": "integer", "description": "Select the port if the capture is in progress", "example": 0 }, "capture_directory": { "type": "string", "description": "Path to the input directory", "example": "/cifs/capture/records/Port0" }, "expression": { "type": "string", "description": "Expression", "example": "password" }, "syntax": { "type": "string", "description": "BPF syntax", "example": "src host 192.168.1.122" }, "packet_slice": { "type": "integer", "description": "Packet slice (bytes)", "example": 120 }, "inline_txt": { "type": "string", "description": "Path to the inline text file", "example": "/data/mgr/html/filterfile_upload/qpapi.txt" }, "output_filename": { "type": "string", "description": "Name of output merged pcap filename", "example": "port0.pcap" }, "vxlan": { "type": "boolean", "description": "VXLAN is true or false", "example": "true" }, "vxlanid": { "type": "integer", "description": "VXLAN ID", "example": 1234 }, "vlan": { "type": "boolean", "description": "VLAN is true or false", "example": "true" }, "vlanid": { "type": "integer", "description": "VLAN ID", "example": 21 } } }, "PacketSearch": { "type": "object", "properties": { "filename": { "type": "string", "description": "Path to the filename", "example": "/cifs/capture/records/Port0/qpapi_1111.pcap" }, "expression": { "type": "string", "description": "Expression", "example": "password" }, "syntax": { "type": "string", "description": "BPF syntax", "example": "src host 192.168.1.122" }, "packet_slice": { "type": "integer", "description": "Packet slice (bytes)", "example": 120 }, "inline_txt": { "type": "string", "description": "Path to the inline text file", "example": "/data/mgr/html/filterfile_upload/qpapi.txt" } } } }, "securitySchemes": { "qp_user": { "type": "http", "scheme": "bearer", "bearerFormat": "TODO FINISH THIS" }, "api_key": { "type": "apiKey", "description": "API key needed to access the endpoints", "name": "api_key", "in": "header" } } } } |
Page Comparison
General
Content
Integrations