Overview
Overview
The documentation pages in this section describe the RESTful APIs included with Gateway products. It is assumed that the reader has practical knowledge of RESTful APIs, so the documentation does not go into detail about what REST is and how to use it. Instead the documentation focuses on what data can be accessed and how to access it.
The following information can be accessed via the API:
- Perform System operations
- Information about system users
Details about REST resources can be found in the Resources section. This overview continues with how to run reports and retrieve data from them.
Authentication
All REST requests must be authenticated. The Authentication section of the Common 1.0 API describes which authentication methods are presently supported. There are also examples that show how to use each of the different authentication methods.
Resources
Flow_Sources: List flow sources
Get a list of flow sources.
GET https://{device}/api/gateway/1.5/flow_sourcesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "flows_arrived_last_hr": number, "peak_flows_arrived_last_hr": number, "last_min_arrived_timestamp": number, "timeslice_violation": string, "status": string, "peak_flows_arrived_last_day": number, "peak_bits_arrived_last_day": number, "flows_arrived_last_day": number, "peak_flows_arrived_last_min": number, "flows_received_last_min": number, "last_min": number, "ipaddr": string, "name": string, "versions": string, "flow_type": string, "flows_arrived_last_min": number, "peak_bytes_arrived_last_day": number } ] Example: [ { "status": "N/A", "flows_arrived_last_hr": 1827, "name": "N/A", "versions": "9.2", "peak_flows_arrived_last_min": 30, "peak_flows_arrived_last_day": 203, "ipaddr": "10.1.11.175", "last_min": 1703111220, "flows_received_last_min": 22, "last_min_arrived_timestamp": 1703111040, "flow_type": "Riverbed SteelFlow", "flows_arrived_last_min": 68, "peak_bits_arrived_last_day": 68992, "timeslice_violation": "false", "flows_arrived_last_day": 82785, "peak_bytes_arrived_last_day": 18668, "peak_flows_arrived_last_hr": 88 }, { "status": "N/A", "flows_arrived_last_hr": 21502156, "name": "N/A", "versions": "1.0", "peak_flows_arrived_last_min": 65770, "peak_flows_arrived_last_day": 762187, "ipaddr": "10.44.67.83", "last_min": 1703111220, "flows_received_last_min": 432645, "last_min_arrived_timestamp": 1703111040, "flow_type": "AWS VPC Flow Exporter", "flows_arrived_last_min": 415374, "peak_bits_arrived_last_day": 44667040, "flows_arrived_last_day": 561798344, "peak_bytes_arrived_last_day": 40646852, "peak_flows_arrived_last_hr": 528396 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
GatewayStatsFlowSources | <array of <object>> | List of flow sources. | |
GatewayStatsFlowSources [GatewayStatsFlowSource] |
<object> | Flow source. | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. flows_arrived_last_hr |
<number> | All Flows arrived at FlowGateway last hour(last 60 minutes). | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. peak_flows_arrived_last_hr |
<number> | Max number of flows arrived at FlowGateway any minute in the last hour(last 60 minutes). | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. last_min_arrived_timestamp |
<number> | Timestamp for stats arrived last minute. | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. timeslice_violation |
<string> | Timeslice violation. | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource].status |
<string> | Flow source status. | |
GatewayStatsFlowSources [GatewayStatsFlowSource]. peak_flows_arrived_last_day |
<number> | Max number of flows arrived at FlowGateway any minute in the last day(last 24*60 minutes). | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. peak_bits_arrived_last_day |
<number> | Max number of bits arrived at FlowGateway any second in the last day(last 24*60 minutes). | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. flows_arrived_last_day |
<number> | All Flows arrived at FlowGateway last day(last 24*60 minutes). | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. peak_flows_arrived_last_min |
<number> | Max number of flows arrived at FlowGateway any second in the last minute where time window snapped to minute boundary. | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. flows_received_last_min |
<number> | Flows received (last minute). | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource].last_min |
<number> | Last heard from. | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource].ipaddr |
<string> | IP address. | |
GatewayStatsFlowSources [GatewayStatsFlowSource].name |
<string> | Device name. | |
GatewayStatsFlowSources [GatewayStatsFlowSource].versions |
<string> | Versions. | |
GatewayStatsFlowSources [GatewayStatsFlowSource].flow_type |
<string> | Flow type. | |
GatewayStatsFlowSources [GatewayStatsFlowSource]. flows_arrived_last_min |
<number> | All Flows arrived at FlowGateway last minute where time window snapped to minute boundary. | Optional |
GatewayStatsFlowSources [GatewayStatsFlowSource]. peak_bytes_arrived_last_day |
<number> | Max number of bytes arrived at FlowGateway any minute in the last day(last 24*60 minutes). | Optional |
Flow_Sources: Get flow source
Get a flow source by IP Address.
GET https://{device}/api/gateway/1.5/flow_sources/{ipaddr}Authorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
{ "flows_arrived_last_hr": number, "peak_flows_arrived_last_hr": number, "last_min_arrived_timestamp": number, "timeslice_violation": string, "status": string, "peak_flows_arrived_last_day": number, "peak_bits_arrived_last_day": number, "flows_arrived_last_day": number, "peak_flows_arrived_last_min": number, "flows_received_last_min": number, "last_min": number, "ipaddr": string, "name": string, "versions": string, "flow_type": string, "flows_arrived_last_min": number, "peak_bytes_arrived_last_day": number } Example: { "status": "N/A", "name": "N/A", "versions": "9.2", "ipaddr": "10.32.1.41", "last_min": 1392392760, "flows_received_last_min": 962, "flow_type": "NetFlow" }
Property Name | Type | Description | Notes |
---|---|---|---|
GatewayStatsFlowSource | <object> | Flow source. | |
GatewayStatsFlowSource. flows_arrived_last_hr |
<number> | All Flows arrived at FlowGateway last hour(last 60 minutes). | Optional |
GatewayStatsFlowSource. peak_flows_arrived_last_hr |
<number> | Max number of flows arrived at FlowGateway any minute in the last hour(last 60 minutes). | Optional |
GatewayStatsFlowSource. last_min_arrived_timestamp |
<number> | Timestamp for stats arrived last minute. | Optional |
GatewayStatsFlowSource. timeslice_violation |
<string> | Timeslice violation. | Optional |
GatewayStatsFlowSource.status | <string> | Flow source status. | |
GatewayStatsFlowSource. peak_flows_arrived_last_day |
<number> | Max number of flows arrived at FlowGateway any minute in the last day(last 24*60 minutes). | Optional |
GatewayStatsFlowSource. peak_bits_arrived_last_day |
<number> | Max number of bits arrived at FlowGateway any second in the last day(last 24*60 minutes). | Optional |
GatewayStatsFlowSource. flows_arrived_last_day |
<number> | All Flows arrived at FlowGateway last day(last 24*60 minutes). | Optional |
GatewayStatsFlowSource. peak_flows_arrived_last_min |
<number> | Max number of flows arrived at FlowGateway any second in the last minute where time window snapped to minute boundary. | Optional |
GatewayStatsFlowSource. flows_received_last_min |
<number> | Flows received (last minute). | Optional |
GatewayStatsFlowSource.last_min | <number> | Last heard from. | Optional |
GatewayStatsFlowSource.ipaddr | <string> | IP address. | |
GatewayStatsFlowSource.name | <string> | Device name. | |
GatewayStatsFlowSource.versions | <string> | Versions. | |
GatewayStatsFlowSource.flow_type | <string> | Flow type. | |
GatewayStatsFlowSource. flows_arrived_last_min |
<number> | All Flows arrived at FlowGateway last minute where time window snapped to minute boundary. | Optional |
GatewayStatsFlowSource. peak_bytes_arrived_last_day |
<number> | Max number of bytes arrived at FlowGateway any minute in the last day(last 24*60 minutes). | Optional |
Flow_Sources: Delete flow source
Delete a flow source by IP Address.
DELETE https://{device}/api/gateway/1.5/flow_sources/{ipaddr}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Ping: Ping
Simple test of service availability.
GET https://{device}/api/gateway/1.5/pingAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
System: Start all processes (one module)
Start all system processes on one module on Enterprise systems. The operation is asynchronous. Use "GET system/{module}/status" to poll for status. The {module} can be either the IP Address or the module name.
POST https://{device}/api/gateway/1.5/system/{module}/startAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Get status of all processes
Get status of all system processes. On Enterprise systems, get system process statuses on all modules.
GET https://{device}/api/gateway/1.5/system/statusAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "process_id": string, "process_name": string, "module_name": string, "status": string, "module_ipaddr": string } ] Example: [ { "process_id": "25096", "process_name": "memmonitor", "status": "Running" }, { "process_name": "healthd", "status": "Stopped" }, { "process_id": "25092", "process_name": "diskmon", "status": "Running" }, { "process_id": "25123", "process_name": "dispatcher", "status": "Running" }, { "process_name": "analyzer", "status": "Stopped" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
SystemStatus | <array of <object>> | SystemStatus object. | |
SystemStatus[SystemProcess] | <object> | SystemProcess object. | Optional |
SystemStatus[SystemProcess].process_id | <string> | Process ID. | Optional |
SystemStatus[SystemProcess].process_name | <string> | Process name. | |
SystemStatus[SystemProcess].module_name | <string> | Module name. Available on Enterprise systems only. | Optional |
SystemStatus[SystemProcess].status | <string> | Process status. | Values: Running, Stopped |
SystemStatus[SystemProcess]. module_ipaddr |
<string> | Module IP address. Available on Enterprise systems only. | Optional |
System: Kill all processes
Kill all system processes. The operation is asynchronous. Use "GET system/status" to poll for status. On Enterprise systems, kill system processes on all modules. Warning: this operation can result in data being corrupted.
POST https://{device}/api/gateway/1.5/system/killAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Restart all processes
Restart all system processes. The operation is asynchronous. Use "GET system/status" to poll for status. On Enterprise systems, stop system processes on all modules.
POST https://{device}/api/gateway/1.5/system/restartAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Start all processes
Start all system processes. The operation is asynchronous. Use "GET system/status" to poll for status. On Enterprise systems, start system processes on all modules.
POST https://{device}/api/gateway/1.5/system/startAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Restart all processes (one module)
Restart all system processes on one module on Enterprise systems. The operation is asynchronous. Use "GET system/{module}/status" to poll for status. The {module} can be either the IP Address or the module name.
POST https://{device}/api/gateway/1.5/system/{module}/restartAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Stop all processes (one module)
Stop all system processes on one module on Enterprise systems. The operation is asynchronous. Use "GET system/{module}/status" to poll for status. The {module} can be either the IP Address or the module name.
POST https://{device}/api/gateway/1.5/system/{module}/stopAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Get status of all processes (one module)
Get status of all system processes on one module on Enterprise systems. The {module} can be either the IP Address or the module name.
GET https://{device}/api/gateway/1.5/system/{module}/statusAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "process_id": string, "process_name": string, "module_name": string, "status": string, "module_ipaddr": string } ] Example: [ { "process_id": "25096", "process_name": "memmonitor", "status": "Running" }, { "process_name": "healthd", "status": "Stopped" }, { "process_id": "25092", "process_name": "diskmon", "status": "Running" }, { "process_id": "25123", "process_name": "dispatcher", "status": "Running" }, { "process_name": "analyzer", "status": "Stopped" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
SystemStatus | <array of <object>> | SystemStatus object. | |
SystemStatus[SystemProcess] | <object> | SystemProcess object. | Optional |
SystemStatus[SystemProcess].process_id | <string> | Process ID. | Optional |
SystemStatus[SystemProcess].process_name | <string> | Process name. | |
SystemStatus[SystemProcess].module_name | <string> | Module name. Available on Enterprise systems only. | Optional |
SystemStatus[SystemProcess].status | <string> | Process status. | Values: Running, Stopped |
SystemStatus[SystemProcess]. module_ipaddr |
<string> | Module IP address. Available on Enterprise systems only. | Optional |
System: Shutdown
Shutdown the system. The operation is asynchronous.
POST https://{device}/api/gateway/1.5/system/shutdownAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Reboot
Reboot the system. The operation is asynchronous.
POST https://{device}/api/gateway/1.5/system/rebootAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Stop all processes
Stop all system processes. The operation is asynchronous. Use "GET system/status" to poll for status. On Enterprise systems, stop system processes on all modules.
POST https://{device}/api/gateway/1.5/system/stopAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
System: Kill all processes (one module)
Kill all system processes on one module on Enterprise systems. The operation is asynchronous. Use "GET system/{module}/status" to poll for status. The {module} can be either the IP Address or the module name. Warning: this operation can result in data being corrupted.
POST https://{device}/api/gateway/1.5/system/{module}/killAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
Stats: Get Gateway statistics
Get Gateway statistics.
GET https://{device}/api/gateway/1.5/statsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
{ "flow_sources": [ { "flows_arrived_last_hr": number, "peak_flows_arrived_last_hr": number, "last_min_arrived_timestamp": number, "timeslice_violation": string, "status": string, "peak_flows_arrived_last_day": number, "peak_bits_arrived_last_day": number, "flows_arrived_last_day": number, "peak_flows_arrived_last_min": number, "flows_received_last_min": number, "last_min": number, "ipaddr": string, "name": string, "versions": string, "flow_type": string, "flows_arrived_last_min": number, "peak_bytes_arrived_last_day": number } ], "overflow_limit": number, "capacity": number, "stat_timespan": number, "profilers": [ { "overflows_last_min": number, "capacity": number, "status": string, "flows_received_last_min": number, "last_min": number, "ipaddr": string, "flows_sent_last_min": number, "name": string } ], "raw_flows_received_last_min": number, "status": string, "flows_received_last_min": number, "last_min": number, "name": string, "peak_flows_received": number, "avg_flows_received": number, "flow_destinations": [ { "port": number, "overwrite_source_address": string, "ipaddr": string, "flows_sent_last_min": number, "flow_type": string } ] } Example: { "status": "up", "raw_flows_received_last_min": 19908, "capacity": 16777216, "name": "gateway1", "stat_timespan": 604800, "last_min": 1392393198, "profilers": [ { "status": "up", "flows_sent_last_min": 0, "capacity": 0, "name": "NetProfiler", "ipaddr": "10.38.1.17", "last_min": 1392333168, "flows_received_last_min": 0 } ], "flows_received_last_min": 0, "peak_flows_received": 4194304, "flow_sources": [ { "status": "N/A", "name": "N/A", "versions": "9.2", "ipaddr": "10.32.1.41", "last_min": 1392392760, "flows_received_last_min": 962, "flow_type": "NetFlow" }, { "status": "up", "name": "cam-qaesx24-1.lab.nbttech.com.", "versions": "9(S8.4)", "ipaddr": "10.38.128.36", "last_min": 1450732819, "flows_received_last_min": 100000, "flow_type": "Riverbed SteelFlow" } ], "avg_flows_received": 2097152, "flow_destinations": [ { "overwrite_source_address": "no", "flows_sent_last_min": 15903, "ipaddr": "10.38.1.24", "port": 2055, "flow_type": "NetFlow" } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
GatewayStats | <object> | Gateway statistics. | |
GatewayStats.flow_sources | <array of <object>> | List of flow sources. | |
GatewayStats.flow_sources [GatewayStatsFlowSource] |
<object> | Flow source. | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. flows_arrived_last_hr |
<number> | All Flows arrived at FlowGateway last hour(last 60 minutes). | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. peak_flows_arrived_last_hr |
<number> | Max number of flows arrived at FlowGateway any minute in the last hour(last 60 minutes). | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. last_min_arrived_timestamp |
<number> | Timestamp for stats arrived last minute. | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. timeslice_violation |
<string> | Timeslice violation. | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource].status |
<string> | Flow source status. | |
GatewayStats.flow_sources [GatewayStatsFlowSource]. peak_flows_arrived_last_day |
<number> | Max number of flows arrived at FlowGateway any minute in the last day(last 24*60 minutes). | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. peak_bits_arrived_last_day |
<number> | Max number of bits arrived at FlowGateway any second in the last day(last 24*60 minutes). | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. flows_arrived_last_day |
<number> | All Flows arrived at FlowGateway last day(last 24*60 minutes). | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. peak_flows_arrived_last_min |
<number> | Max number of flows arrived at FlowGateway any second in the last minute where time window snapped to minute boundary. | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. flows_received_last_min |
<number> | Flows received (last minute). | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource].last_min |
<number> | Last heard from. | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource].ipaddr |
<string> | IP address. | |
GatewayStats.flow_sources [GatewayStatsFlowSource].name |
<string> | Device name. | |
GatewayStats.flow_sources [GatewayStatsFlowSource].versions |
<string> | Versions. | |
GatewayStats.flow_sources [GatewayStatsFlowSource].flow_type |
<string> | Flow type. | |
GatewayStats.flow_sources [GatewayStatsFlowSource]. flows_arrived_last_min |
<number> | All Flows arrived at FlowGateway last minute where time window snapped to minute boundary. | Optional |
GatewayStats.flow_sources [GatewayStatsFlowSource]. peak_bytes_arrived_last_day |
<number> | Max number of bytes arrived at FlowGateway any minute in the last day(last 24*60 minutes). | Optional |
GatewayStats.overflow_limit | <number> | Overflow limit of the gateway. | Optional |
GatewayStats.capacity | <number> | Licensed flow capacity post de-duplication (per minute). | Optional |
GatewayStats.stat_timespan | <number> | Timespan for computing average and peak values. | |
GatewayStats.profilers | <array of <object>> | List of Profilers. | |
GatewayStats.profilers [GatewayStatsProfiler] |
<object> | Profiler information. | Optional |
GatewayStats.profilers [GatewayStatsProfiler]. overflows_last_min |
<number> | Number of dropped flow (last minute). | Optional |
GatewayStats.profilers [GatewayStatsProfiler].capacity |
<number> | Licensed flow capacity post de-duplication (per minute). | Optional |
GatewayStats.profilers [GatewayStatsProfiler].status |
<string> | Current Profiler status. | |
GatewayStats.profilers [GatewayStatsProfiler]. flows_received_last_min |
<number> | Number of de-duplicated flows received (last minute). | Optional |
GatewayStats.profilers [GatewayStatsProfiler].last_min |
<number> | Last minute timestamp. | Optional |
GatewayStats.profilers [GatewayStatsProfiler].ipaddr |
<string> | IP address. | |
GatewayStats.profilers [GatewayStatsProfiler]. flows_sent_last_min |
<number> | Number of flows sent (last minute). | Optional |
GatewayStats.profilers [GatewayStatsProfiler].name |
<string> | Name. | |
GatewayStats.raw_flows_received_last_min | <number> | Number of raw flows received (last minute). | Optional |
GatewayStats.status | <string> | Gateway current status. | |
GatewayStats.flows_received_last_min | <number> | Number of de-duplicated flows received (last minute). | Optional |
GatewayStats.last_min | <number> | Timestamp of the statistics data. | Optional |
GatewayStats.name | <string> | Gateway name. | |
GatewayStats.peak_flows_received | <number> | Peak number of de-duplicated flows received during the timespan (per minute). | Optional |
GatewayStats.avg_flows_received | <number> | Average number of de-duplicated flows received during the timespan (per minute). | Optional |
GatewayStats.flow_destinations | <array of <object>> | List of flow destinations. | |
GatewayStats.flow_destinations [GatewayStatsFlowDestination] |
<object> | Flow destination. | Optional |
GatewayStats.flow_destinations [GatewayStatsFlowDestination].port |
<number> | Port. | |
GatewayStats.flow_destinations [GatewayStatsFlowDestination]. overwrite_source_address |
<string> | Overwrite source address. | |
GatewayStats.flow_destinations [GatewayStatsFlowDestination].ipaddr |
<string> | IP address. | |
GatewayStats.flow_destinations [GatewayStatsFlowDestination]. flows_sent_last_min |
<number> | Number of flows (packets for sFlow) sent (last minute). | Optional |
GatewayStats.flow_destinations [GatewayStatsFlowDestination]. flow_type |
<string> | Flow type. |
Users: List users
Get a list of user accounts.
GET https://{device}/api/gateway/1.5/users?filter={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
filter | <string> | [Missing resource 'GET:/api/gateway/1.5/users?filter' in bundle 'rest_info'] | Optional |
On success, the server returns a response body with the following structure:
- JSON
[ { "enabled": string, "last_name": string, "id": number, "last_login": number, "authentication_type": string, "username": string, "authorization_type": string, "role": string, "first_name": string, "edit_dashboards": string, "traffic_filter": string, "last_access": number, "view_packet_details": string, "last_authentication": number, "auto_resolution": string, "view_user_information": string, "login_timeout": number } ] Example: [ { "last_authentication": 1352313328, "first_name": "Jonh", "last_name": "Smith", "authorization_type": "Local", "username": "admin", "enabled": true, "view_user_information": true, "authentication_type": "Local", "last_login": 1352313328, "login_timeout": 900, "role": "Administrator", "last_access": 1352313328, "id": 123 }, { "last_authentication": 1352313328, "first_name": "Mark", "last_name": "Greg", "authorization_type": "Local", "username": "admin2", "enabled": true, "view_user_information": true, "authentication_type": "Local", "last_login": 1352313328, "login_timeout": 900, "role": "Administrator", "last_access": 1352313328, "id": 124 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
Users | <array of <object>> | List of user accounts on the system. | |
Users[User] | <object> | User account. | Optional |
Users[User].enabled | <string> | Boolean flag indicating if the user account is enabled. | |
Users[User].last_name | <string> | Last name of the user. | |
Users[User].id | <number> | Numeric ID of the user that the system uses internally and in the API. | |
Users[User].last_login | <number> | Time of last login. Unix time (epoch). | |
Users[User].authentication_type | <string> | Type of authentication for the user, such as Local or RADIUS. | Values: Local, Remote, SAML |
Users[User].username | <string> | User name (short name) that identifies the user to the system, such as 'admin'. | |
Users[User].authorization_type | <string> | Type of authorization for the user, such as Local or RADIUS. | Values: Local, Remote |
Users[User].role | <string> | Role of the user. Defines permissions. | Values: Developer, Administrator, Operator, Monitor, Event_Viewer, Dashboard_Viewer, Restricted, Shared_Link_Viewer |
Users[User].first_name | <string> | First name of the user. | |
Users[User].edit_dashboards | <string> | Boolean flag indicating if the user has permission to administrate dashboards. | Optional |
Users[User].traffic_filter | <string> | Traffic expression. Only applicable to Restricted role. | Optional |
Users[User].last_access | <number> | Time of last access to the system. Unix time (epoch). | |
Users[User].view_packet_details | <string> | Boolean flag indicating if the user has access to packet data. | Optional |
Users[User].last_authentication | <number> | Time of last authentication. Unix time (epoch). | |
Users[User].auto_resolution | <string> | Force to use auto resolution. Only applicable to Restricted role. | Optional |
Users[User].view_user_information | <string> | Boolean flag indicating if the user has access to identity information, such as Active Directory information. | Optional |
Users[User].login_timeout | <number> | Timeout (in seconds) during which the user cannot log in to the system because of security policies. |
Users: [Missing resource 'DELETE:/api/gateway/1.5/users/{user_id}' in bundle 'rest_short_info']
[Missing resource 'DELETE:/api/gateway/1.5/users/{user_id}' in bundle 'rest_info']
DELETE https://{device}/api/gateway/1.5/users/{user_id}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Users: [Missing resource 'PUT:/api/gateway/1.5/users/{user_id}' in bundle 'rest_short_info']
[Missing resource 'PUT:/api/gateway/1.5/users/{user_id}' in bundle 'rest_info']
PUT https://{device}/api/gateway/1.5/users/{user_id}Authorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "last_name": string, "new_password": { "cleartext": string }, "role": string, "first_name": string, "edit_dashboards": string, "traffic_filter": string, "view_packet_details": string, "strict_password_exempt": string, "auto_resolution": string, "view_user_information": string } Example: { "first_name": "Jonh", "last_name": "Smith", "new_password": { "cleartext": "mypassword" }, "role": "Administrator" }
Property Name | Type | Description | Notes |
---|---|---|---|
UserUpdate | <object> | Update User account object. Only properties that are specified will be updated. | |
UserUpdate.last_name | <string> | Last name of the user. | Optional |
UserUpdate.new_password | <object> | Set the user's password. | Optional |
UserUpdate.new_password.cleartext | <string> | Set the user's password in plain text. | |
UserUpdate.role | <string> | Role of the user. Defines permissions. | Optional; Values: Developer, Administrator, Operator, Monitor, Event_Viewer, Dashboard_Viewer, Restricted, Shared_Link_Viewer |
UserUpdate.first_name | <string> | First name of the user. | Optional |
UserUpdate.edit_dashboards | <string> | Boolean flag indicating if the user has permission to administrate dashboards. | Optional |
UserUpdate.traffic_filter | <string> | Traffic expression. Only applicable to Restricted role. | Optional |
UserUpdate.view_packet_details | <string> | Boolean flag indicating if the user has access to packet data. | Optional |
UserUpdate.strict_password_exempt | <string> | Boolean flag indicating if the user is exempt from strict password requirements. | Optional |
UserUpdate.auto_resolution | <string> | Force to use auto resolution. Only applicable to Restricted role. | Optional |
UserUpdate.view_user_information | <string> | Boolean flag indicating if the user has access to identity information, such as Active Directory information. | Optional |
On success, the server returns a response body with the following structure:
- JSON
{ "enabled": string, "last_name": string, "id": number, "last_login": number, "authentication_type": string, "username": string, "authorization_type": string, "role": string, "first_name": string, "edit_dashboards": string, "traffic_filter": string, "last_access": number, "view_packet_details": string, "last_authentication": number, "auto_resolution": string, "view_user_information": string, "login_timeout": number } Example: { "last_authentication": 1352313328, "first_name": "Jonh", "last_name": "Smith", "authorization_type": "Local", "username": "admin", "enabled": true, "view_user_information": true, "authentication_type": "Local", "last_login": 1352313328, "login_timeout": 900, "role": "Administrator", "last_access": 1352313328, "id": 123 }
Property Name | Type | Description | Notes |
---|---|---|---|
User | <object> | User account. | |
User.enabled | <string> | Boolean flag indicating if the user account is enabled. | |
User.last_name | <string> | Last name of the user. | |
User.id | <number> | Numeric ID of the user that the system uses internally and in the API. | |
User.last_login | <number> | Time of last login. Unix time (epoch). | |
User.authentication_type | <string> | Type of authentication for the user, such as Local or RADIUS. | Values: Local, Remote, SAML |
User.username | <string> | User name (short name) that identifies the user to the system, such as 'admin'. | |
User.authorization_type | <string> | Type of authorization for the user, such as Local or RADIUS. | Values: Local, Remote |
User.role | <string> | Role of the user. Defines permissions. | Values: Developer, Administrator, Operator, Monitor, Event_Viewer, Dashboard_Viewer, Restricted, Shared_Link_Viewer |
User.first_name | <string> | First name of the user. | |
User.edit_dashboards | <string> | Boolean flag indicating if the user has permission to administrate dashboards. | Optional |
User.traffic_filter | <string> | Traffic expression. Only applicable to Restricted role. | Optional |
User.last_access | <number> | Time of last access to the system. Unix time (epoch). | |
User.view_packet_details | <string> | Boolean flag indicating if the user has access to packet data. | Optional |
User.last_authentication | <number> | Time of last authentication. Unix time (epoch). | |
User.auto_resolution | <string> | Force to use auto resolution. Only applicable to Restricted role. | Optional |
User.view_user_information | <string> | Boolean flag indicating if the user has access to identity information, such as Active Directory information. | Optional |
User.login_timeout | <number> | Timeout (in seconds) during which the user cannot log in to the system because of security policies. |
Users: Re-authenticate user
Re-authenticate user account. Requires basic authentication.
GET https://{device}/api/gateway/1.5/users/re_authenticateAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Users: Get user
User account by user ID.
GET https://{device}/api/gateway/1.5/users/{user_id}Authorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
{ "enabled": string, "last_name": string, "id": number, "last_login": number, "authentication_type": string, "username": string, "authorization_type": string, "role": string, "first_name": string, "edit_dashboards": string, "traffic_filter": string, "last_access": number, "view_packet_details": string, "last_authentication": number, "auto_resolution": string, "view_user_information": string, "login_timeout": number } Example: { "last_authentication": 1352313328, "first_name": "Jonh", "last_name": "Smith", "authorization_type": "Local", "username": "admin", "enabled": true, "view_user_information": true, "authentication_type": "Local", "last_login": 1352313328, "login_timeout": 900, "role": "Administrator", "last_access": 1352313328, "id": 123 }
Property Name | Type | Description | Notes |
---|---|---|---|
User | <object> | User account. | |
User.enabled | <string> | Boolean flag indicating if the user account is enabled. | |
User.last_name | <string> | Last name of the user. | |
User.id | <number> | Numeric ID of the user that the system uses internally and in the API. | |
User.last_login | <number> | Time of last login. Unix time (epoch). | |
User.authentication_type | <string> | Type of authentication for the user, such as Local or RADIUS. | Values: Local, Remote, SAML |
User.username | <string> | User name (short name) that identifies the user to the system, such as 'admin'. | |
User.authorization_type | <string> | Type of authorization for the user, such as Local or RADIUS. | Values: Local, Remote |
User.role | <string> | Role of the user. Defines permissions. | Values: Developer, Administrator, Operator, Monitor, Event_Viewer, Dashboard_Viewer, Restricted, Shared_Link_Viewer |
User.first_name | <string> | First name of the user. | |
User.edit_dashboards | <string> | Boolean flag indicating if the user has permission to administrate dashboards. | Optional |
User.traffic_filter | <string> | Traffic expression. Only applicable to Restricted role. | Optional |
User.last_access | <number> | Time of last access to the system. Unix time (epoch). | |
User.view_packet_details | <string> | Boolean flag indicating if the user has access to packet data. | Optional |
User.last_authentication | <number> | Time of last authentication. Unix time (epoch). | |
User.auto_resolution | <string> | Force to use auto resolution. Only applicable to Restricted role. | Optional |
User.view_user_information | <string> | Boolean flag indicating if the user has access to identity information, such as Active Directory information. | Optional |
User.login_timeout | <number> | Timeout (in seconds) during which the user cannot log in to the system because of security policies. |
Users: [Missing resource 'POST:/api/gateway/1.5/users' in bundle 'rest_short_info']
[Missing resource 'POST:/api/gateway/1.5/users' in bundle 'rest_info']
POST https://{device}/api/gateway/1.5/usersAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "last_name": string, "new_password": { "cleartext": string }, "username": string, "role": string, "first_name": string, "edit_dashboards": string, "traffic_filter": string, "view_packet_details": string, "strict_password_exempt": string, "auto_resolution": string, "view_user_information": string } Example: { "username": "myuser", "first_name": "Jonh", "last_name": "Smith", "new_password": { "cleartext": "mypassword" }, "role": "Administrator", "view_user_information": true }
Property Name | Type | Description | Notes |
---|---|---|---|
UserCreate | <object> | Create User account object. | |
UserCreate.last_name | <string> | Last name of the user. | Optional |
UserCreate.new_password | <object> | Set the user's password. | |
UserCreate.new_password.cleartext | <string> | Set the user's password in plain text. | |
UserCreate.username | <string> | User name (short name) that identifies the user to the system, such as 'admin'. | |
UserCreate.role | <string> | Role of the user. Defines permissions. | Values: Developer, Administrator, Operator, Monitor, Event_Viewer, Dashboard_Viewer, Restricted, Shared_Link_Viewer |
UserCreate.first_name | <string> | First name of the user. | Optional |
UserCreate.edit_dashboards | <string> | Boolean flag indicating if the user has permission to administrate dashboards. | Optional |
UserCreate.traffic_filter | <string> | Traffic expression. Only applicable to Restricted role. | Optional |
UserCreate.view_packet_details | <string> | Boolean flag indicating if the user has access to packet data. | Optional |
UserCreate.strict_password_exempt | <string> | Boolean flag indicating if the user is exempt from strict password requirements. | Optional |
UserCreate.auto_resolution | <string> | Force to use auto resolution. Only applicable to Restricted role. | Optional |
UserCreate.view_user_information | <string> | Boolean flag indicating if the user has access to identity information, such as Active Directory information. | Optional |
On success, the server returns a response body with the following structure:
- JSON
{ "enabled": string, "last_name": string, "id": number, "last_login": number, "authentication_type": string, "username": string, "authorization_type": string, "role": string, "first_name": string, "edit_dashboards": string, "traffic_filter": string, "last_access": number, "view_packet_details": string, "last_authentication": number, "auto_resolution": string, "view_user_information": string, "login_timeout": number } Example: { "last_authentication": 1352313328, "first_name": "Jonh", "last_name": "Smith", "authorization_type": "Local", "username": "admin", "enabled": true, "view_user_information": true, "authentication_type": "Local", "last_login": 1352313328, "login_timeout": 900, "role": "Administrator", "last_access": 1352313328, "id": 123 }
Property Name | Type | Description | Notes |
---|---|---|---|
User | <object> | User account. | |
User.enabled | <string> | Boolean flag indicating if the user account is enabled. | |
User.last_name | <string> | Last name of the user. | |
User.id | <number> | Numeric ID of the user that the system uses internally and in the API. | |
User.last_login | <number> | Time of last login. Unix time (epoch). | |
User.authentication_type | <string> | Type of authentication for the user, such as Local or RADIUS. | Values: Local, Remote, SAML |
User.username | <string> | User name (short name) that identifies the user to the system, such as 'admin'. | |
User.authorization_type | <string> | Type of authorization for the user, such as Local or RADIUS. | Values: Local, Remote |
User.role | <string> | Role of the user. Defines permissions. | Values: Developer, Administrator, Operator, Monitor, Event_Viewer, Dashboard_Viewer, Restricted, Shared_Link_Viewer |
User.first_name | <string> | First name of the user. | |
User.edit_dashboards | <string> | Boolean flag indicating if the user has permission to administrate dashboards. | Optional |
User.traffic_filter | <string> | Traffic expression. Only applicable to Restricted role. | Optional |
User.last_access | <number> | Time of last access to the system. Unix time (epoch). | |
User.view_packet_details | <string> | Boolean flag indicating if the user has access to packet data. | Optional |
User.last_authentication | <number> | Time of last authentication. Unix time (epoch). | |
User.auto_resolution | <string> | Force to use auto resolution. Only applicable to Restricted role. | Optional |
User.view_user_information | <string> | Boolean flag indicating if the user has access to identity information, such as Active Directory information. | Optional |
User.login_timeout | <number> | Timeout (in seconds) during which the user cannot log in to the system because of security policies. |
Users: Test RADIUS user
Test a RADIUS user.
POST https://{device}/api/gateway/1.5/users/radius/test_user?password={string}&username={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
password | <string> | RADIUS password. | |
username | <string> | RADIUS username. |
Provide a request body with the following structure:
- JSON
{ "password": string, "username": string } Example: { "username": "testusername", "password": "testpassword" }
Property Name | Type | Description | Notes |
---|---|---|---|
RemoteTestUserRequest | <object> | RemoteTestUserRequest object. | |
RemoteTestUserRequest.password | <string> | password. | |
RemoteTestUserRequest.username | <string> | user name. |
On success, the server returns a response body with the following structure:
- JSON
{ "role_id": number, "error_message": string, "server_type": number, "role": string, "permissions": [ { "permission": string, "permission_id": string } ], "details": string, "server_ip": string, "authenticated": string, "attributes": [ { [prop]: string } ], "authorized": string }
Property Name | Type | Description | Notes |
---|---|---|---|
RemoteTestUserResponse | <object> | RemoteTestUserResponse object. | |
RemoteTestUserResponse.role_id | <number> | Matched role ID. | |
RemoteTestUserResponse.error_message | <string> | Error message. | |
RemoteTestUserResponse.server_type | <number> | Indicates the type of the server being tested: RADIUS(2) or TACACS+(3). | |
RemoteTestUserResponse.role | <string> | Matched role name. | |
RemoteTestUserResponse.permissions | <array of <object>> | Remote permissions. | Optional |
RemoteTestUserResponse.permissions [RemotePermission] |
<object> | Remote permissions. | Optional |
RemoteTestUserResponse.permissions [RemotePermission].permission |
<string> | Matched permission name. | |
RemoteTestUserResponse.permissions [RemotePermission].permission_id |
<string> | Matched permission ID. | |
RemoteTestUserResponse.details | <string> | Remote user test details. | |
RemoteTestUserResponse.server_ip | <string> | Remote Server IP address. | |
RemoteTestUserResponse.authenticated | <string> | Flag indicating if the remote user was authenticated. | |
RemoteTestUserResponse.attributes | <array of <object>> | Attributes of Remote Test User Response. | Optional |
RemoteTestUserResponse.attributes [RemoteAttributes] |
<object> | Remote attribute. | Optional |
RemoteTestUserResponse.attributes [RemoteAttributes][prop] |
<string> | Remote attribute value. | Optional |
RemoteTestUserResponse.authorized | <string> | Flag indicating if the remote user was authorized (as Administrator, Monitor, etc). |
Users: Test TACACS+ server
Test the connection to a TACACS+ server.
GET https://{device}/api/gateway/1.5/users/tacacs/test_server?port={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
port | <string> | Unsupported. | Optional |
server | <string> | TACACS+ server identifier, example server=IP:PORT. |
On success, the server returns a response body with the following structure:
- JSON
{ "success": string, "message": string } Example: { "message": "Connection attempt succeeded", "success": true }
Property Name | Type | Description | Notes |
---|---|---|---|
RemoteTestServerResponse | <object> | RemoteTestServerResponse object. | |
RemoteTestServerResponse.success | <string> | Flag indicating if the remote server test was successful. | |
RemoteTestServerResponse.message | <string> | Response message. |
Users: Test TACACS+ user
Test a TACACS+ user.
POST https://{device}/api/gateway/1.5/users/tacacs/test_user?password={string}&username={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
password | <string> | TACACS+ password. | |
username | <string> | TACACS+ username. |
Provide a request body with the following structure:
- JSON
{ "password": string, "username": string } Example: { "username": "testusername", "password": "testpassword" }
Property Name | Type | Description | Notes |
---|---|---|---|
RemoteTestUserRequest | <object> | RemoteTestUserRequest object. | |
RemoteTestUserRequest.password | <string> | password. | |
RemoteTestUserRequest.username | <string> | user name. |
On success, the server returns a response body with the following structure:
- JSON
{ "role_id": number, "error_message": string, "server_type": number, "role": string, "permissions": [ { "permission": string, "permission_id": string } ], "details": string, "server_ip": string, "authenticated": string, "attributes": [ { [prop]: string } ], "authorized": string }
Property Name | Type | Description | Notes |
---|---|---|---|
RemoteTestUserResponse | <object> | RemoteTestUserResponse object. | |
RemoteTestUserResponse.role_id | <number> | Matched role ID. | |
RemoteTestUserResponse.error_message | <string> | Error message. | |
RemoteTestUserResponse.server_type | <number> | Indicates the type of the server being tested: RADIUS(2) or TACACS+(3). | |
RemoteTestUserResponse.role | <string> | Matched role name. | |
RemoteTestUserResponse.permissions | <array of <object>> | Remote permissions. | Optional |
RemoteTestUserResponse.permissions [RemotePermission] |
<object> | Remote permissions. | Optional |
RemoteTestUserResponse.permissions [RemotePermission].permission |
<string> | Matched permission name. | |
RemoteTestUserResponse.permissions [RemotePermission].permission_id |
<string> | Matched permission ID. | |
RemoteTestUserResponse.details | <string> | Remote user test details. | |
RemoteTestUserResponse.server_ip | <string> | Remote Server IP address. | |
RemoteTestUserResponse.authenticated | <string> | Flag indicating if the remote user was authenticated. | |
RemoteTestUserResponse.attributes | <array of <object>> | Attributes of Remote Test User Response. | Optional |
RemoteTestUserResponse.attributes [RemoteAttributes] |
<object> | Remote attribute. | Optional |
RemoteTestUserResponse.attributes [RemoteAttributes][prop] |
<string> | Remote attribute value. | Optional |
RemoteTestUserResponse.authorized | <string> | Flag indicating if the remote user was authorized (as Administrator, Monitor, etc). |
Users: Test RADIUS server
Test the connection to a RADIUS server.
GET https://{device}/api/gateway/1.5/users/radius/test_server?port={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
port | <string> | Unsupported. | Optional |
server | <string> | RADIUS server identifier, example server=IP:PORT. |
On success, the server returns a response body with the following structure:
- JSON
{ "success": string, "message": string } Example: { "message": "Connection attempt succeeded", "success": true }
Property Name | Type | Description | Notes |
---|---|---|---|
RemoteTestServerResponse | <object> | RemoteTestServerResponse object. | |
RemoteTestServerResponse.success | <string> | Flag indicating if the remote server test was successful. | |
RemoteTestServerResponse.message | <string> | Response message. |
Error Codes
In the event that an error occurs while processing a request, the server will respond with appropriate HTTP status code and additional information in the response body:
{ "error_id": "{error identifier}", "error_text": "{error description}", "error_info": {error specific data structure, optional} }
The table below lists the possible errors and the associated HTTP status codes that may returned.
Error ID | HTTP Status | Comments |
---|---|---|
INTERNAL_ERROR | 500 | Internal server error. |
AUTH_REQUIRED | 401 | The requested resource requires authentication. |
AUTH_INVALID_CREDENTIALS | 401 | Invalid username and/or password. |
AUTH_INVALID_SESSION | 401 | Session ID is invalid. |
AUTH_EXPIRED_PASSWORD | 403 | The password must be changed. Access only to password change resources. |
AUTH_DISABLED_ACCOUNT | 403 | Account is either temporarily or permanently disabled. |
AUTH_FORBIDDEN | 403 | User is not authorized to access the requested resource. |
AUTH_INVALID_TOKEN | 401 | OAuth access token is invalid. |
AUTH_EXPIRED_TOKEN | 401 | OAuth access token is expired. |
AUTH_INVALID_CODE | 401 | OAuth access code is invalid. |
AUTH_EXPIRED_CODE | 401 | OAuth access code is expired. |
RESOURCE_NOT_FOUND | 404 | Requested resource was not found. |
HTTP_INVALID_METHOD | 405 | Requested method is not available for this resource. |
HTTP_INVALID_HEADER | 400 | An HTTP header was malformed. |
REQUEST_INVALID_INPUT | 400 | Malformed input structure. |
URI_INVALID_PARAMETER | 400 | URI parameter is not supported or malformed. |
URI_MISSING_PARAMETER | 400 | Missing required parameter. |