Riverbed Flow Gateway REST API.
Created Nov 12, 2024 at 10:02 PM

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_sources
Authorization

This request requires authorization.

Response Body

On 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 Body

On 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 Body

On 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/ping
Authorization

This request requires authorization.

Response Body

On 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}/start
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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/status
Authorization

This request requires authorization.

Response Body

On 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/kill
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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/restart
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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/start
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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}/restart
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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}/stop
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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}/status
Authorization

This request requires authorization.

Response Body

On 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/shutdown
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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/reboot
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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/stop
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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}/kill
Authorization

This request requires authorization.

Request Body

Do not provide a request body.

Response Body

On 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/stats
Authorization

This request requires authorization.

Response Body

On 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.

Parameters
Property Name Type Description Notes
filter <string> [Missing resource 'GET:/api/gateway/1.5/users?filter' in bundle 'rest_info'] Optional
Response Body

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 Body

On 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 Body

Provide 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
Response Body

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_authenticate
Authorization

This request requires authorization.

Response Body

On 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 Body

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: [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/users
Authorization

This request requires authorization.

Request Body

Provide 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
Response Body

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.

Parameters
Property Name Type Description Notes
password <string> RADIUS password.
username <string> RADIUS username.
Request Body

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.
Response Body

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.

Parameters
Property Name Type Description Notes
port <string> Unsupported. Optional
server <string> TACACS+ server identifier, example server=IP:PORT.
Response Body

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.

Parameters
Property Name Type Description Notes
password <string> TACACS+ password.
username <string> TACACS+ username.
Request Body

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.
Response Body

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.

Parameters
Property Name Type Description Notes
port <string> Unsupported. Optional
server <string> RADIUS server identifier, example server=IP:PORT.
Response Body

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.