Overview
This document describes the RESTful APIs exported by Cascade Shark 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 or modified, how to access it, and how to encode requests and responses.
The remainder of this section lists the high level functionality exposed by the REST API and describes the data encodings for objects that are used to encode information for requests and responses.
The Resources section lists the supported REST resources and the methods supported on these resources. For each operation, the document describes what the operation does, the specific HTTP method and URL used, the data types used for requests and responses (if any) and any required or optional URL parameters.
The Data Types section describes commonly used data types in the REST API, including example encodings in both JSON and XML.
The Errors section lists the various error codes that may be returned from REST API operations.
Functionality
The Shark REST API provides programmable access to virtually all of the functionality implemented by the shark appliance, including:
-
Applying views and obtaining view output
-
Enumerating and examining packet data sources on the appliance (interfaces, capture jobs, trace clips, and files)
-
Creating trace clips, uploading
-
Extracting packet data from the appliance
-
Extracting and modifiying system configuration, including user configuration, capture job management, basic system configuration, etc.
-
Access system version information and apply system updates
NOTE: Resources and methods used for authentication to the shark appliance through the API, and other resources related to querying for system information are implemented by the Riverbed Common REST API. Before accessing the Shark API, please familiarize yourself with the Common API documentation.
Data Encoding
Most resources exposed by the API support both XML and JSON encoding for requests and responses. The selection of the specific encoding is accomplished through the use of HTTP headers.
The Accept
header should be included with all API requests, and it is used to control the encoding of the response body. To specify XML encoding, the header should be set to Accept: text/xml
, and to specify JSON encoding, the header should be set to Accept: application/json
. If the Accept
header is omitted, the default encoding is XML.
The Content-Type
header must be included with all PUT or POST requests that include a request body. To specify XML encoding, the header should be set to Content-Type: text/xml
. To specify JSON encoding, the header should be set to Content-Type: application/json
.
Some resources support alternative content types for requests and responses, as identified in the specific resource documentation below.
Resources
interfaces: List interfaces
List of Shark interfaces.
GET https://{device}/api/shark/4.0/interfaces?filter={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
filter | <string> | 'device' to limit list to physical devices; 'virtual' to limit list to virtual files; 'aggregating' to limit list to aggregating ports. | Optional |
On success, the server returns a response body with the following structure:
- JSON
- XML
[ interface ]
Property Name | Type | Description | Notes |
---|---|---|---|
interfaces | <array of <interface>> | List of interfaces on this Shark | |
interfaces[interface] | <interface> | Instance of an <interface> |
interfaces: Get interface info
Information on Shark interface {interface_id}.
GET https://{device}/api/shark/4.0/interfaces/{interface_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
interface_id | <string> | Interface identifier |
Returns an interface data object.
interfaces: Update interface settings
Update information on Shark interface {interface_id}. NOTE: Only physical ('device') interface settings may be updated.
PUT https://{device}/api/shark/4.0/interfaces/{interface_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
interface_id | <string> | Interface identifier |
Provide a request body with the following structure:
- JSON
- XML
{ "pass_thru": string, "board_speed": { "status": string, "duplex_type": string, "speed_mbps": string }, "tap_type": string, "dedup_status": string, "speed_options": [ { "status": string, "duplex_type": string, "speed_mbps": string } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
interface_settings | <object> | Update information for a Shark physical interface. Note: If new passthru mode setting is present, all other settings are ignored. | |
interface_settings.pass_thru | <string> | New passthru mode status | Optional; Values: ENABLED, DISABLED, NOT_SUPPORTED |
interface_settings.board_speed | <object> | Speed, duplex type, and status of a speed option | Optional |
interface_settings.board_speed.status | <string> | Status of this link speed option for this interface | Optional; Values: SUPPORTED, ENABLED, NEGOTIATED |
interface_settings.board_speed. duplex_type |
<string> | Duplex type for this speed option | Values: HALF, FULL, UNKNOWN |
interface_settings.board_speed. speed_mbps |
<string> | Throughput for this speed option | Values: MBPS_10, MBPS_100, MBPS_1000, MBPS_10000 |
interface_settings.tap_type | <string> | New tap type setting | Optional; Values: NONE, CPACKET, GIGAMON_HEADER, GIGAMON_TRAILER, GIGAMON_TRAILER_X12, VSS, VSS_PORT_ID, UNKNOWN |
interface_settings.dedup_status | <string> | New packet deduplication setting | Optional; Values: ENABLED, DISABLED, NOT_SUPPORTED |
interface_settings.speed_options | <array of <object>> | List of link speed options | Optional |
interface_settings.speed_options [link_speed_option] |
<object> | Speed, duplex type, and status of a speed option | |
interface_settings.speed_options [link_speed_option].status |
<string> | Status of this link speed option for this interface | Optional; Values: SUPPORTED, ENABLED, NEGOTIATED |
interface_settings.speed_options [link_speed_option].duplex_type |
<string> | Duplex type for this speed option | Values: HALF, FULL, UNKNOWN |
interface_settings.speed_options [link_speed_option].speed_mbps |
<string> | Throughput for this speed option | Values: MBPS_10, MBPS_100, MBPS_1000, MBPS_10000 |
On success, the server does not provide any body in the responses.
interfaces: Update interface blink status
Request update of interface blink status.
PUT https://{device}/api/shark/4.0/interfaces/{interface_id}/blink_statusAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
interface_id | <string> | Interface identifier |
Provide a request body with the following structure:
- JSON
- XML
{ "blink_status": string }
Property Name | Type | Description | Notes |
---|---|---|---|
blink_settings | <object> | Update interface 'blink' status | |
blink_settings.blink_status | <string> | New 'blink' status for this interface | Values: ON, OFF, UNKNOWN |
On success, the server does not provide any body in the responses.
jobs: List jobs
Get the current list of capture jobs
GET https://{device}/api/shark/4.0/jobsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "id": string, "status": job_status, "config": job_config, "index": job_index_info } ]
Property Name | Type | Description | Notes |
---|---|---|---|
jobs | <array of <object>> | List of capture jobs | |
jobs[job] | <object> | A capture job | |
jobs[job].id | <string> | Job ID | |
jobs[job].status | <job_status> | Status information for this job | |
jobs[job].config | <job_config> | Configuration information for this job | |
jobs[job].index | <job_index_info> | Index information for this job |
jobs: Create job
Create a new capture job
POST https://{device}/api/shark/4.0/jobsAuthorization
This request requires authorization.
Request BodyProvide a job_config data object.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "id": string }
Property Name | Type | Description | Notes |
---|---|---|---|
job | <object> | Information for a new job | |
job.id | <string> | Job id |
jobs: Get job information
Get information (status and config) for a capture job
GET https://{device}/api/shark/4.0/jobs/{job_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "id": string, "status": job_status, "config": job_config, "index": job_index_info }
Property Name | Type | Description | Notes |
---|---|---|---|
job | <object> | A capture job | |
job.id | <string> | Job ID | |
job.status | <job_status> | Status information for this job | |
job.config | <job_config> | Configuration information for this job | |
job.index | <job_index_info> | Index information for this job |
jobs: Get job config
Get configuration for capture job
GET https://{device}/api/shark/4.0/jobs/{job_id}/configAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
Returns a job_config data object.
jobs: Get job status
Get status information for a capture job
GET https://{device}/api/shark/4.0/jobs/{job_id}/statusAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
Returns a job_status data object.
jobs: Get job stats
Statistics for a capture job
GET https://{device}/api/shark/4.0/jobs/{job_id}/statsAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "packets_written": { "total": string, "last_second": string, "last_minute": string, "last_hour": string }, "packets_dropped": { "total": string, "last_second": string, "last_minute": string, "last_hour": string } }
Property Name | Type | Description | Notes |
---|---|---|---|
job_stats | <object> | ||
job_stats.packets_written | <object> | ||
job_stats.packets_written.total | <string> | ||
job_stats.packets_written.last_second | <string> | ||
job_stats.packets_written.last_minute | <string> | ||
job_stats.packets_written.last_hour | <string> | ||
job_stats.packets_dropped | <object> | ||
job_stats.packets_dropped.total | <string> | ||
job_stats.packets_dropped.last_second | <string> | ||
job_stats.packets_dropped.last_minute | <string> | ||
job_stats.packets_dropped.last_hour | <string> |
jobs: Get job index status
Index information for capture job.
GET https://{device}/api/shark/4.0/jobs/{job_id}/indexAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
Returns a job_index_info data object.
jobs: Update job configuration
Update configuration of a capture job
PUT https://{device}/api/shark/4.0/jobs/{job_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
Provide a job_config data object.
Response BodyOn success, the server does not provide any body in the responses.
jobs: Update job status
Update running status of capture job
PUT https://{device}/api/shark/4.0/jobs/{job_id}/statusAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
Provide a request body with the following structure:
- JSON
- XML
{ "state": string, "clear_packets": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
status | <object> | Update job state, optionally clear packets for job | |
status.state | <string> | Running state of a capture job | Values: ACTIVE, RUNNING, STOPPED, UNKNOWN |
status.clear_packets | <boolean> | 'true' to clear packets for this job | Optional |
On success, the server does not provide any body in the responses.
jobs: Delete job
Delete capture job
DELETE https://{device}/api/shark/4.0/jobs/{job_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
On success, the server does not provide any body in the responses.
clips: List clips
List of trace clips from capture job {job_id}
GET https://{device}/api/shark/4.0/clipsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "id": string, "status": clip_status, "config": clip_config, "index": index_info } ]
Property Name | Type | Description | Notes |
---|---|---|---|
clips | <array of <object>> | List of clips | |
clips[clip] | <object> | Description and status of trace clip | |
clips[clip].id | <string> | Clip id | |
clips[clip].status | <clip_status> | Status information for this clip | |
clips[clip].config | <clip_config> | Configuration information for this clip | |
clips[clip].index | <index_info> | Index information for this clip |
clips: Create clip
Create a new trace clip from capture job {job_id}
POST https://{device}/api/shark/4.0/clipsAuthorization
This request requires authorization.
Request BodyProvide a clip_config data object.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "id": string }
Property Name | Type | Description | Notes |
---|---|---|---|
clip | <object> | ||
clip.id | <string> | Identifier of the newly created clip |
clips: Get clip detail
Info on clip {clip_id} from capture job {job_id}
GET https://{device}/api/shark/4.0/clips/{clip_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "id": string, "status": clip_status, "config": clip_config, "index": index_info }
Property Name | Type | Description | Notes |
---|---|---|---|
clip | <object> | Description and status of trace clip | |
clip.id | <string> | Clip id | |
clip.status | <clip_status> | Status information for this clip | |
clip.config | <clip_config> | Configuration information for this clip | |
clip.index | <index_info> | Index information for this clip |
clips: Update clip
Update config info for clip {clip_id} from capture job {job_id}
PUT https://{device}/api/shark/4.0/clips/{clip_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
Provide a clip_config data object.
Response BodyOn success, the server does not provide any body in the responses.
clips: Delete clip
Delete clip {clip_id} from capture job {job_id}
DELETE https://{device}/api/shark/4.0/clips/{clip_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
On success, the server does not provide any body in the responses.
clips: Get clip config
Config info for clip {clip_id} from capture job {job_id}
GET https://{device}/api/shark/4.0/clips/{clip_id}/configAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
Returns a clip_config data object.
clips: Get clip status
Status info for clip {clip_id} from capture job {job_id}
GET https://{device}/api/shark/4.0/clips/{clip_id}/statusAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
Returns a clip_status data object.
clips: Update clip lock status
Update lock status for clip {clip_id} from capture job {job_id}
PUT https://{device}/api/shark/4.0/clips/{clip_id}/statusAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
Provide a request body with the following structure:
- JSON
- XML
{ "locked": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
status | <object> | ||
status.locked | <boolean> | 'true' to lock the packets and the index for this clip, 'false' otherwise |
On success, the server does not provide any body in the responses.
clips: Get clip index info
Index info for clip {clip_id} from capture job {job_id}
GET https://{device}/api/shark/4.0/clips/{clip_id}/indexAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
Returns an index_info data object.
clips: List job exports
Get list of current export operations from a capture job
GET https://{device}/api/shark/4.0/jobs/{job_id}/exportsAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
job_id | <string> | Job identifier |
On success, the server returns a response body with the following structure:
- JSON
- XML
[ export ]
Property Name | Type | Description | Notes |
---|---|---|---|
exports | <array of <export>> | List of exports currently under way | |
exports[export] | <export> | Instance of an <export> |
filesystem: List root directory
Listing of root user file directory
GET https://{device}/api/shark/4.0/fsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ dir ]
Property Name | Type | Description | Notes |
---|---|---|---|
fs | <array of <dir>> | List of directories | |
fs[dir] | <dir> | Instance of a <dir> |
filesystem: List directory
Get information on directory {directory_id}.
GET https://{device}/api/shark/4.0/fs/{directory_path}?directory_id={string}&recursive={string}&details={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
directory_id | <string> | Directory path | |
recursive | <string> | 'true' for recursive directory listing, 'false' otherwise. | Optional |
details | <string> | 'true' for details on all files, 'false' otherwise. | Optional |
Returns a dir data object.
filesystem: Create file or directory
Create trace file, merged file, multisegment file, or directory on the Shark. The file path is specified in the 'Content-Disposition' HTTP header and the file type to be created is specified using the 'Content-Type' HTTP header.
POST https://{device}/api/shark/4.0/fs/{directory_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
directory_id | <string> | The directory in which the file or directory is to be created |
Property Name | Type | Description | Notes |
---|---|---|---|
Content-Type | <string> | The type of object to be created | |
Content-Disposition | <string> | The name of the file or directory to be created |
Content-Type: application/x-vnd.tcpdump
Provide a request body containing the File contents with content type application/x-vnd.tcpdump.
Create directoryContent-Type: x-shark-directory
Do not provide a request body.
Create virtual fileContent-Type: application/json or text/xml
Provide a request body with the following structure:
- JSON
- XML
{ "type": string, "linked_sources": [ { "path": string, "default_source": boolean, "timeskew": number, "description": string } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
request | <object> | Contains info about a new multisegment or merged file | |
request.type | <string> | File type | Values: MULTISEGMENT_FILE, MERGED_FILE |
request.linked_sources | <array of <object>> | Linked sources details list | |
request.linked_sources[linked_source] | <object> | ||
request.linked_sources[linked_source]. path |
<string> | Linked source path. It could be either an absolute path (fs/ID) or a relative path starting from the aggregated file folder. | |
request.linked_sources[linked_source]. default_source |
<boolean> | The default source is the reference source in a multisegment file collection and it is used as reference for the time skew calculation | Optional |
request.linked_sources[linked_source]. timeskew |
<number> | It is the packets timestamps offset associated with the linked source | Optional |
request.linked_sources[linked_source]. description |
<string> | A simple description field associated with the linked source | Optional |
On success, the server does not provide any body in the responses.
filesystem: Get file info
Get descriptive information for file or directory {file_id}
GET https://{device}/api/shark/4.0/fs/{file_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File or directory path |
Returns a file data object.
filesystem: Download file contents
Download contents of trace file, merged file, or multisegment file {file_id}.
GET https://{device}/api/shark/4.0/fs/{file_id}/downloadAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
On success, the server returns a request body containing data with content type application/x-vnd.tcpdump or application/xml.
filesystem: Modify merged or multisegment file
Modify merged file or multisegment file {file_id} on the Shark.
PUT https://{device}/api/shark/4.0/fs/{file_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
Provide a request body with the following structure:
- JSON
- XML
{ "type": string, "linked_sources": [ { "path": string, "default_source": boolean, "timeskew": number, "description": string } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
aggregated | <object> | Contains info about a new multisegment or merged file | |
aggregated.type | <string> | File type | Values: MULTISEGMENT_FILE, MERGED_FILE |
aggregated.linked_sources | <array of <object>> | Linked sources details list | |
aggregated.linked_sources[linked_source] | <object> | ||
aggregated.linked_sources[linked_source]. path |
<string> | Linked source path. It could be either an absolute path (fs/ID) or a relative path starting from the aggregated file folder. | |
aggregated.linked_sources[linked_source]. default_source |
<boolean> | The default source is the reference source in a multisegment file collection and it is used as reference for the time skew calculation | Optional |
aggregated.linked_sources[linked_source]. timeskew |
<number> | It is the packets timestamps offset associated with the linked source | Optional |
aggregated.linked_sources[linked_source]. description |
<string> | A simple description field associated with the linked source | Optional |
On success, the server does not provide any body in the responses.
filesystem: Delete file
Delete file {file_id}. NOTE: If a file to be deleted is open for any reason, the delete operation will fail.
DELETE https://{device}/api/shark/4.0/fs/{file_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
On success, the server does not provide any body in the responses.
filesystem: Delete directory
Delete user directory {directory_id}. If the directory is not empty, all files in the directory will be deleted as well. NOTE: If a file to be deleted is open for any reason, the delete operation will fail.
DELETE https://{device}/api/shark/4.0/fs/{directory_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
directory_id | <string> | Directory path |
On success, the server does not provide any body in the responses.
filesystem: Get file checksum
Obtain a checksum for a trace file.
GET https://{device}/api/shark/4.0/fs/{file_id}/checksumAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "value": string, "method": string }
Property Name | Type | Description | Notes |
---|---|---|---|
checksum | <object> | Contains info about a checksum calculated on a trace file | |
checksum.value | <string> | Trace file's checksum | |
checksum.method | <string> | Checksum algorithm | Values: SHA256 |
filesystem: Get file index info
Get index information for trace file {file_id}.
GET https://{device}/api/shark/4.0/fs/{file_id}/indexAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
Returns an index_info data object.
filesystem: Create file index
Create index for trace file {file_id}
POST https://{device}/api/shark/4.0/fs/{file_id}/indexAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
Do not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
filesystem: Delete file index
Delete index for trace file {file_id}.
DELETE https://{device}/api/shark/4.0/fs/{file_id}/indexAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
On success, the server does not provide any body in the responses.
filesystem: Move file or directory
Request move of file or directory resource {file_id}
POST https://{device}/api/shark/4.0/fs/{file_id}/moveAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
Provide a request body with the following structure:
- JSON
- XML
{ "destination": string }
Property Name | Type | Description | Notes |
---|---|---|---|
move | <object> | Contains the resource's destination id for a move operation | |
move.destination | <string> | Resource's destination id |
On success, the server does not provide any body in the responses.
filesystem: Create timeskew estimate
Start a timeskew estimation process for multisegment file {file_id}.
PUT https://{device}/api/shark/4.0/fs/{file_id}/fs/timeskew_estimate?packet_count={number}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path | |
packet_count | <number> | Maximum number of packets to process | Optional |
Do not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
filesystem: Get timeskew estimate results
Time skew information for multisegment file {file_id}
GET https://{device}/api/shark/4.0/fs/{file_id}/timeskew_estimateAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "status": { "state": string, "duplicated_count": number, "first_invalid_timestamp": timestamp-hp, "invalid_source_index": number }, "results": [ { "source_index": number, "timeskew": number } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
timeskew_estimate | <object> | Time skew estimate information | |
timeskew_estimate.status | <object> | Status information for the time skew estimate | |
timeskew_estimate.status.state | <string> | Values: EMPTY, COMPUTING, NO_PACKETS, UNIDIRECTIONAL, TIMESTAMP_WARNING, DUPLICATE_WARNING, OK | |
timeskew_estimate.status. duplicated_count |
<number> | Number of packets with the same timestamp in different capture points. Check this field in order to estimate if this is a real issue or not: if the number of packets experiencing this problem is high probably at least two files contain the same packets, otherwise it means that for some packets the timeskew observed makes the delay becomes zero (timeskew = delay for that packet). | Optional |
timeskew_estimate.status. first_invalid_timestamp |
<timestamp-hp> | First timestamp causing the TIMESTAMP_WARNING code | |
timeskew_estimate.status. invalid_source_index |
<number> | Index of the file causing the TIMESTAMP_WARNING code | Optional |
timeskew_estimate.results | <array of <object>> | List of linked sources | Optional |
timeskew_estimate.results[result] | <object> | Time skew information for a linked source | |
timeskew_estimate.results[result]. source_index |
<number> | Index of the linked source | |
timeskew_estimate.results[result]. timeskew |
<number> | Estimated time skew compared to the default source |
filesystem: Delete timeskew estimate
Delete time skew estimate results for multisegment file {file_id}.
DELETE https://{device}/api/shark/4.0/fs/{file_id}/fs/timeskew_estimateAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
file_id | <string> | File path |
On success, the server does not provide any body in the responses.
packet export: Start export operation
Create a new export operation from the given source. This begins the process of extracting packets from the given source and returns a handle through which the caller can obtain status on the operation as well as download the packets themselves.
POST https://{device}/api/shark/4.0/{source_type}/{source_id}/exportsAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
source_type | <string> | Packet source type identifier. Must be one of "interfaces", "jobs", "clips", or "fs". | |
source_id | <string> | Specific source identifier of type {source_type}. For example, if source_type is "jobs", then the {source_id} is the job identifier. |
Provide an export_config data object.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "id": string }
Property Name | Type | Description | Notes |
---|---|---|---|
export_id | <object> | ||
export_id.id | <string> | ID of created export |
packet export: List export operations
List active export operations from the given source.
GET https://{device}/api/shark/4.0/{source_type}/{source_id}/exportsAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
source_type | <string> | Packet source type identifier. Must be one of "interfaces", "jobs", "clips", or "fs". | |
source_id | <string> | Specific source identifier of type {source_type}. For example, if source_type is "jobs", then the {source_id} is the job identifier. |
On success, the server returns a response body with the following structure:
- JSON
- XML
[ export ]
Property Name | Type | Description | Notes |
---|---|---|---|
exports | <array of <export>> | List of exports currently under way | |
exports[export] | <export> | Instance of an <export> |
packet export: Get export operation status
Get status of an export operation
GET https://{device}/api/shark/4.0/{source_type}/{source_id}/exports/{export_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
source_type | <string> | Packet source type identifier. Must be one of "interfaces", "jobs", "clips", or "fs". | |
source_id | <string> | Specific source identifier of type {source_type}. For example, if source_type is "jobs", then the {source_id} is the job identifier. | |
export_id | <string> | Export operation identifier. |
Returns an export data object.
packet export: Stop export operation
Stop an export operation
DELETE https://{device}/api/shark/4.0/{source_type}/{source_id}/exports/{export_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
source_type | <string> | Packet source type identifier. Must be one of "interfaces", "jobs", "clips", or "fs". | |
source_id | <string> | Specific source identifier of type {source_type}. For example, if source_type is "jobs", then the {source_id} is the job identifier. | |
export_id | <string> | Export operation identifier. |
On success, the server does not provide any body in the responses.
packet export: Get job export packets
Get the packet stream for an export operation.
GET https://{device}/api/shark/4.0/{source_type}/{source_id}/exports/{export_id}/packetsAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
source_type | <string> | Packet source type identifier. Must be one of "interfaces", "jobs", "clips", or "fs". | |
source_id | <string> | Specific source identifier of type {source_type}. For example, if source_type is "jobs", then the {source_id} is the job identifier. | |
export_id | <string> | Export operation identifier. |
On success, the server returns a request body containing data with content type application/vnd.tcpdump.pcap.
packet export: Download job packets
Export packets from a capture job. Response content type is 'application/vnd.tcpdump.pcap'.
GET https://{device}/api/shark/4.0/{source_type}/{source_id}/packets?bytes={number}&seconds={number}&filename={string}&file_format={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
source_type | <string> | Packet source type identifier. Must be one of "interfaces", "jobs", "clips", or "fs". | |
source_id | <string> | Specific source identifier of type {source_type}. For example, if source_type is "jobs", then the {source_id} is the job identifier. | |
bytes | <number> | Limit on number of bytes to be extracted. | Optional |
packets | <number> | Limit on number of packets to be extracted. | Optional |
seconds | <number> | Limit on total time (in seconds) of packet extraction. | Optional |
filename | <string> | Name of output filename. This will appear in the 'content-disposition' header of the response. | Optional |
file_format | <string> | Format of output file: 'PCAP_US' for PCAP format (microsecond resolution); 'PCAP_NS' for PCAP format (nanosecond resolution); 'PCAPNG_US' for PCAP-NG format (microsecond resolution); or 'PCAPNG_NS' for PCAP_NG format (nanosecond resolution). | Optional |
On success, the server does not provide any body in the responses.
views: List views
Get list of currently running views.
GET https://{device}/api/shark/4.0/viewsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "id": string, "creation_time": timestamp-hp, "owner": string, "state": string, "locked": boolean, "watches": [ { "id": string, "state": string, "last_error": string, "event_count": number, "first_event_time": timestamp-hp, "last_event_time": timestamp-hp } ] } ]
Property Name | Type | Description | Notes |
---|---|---|---|
views | <array of <object>> | View list | |
views[view] | <object> | Summary information for a view | |
views[view].id | <string> | View ID | |
views[view].creation_time | <timestamp-hp> | View creation time | |
views[view].owner | <string> | Owner user name | |
views[view].state | <string> | View state | Values: UNINITIALIZED, LOADED, PARAMS_LOADED, INITIALIZED, READY, RUNNING, ERRORS, DONE, CLOSING, PAUSED |
views[view].locked | <boolean> | True if locked | |
views[view].watches | <array of <object>> | Watch list for this view | |
views[view].watches[watch] | <object> | ||
views[view].watches[watch].id | <string> | Watch Id | |
views[view].watches[watch].state | <string> | Watch state | Values: UNINITIALIZED, LOADED, PARAMS_LOADED, INITIALIZED, READY, RUNNING, ERRORS, DONE, CLOSING, PAUSED |
views[view].watches[watch].last_error | <string> | Error description, if the watch is in an error state | |
views[view].watches[watch].event_count | <number> | Number of triggered events | |
views[view].watches[watch]. first_event_time |
<timestamp-hp> | Time of the first triggered event | |
views[view].watches[watch]. last_event_time |
<timestamp-hp> | Time of the last triggered event |
views: Create view
Create a new view.
POST https://{device}/api/shark/4.0/viewsAuthorization
This request requires authorization.
Request BodyProvide a view data object.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "id": string, "data_source_type": string }
Property Name | Type | Description | Notes |
---|---|---|---|
view_id | <object> | ID of the newly created view | |
view_id.id | <string> | View ID | |
view_id.data_source_type | <string> | Data source type | Values: INDEX, PACKETS |
views: Get view configuration
Get configuration for view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}Authorization
This request requires authorization.
Response BodyReturns a view data object.
views: Delete view
Delete view {view_id}. This will stop any packet processing and delete the view results.
DELETE https://{device}/api/shark/4.0/views/{view_id}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
views: Get view output legend
Get data legend for the output {output_id} in view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}/data/{output_id}/legendAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "base": string, "calculation": string, "dimension": boolean, "name": string, "description": string, "field": string, "id": string, "type": string } ]
Property Name | Type | Description | Notes |
---|---|---|---|
legend | <array of <object>> | Output legend | |
legend[label] | <object> | Legend Entry | |
legend[label].base | <string> | Base | Values: NONE, DEC, HEX, OCT, DEC_HEX, HEX_DEC, PERC |
legend[label].calculation | <string> | Calculation | Values: NONE, SUM, MAX, MIN, AVG, TIME_AVG |
legend[label].dimension | <boolean> | True if dimension | |
legend[label].name | <string> | Name | |
legend[label].description | <string> | Description | |
legend[label].field | <string> | Field | |
legend[label].id | <string> | Id | |
legend[label].type | <string> | Type | Values: NONE, PROTOCOL, BOOLEAN, UINT8, UINT16, UINT24, UINT32, UINT64, INT8, INT16, INT24, INT32, INT64, FLOAT, DOUBLE, ABSOLUTE_TIME, RELATIVE_TIME, STRING, STRINGZ, SHORT_STRING, UINT_STRING, ETHER, BYTES, UINT_BYTES, IPv4, IPv6, UDP_PORT, TCP_PORT, IPXNET, FRAMENUM, PCRE, GUID, OID, NUM_TYPES, INDEX, EUI64 |
views: Get view output data
Get data for the output {output_id} in view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}/data/{output_id}?start={number}&end={number}&delta={string}&aggregated={string}&sortby={string}&fromentry={number}&toentry={number}&sorttype={string}&countonly={number}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
start | <number> | Timestamp value representing start time. | Optional |
end | <number> | Timestamp value representing end time. | Optional |
delta | <string> | Sampling interval, in nanoseconds | Optional |
aggregated | <string> | 'true' if output is in a single sample. | Optional |
sortby | <string> | Name (x0, x1, etc.) of column used to sort output values. | Optional |
fromentry | <number> | In paged output: number of first output row. NOTE: Row numbers start from 0. | Optional |
toentry | <number> | In paged output: number of last output row. | Optional |
sorttype | <string> | 'ascending' or 'descending' | Optional |
countonly | <number> | (Only available when 'aggregated' = 'true'.) Return number of rows only. | Optional |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "samples": [ { "t": timestamp-hp, "p": number, "u": number, "value_count": number, "value_sum": number, "vals": [ [ string ] ], "gap_start": timestamp-hp, "gap_end": timestamp-hp } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
samples | <object> | View output | |
samples.samples | <array of <object>> | Samples list | |
samples.samples[sample] | <object> | Sample for a view output | |
samples.samples[sample].t | <timestamp-hp> | Sample timestamp | |
samples.samples[sample].p | <number> | Processed packet count | Optional |
samples.samples[sample].u | <number> | Unprocessed packet count | Optional |
samples.samples[sample].value_count | <number> | Number of distinct rows | Optional; Present only when the output is aggregated |
samples.samples[sample].value_sum | <number> | Sum of all the values for the sorting column | Optional |
samples.samples[sample].vals | <array of <array of <string>>> | Values list | In XML, the values list is encoded as <val x0="val0" x1="val1" .../>, where x0..xN correspond to the columns defined in the view configuraton |
samples.samples[sample].vals[val] | <array of <string>> | Value | |
samples.samples[sample].vals[val][val] | <string> | ||
samples.samples[sample].gap_start | <timestamp-hp> | Timestamp at the start of a data gap, representing a period of time in which there are no output values for the view | If present, then the vals list will be empty. In XML, a gap is encoded as <gap t1="start" t2="end"/>. |
samples.samples[sample].gap_end | <timestamp-hp> | Timestamp at the end of a data gap, representing a period of time in which there are no output values for the view | If present, then the vals list will be empty. In XML, a gap is encoded as <gap t1="start" t2="end"/>. |
views: Get view statistics
Get processing statistics for view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}/statsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "input_size": number, "processed_size": number, "state": string, "locked": boolean, "time_details": { "start": timestamp-hp, "end": timestamp-hp, "delta": number }, "data_source_type": string }
Property Name | Type | Description | Notes |
---|---|---|---|
stats | <object> | View statistics | |
stats.input_size | <number> | Size (in bytes) of the input source to process | |
stats.processed_size | <number> | Size (in bytes) of the input source currently processed | |
stats.state | <string> | Handle state | Values: UNINITIALIZED, LOADED, PARAMS_LOADED, INITIALIZED, READY, RUNNING, ERRORS, DONE, CLOSING, PAUSED |
stats.locked | <boolean> | True if the view is locked | |
stats.time_details | <object> | Time details | |
stats.time_details.start | <timestamp-hp> | Output start time. Can be 0 if the output has no data. | |
stats.time_details.end | <timestamp-hp> | Output end time. Can be 0 if the output has no data. | |
stats.time_details.delta | <number> | Output sampling rate | |
stats.data_source_type | <string> | Data source type | Values: INDEX, PACKETS |
views: Lock view
Lock view {view_id}.
POST https://{device}/api/shark/4.0/views/{view_id}/lockAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
views: Unlock view
Unlock view {view_id}.
POST https://{device}/api/shark/4.0/views/{view_id}/unlockAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
views: Get view acl
Get access control list for running view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}/aclAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "users": [ { "name": string, "owner": boolean } ], "groups": [ string ] }
Property Name | Type | Description | Notes |
---|---|---|---|
acl | <object> | Access Control List | |
acl.users | <array of <object>> | Users in the access control list | |
acl.users[user] | <object> | User in the access list | |
acl.users[user].name | <string> | User name | |
acl.users[user].owner | <boolean> | True if the user is the owner of the view | |
acl.groups | <array of <string>> | Groups in the access control list | |
acl.groups[group] | <string> |
views: Update view acl
Modify access control list for running view {view_id}.
POST https://{device}/api/shark/4.0/views/{view_id}/aclAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "action": string, "value": string }
Property Name | Type | Description | Notes |
---|---|---|---|
acl_action | <object> | Action type on the access list | |
acl_action.action | <string> | Action type on the access list | Values: ADD_USER, REMOVE_USER, ADD_GROUP, REMOVE_GROUP |
acl_action.value | <string> | User/group name depending on the action type |
On success, the server does not provide any body in the responses.
watches: List watches
List of watches for view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}/watchesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ watch ]
Property Name | Type | Description | Notes |
---|---|---|---|
watches | <array of <watch>> | Watch list | |
watches[watch] | <watch> | Instance of a <watch> |
watches: Create watch
Create a new watch for view {view_id}.
POST https://{device}/api/shark/4.0/views/{view_id}/watchesAuthorization
This request requires authorization.
Request BodyProvide a watch data object.
Response BodyOn success, the server does not provide any body in the responses.
watches: Get watch detail
Config information for watch {watch_id} on view {view_id}.
GET https://{device}/api/shark/4.0/views/{view_id}/watches/{watch_id}Authorization
This request requires authorization.
Response BodyReturns a watch data object.
watches: Update watch
Update configuration for watch {watch_id} on view {view_id}.
PUT https://{device}/api/shark/4.0/views/{view_id}/watches/{watch_id}Authorization
This request requires authorization.
Request BodyProvide a watch data object.
Response BodyOn success, the server does not provide any body in the responses.
watches: Delete watch
Delete watch {watch_id} on view {view_id}.
DELETE https://{device}/api/shark/4.0/views/{view_id}/watches/{watch_id}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
watches: Disable watch
Disable watch {watch_id} on view {view_id}.
POST https://{device}/api/shark/4.0/views/{view_id}/watches/{watch_id}/disableAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
watches: Enable watch
Enable watch {watch_id} on view {view_id}.
POST https://{device}/api/shark/4.0/views/{view_id}/watches/{watch_id}/enableAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get basic settings
Get basic settings.
GET https://{device}/api/shark/4.0/settings/basicAuthorization
This request requires authorization.
Response BodyReturns a basic_settings data object.
settings: Update basic settings
Update basic settings.
PUT https://{device}/api/shark/4.0/settings/basicAuthorization
This request requires authorization.
Request BodyProvide a basic_settings data object.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get audit settings
Get audit settings.
GET https://{device}/api/shark/4.0/settings/auditAuthorization
This request requires authorization.
Response BodyReturns an audit_settings data object.
settings: Update audit settings
Update audit settings.
PUT https://{device}/api/shark/4.0/settings/auditAuthorization
This request requires authorization.
Request BodyProvide an audit_settings data object.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get authentication settings
Get authentication settings.
GET https://{device}/api/shark/4.0/settings/authAuthorization
This request requires authorization.
Response BodyReturns an auth_settings data object.
settings: Update authentication settings
Update authentication settings.
PUT https://{device}/api/shark/4.0/settings/authAuthorization
This request requires authorization.
Request BodyProvide an auth_settings data object.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get firewall settings
Get firewall settings.
GET https://{device}/api/shark/4.0/settings/firewallAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "default_policy": string, "firewall_enabled": boolean, "rules": [ { "description": string, "source": string, "dest_port": number, "protocol": string, "action": string } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
firewall_settings | <object> | Firewall configuration | |
firewall_settings.default_policy | <string> | Firewall default policy | Values: ACCEPT, DROP |
firewall_settings.firewall_enabled | <boolean> | Enables or disable the firewall | |
firewall_settings.rules | <array of <object>> | Rules list | |
firewall_settings.rules[rule] | <object> | ||
firewall_settings.rules[rule]. description |
<string> | Rule description | Optional |
firewall_settings.rules[rule].source | <string> | Rule IPV4 source address. It can contain a netmasks specified as CIDR format or as IPV4 address. | Optional |
firewall_settings.rules[rule].dest_port | <number> | Rule destination port | Optional |
firewall_settings.rules[rule].protocol | <string> | Rule protocol | Optional; Values: TCP, UDP, ICMP, ALL |
firewall_settings.rules[rule].action | <string> | Rule action, what the firewall should do with the packet when it matches the rule | Values: ACCEPT, DROP, LOG_ACCEPT, LOG_DROP |
settings: Update firewall settings
Update firewall settings.
PUT https://{device}/api/shark/4.0/settings/firewallAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "default_policy": string, "firewall_enabled": boolean, "rules": [ { "description": string, "source": string, "dest_port": number, "protocol": string, "action": string } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
firewall_settings | <object> | Firewall configuration | |
firewall_settings.default_policy | <string> | Firewall default policy | Values: ACCEPT, DROP |
firewall_settings.firewall_enabled | <boolean> | Enables or disable the firewall | |
firewall_settings.rules | <array of <object>> | Rules list | |
firewall_settings.rules[rule] | <object> | ||
firewall_settings.rules[rule]. description |
<string> | Rule description | Optional |
firewall_settings.rules[rule].source | <string> | Rule IPV4 source address. It can contain a netmasks specified as CIDR format or as IPV4 address. | Optional |
firewall_settings.rules[rule].dest_port | <number> | Rule destination port | Optional |
firewall_settings.rules[rule].protocol | <string> | Rule protocol | Optional; Values: TCP, UDP, ICMP, ALL |
firewall_settings.rules[rule].action | <string> | Rule action, what the firewall should do with the packet when it matches the rule | Values: ACCEPT, DROP, LOG_ACCEPT, LOG_DROP |
On success, the server does not provide any body in the responses.
settings: Get profiler export settings
Get profiler export settings.
GET https://{device}/api/shark/4.0/settings/profiler_exportAuthorization
This request requires authorization.
Response BodyReturns a profilerexport_settings data object.
settings: Update profiler export settings
Update profiler export settings.
PUT https://{device}/api/shark/4.0/settings/profiler_exportAuthorization
This request requires authorization.
Request BodyProvide a profilerexport_settings data object.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get snmp settings
Get SNMP settings.
GET https://{device}/api/shark/4.0/settings/snmpAuthorization
This request requires authorization.
Response BodyReturns a snmp_settings data object.
settings: Update snmp settings
Update SNMP settings.
PUT https://{device}/api/shark/4.0/settings/snmpAuthorization
This request requires authorization.
Request BodyProvide a snmp_settings data object.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get notification settings
Management daemon configuration parameters.
GET https://{device}/api/shark/4.0/settings/notificationAuthorization
This request requires authorization.
Response BodyReturns a notification_settings data object.
settings: Update notification settings
Update management daemon configuration parameters.
PUT https://{device}/api/shark/4.0/settings/notificationAuthorization
This request requires authorization.
Request BodyProvide a notification_settings data object.
Response BodyOn success, the server does not provide any body in the responses.
settings: List cors domains
List of domains enabled for Cross Origin Resource Sharing.
GET https://{device}/api/shark/4.0/settings/cors_domainsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ string ]
Property Name | Type | Description | Notes |
---|---|---|---|
cors_domains | <array of <string>> | List of CORS (Cross-Origin Resource Sharing) domains | |
cors_domains[domain] | <string> |
settings: Update cors domains
Update list of domains enabled for Cross Origin Resource Sharing.
PUT https://{device}/api/shark/4.0/settings/cors_domainsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ string ]
Property Name | Type | Description | Notes |
---|---|---|---|
cors_domains | <array of <string>> | List of CORS (Cross-Origin Resource Sharing) domains | |
cors_domains[domain] | <string> |
On success, the server does not provide any body in the responses.
settings: Get protocol groups
Get protocol group settings as a text file.
GET https://{device}/api/shark/4.0/settings/protocol_groupsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a request body containing data with content type text/plain.
settings: Update protocol groups
Update protocol group settings by uploading a text file with the new settings.
PUT https://{device}/api/shark/4.0/settings/protocol_groupsAuthorization
This request requires authorization.
Request BodyProvide a request body containing the Text file of protocol group settings. with content type text/plain.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get protocol names
Get protocol name settings as a text file.
GET https://{device}/api/shark/4.0/settings/protocol_namesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a request body containing data with content type text/plain.
settings: Update protocol names
Update protocol name settings by uploading a text file with the new settings.
PUT https://{device}/api/shark/4.0/settings/protocol_namesAuthorization
This request requires authorization.
Request BodyProvide a request body containing the Text file of protocol name settings. with content type text/plain.
Response BodyOn success, the server does not provide any body in the responses.
settings: Get raw settings
Get advanced settings as a text file.
GET https://{device}/api/shark/4.0/settings/rawAuthorization
This request requires authorization.
Response BodyOn success, the server returns a request body containing data with content type text/plain.
settings: Update raw settings
Update advanced settings by uploading a text file with the new settings.
PUT https://{device}/api/shark/4.0/settings/rawAuthorization
This request requires authorization.
Request BodyProvide a request body containing the Text file of protocol name settings. with content type text/plain.
Response BodyOn success, the server does not provide any body in the responses.
licenses: List licenses
List licenses on the system.
GET https://{device}/api/shark/4.0/settings/licensesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ license ]
Property Name | Type | Description | Notes |
---|---|---|---|
licenses | <array of <license>> | List of licenses currently in system | |
licenses[license] | <license> | Instance of a <license> |
licenses: Add licenses
Add a set of licenses to the system.
POST https://{device}/api/shark/4.0/settings/licensesAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ string ]
Property Name | Type | Description | Notes |
---|---|---|---|
licenses | <array of <string>> | List of license keys to add to the system | |
licenses[license] | <string> |
On success, the server returns a response body with the following structure:
- JSON
- XML
[ { "key": string, "url": string, "status": string } ]
Property Name | Type | Description | Notes |
---|---|---|---|
licenses | <array of <object>> | List of new licenses added to the system | |
licenses[license] | <object> | Description of a new license added to the system | |
licenses[license].key | <string> | New license key added to the system | |
licenses[license].url | <string> | Resource URI for the new license key | |
licenses[license].status | <string> | Status of the new license | Values: INVALID, VALID, VALID_SOON, FUTURE, EXPIRED_SOON, EXPIRED, SUPERSEDED, UNKNOWN |
licenses: Get license detail
Get information on license {license_key}.
GET https://{device}/api/shark/4.0/settings/licenses/{license_key}Authorization
This request requires authorization.
Response BodyReturns a license data object.
licenses: Delete license
Delete license {license_key}.
DELETE https://{device}/api/shark/4.0/settings/licenses/{license_key}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
licenses: Get license status
Get current licensing status of this Shark VE.
GET https://{device}/api/shark/4.0/settings/licenses/statusAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "application_status": string, "num_profilers": number, "profiler_export_capacity": number, "packet_storage_size": number, "enterprise_pilot_level": number }
Property Name | Type | Description | Notes |
---|---|---|---|
license_status | <object> | License status information for this Shark VE | |
license_status.application_status | <string> | License status for this Shark VE | Values: LICENSED_PHYSICAL, LICENSED, UNLICENSED_SOON, UNLICENSED, UNKNOWN |
license_status.num_profilers | <number> | Number of profilers supported for export | |
license_status.profiler_export_capacity | <number> | Export capacity (MBPS) for profiler export | |
license_status.packet_storage_size | <number> | Packet storage capacity (GB) | |
license_status.enterprise_pilot_level | <number> | Enterprise Pilot level |
licenses: Generate license request key
Request license request code.
POST https://{device}/api/shark/4.0/settings/licenses/requestAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "token": string }
Property Name | Type | Description | Notes |
---|---|---|---|
license_token | <object> | Submit a new license request | |
license_token.token | <string> | License request token (obtained from Riverbed customer support) |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "license_req": string }
Property Name | Type | Description | Notes |
---|---|---|---|
license_request | <object> | ||
license_request.license_req | <string> | License request string (to be submitted to Riverbed customer support) |
certificates: List certificates
List of certificates in the Shark.
GET https://{device}/api/shark/4.0/settings/certificatesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "web_certificate": { "issued_to": { "common_name": string, "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "issued_by": { "common_name": string, "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "validity": { "expire": timestamp, "issued": timestamp }, "fingerprint": number, "key": { "algorithm": string, "size": number }, "pem": string }, "profiler_export_certificate": { "issued_to": { "common_name": string, "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "issued_by": { "common_name": string, "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "validity": { "expire": timestamp, "issued": timestamp }, "fingerprint": number, "key": { "algorithm": string, "size": number }, "pem": string }, "trusted_profilers": [ { "id": string, "certificate": { "issued_to": { "common_name": string, "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "issued_by": { "common_name": string, "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "validity": { "expire": timestamp, "issued": timestamp }, "fingerprint": number, "key": { "algorithm": string, "size": number }, "pem": string } } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
certificates | <object> | Certificates info, | |
certificates.web_certificate | <object> | Certificate's info | |
certificates.web_certificate.issued_to | <object> | Certificate's details | |
certificates.web_certificate.issued_to. common_name |
<string> | Subject's common name | |
certificates.web_certificate.issued_to. |
<string> | Subject's email | |
certificates.web_certificate.issued_to. organization |
<string> | Subject's organization | |
certificates.web_certificate.issued_to. organization_unit |
<string> | Subject's organization unit | |
certificates.web_certificate.issued_to. locality |
<string> | Subject's locality | |
certificates.web_certificate.issued_to. state |
<string> | Subject's state (2 letters code) | |
certificates.web_certificate.issued_to. country |
<string> | Subject's state | |
certificates.web_certificate.issued_by | <object> | Certificate's details | |
certificates.web_certificate.issued_by. common_name |
<string> | Subject's common name | |
certificates.web_certificate.issued_by. |
<string> | Subject's email | |
certificates.web_certificate.issued_by. organization |
<string> | Subject's organization | |
certificates.web_certificate.issued_by. organization_unit |
<string> | Subject's organization unit | |
certificates.web_certificate.issued_by. locality |
<string> | Subject's locality | |
certificates.web_certificate.issued_by. state |
<string> | Subject's state (2 letters code) | |
certificates.web_certificate.issued_by. country |
<string> | Subject's state | |
certificates.web_certificate.validity | <object> | Certificate's validity info | |
certificates.web_certificate.validity. expire |
<timestamp> | Expire date timestamp in Unix time format | Seconds since January 1, 1970 |
certificates.web_certificate.validity. issued |
<timestamp> | Issueing date timestamp in Unix time format | Seconds since January 1, 1970 |
certificates.web_certificate.fingerprint | <number> | Certificate's fingerprint info | |
certificates.web_certificate.key | <object> | Contains information about the certificate's key | |
certificates.web_certificate.key. algorithm |
<string> | Key algorithm | Values: RSA |
certificates.web_certificate.key.size | <number> | Key length | |
certificates.web_certificate.pem | <string> | Contains the certificate in PEM format encode with Base64. This field contains only the public part of the certificate. | |
certificates.profiler_export_certificate | <object> | Certificate's info | |
certificates.profiler_export_certificate. issued_to |
<object> | Certificate's details | |
certificates.profiler_export_certificate. issued_to.common_name |
<string> | Subject's common name | |
certificates.profiler_export_certificate. issued_to.email |
<string> | Subject's email | |
certificates.profiler_export_certificate. issued_to.organization |
<string> | Subject's organization | |
certificates.profiler_export_certificate. issued_to.organization_unit |
<string> | Subject's organization unit | |
certificates.profiler_export_certificate. issued_to.locality |
<string> | Subject's locality | |
certificates.profiler_export_certificate. issued_to.state |
<string> | Subject's state (2 letters code) | |
certificates.profiler_export_certificate. issued_to.country |
<string> | Subject's state | |
certificates.profiler_export_certificate. issued_by |
<object> | Certificate's details | |
certificates.profiler_export_certificate. issued_by.common_name |
<string> | Subject's common name | |
certificates.profiler_export_certificate. issued_by.email |
<string> | Subject's email | |
certificates.profiler_export_certificate. issued_by.organization |
<string> | Subject's organization | |
certificates.profiler_export_certificate. issued_by.organization_unit |
<string> | Subject's organization unit | |
certificates.profiler_export_certificate. issued_by.locality |
<string> | Subject's locality | |
certificates.profiler_export_certificate. issued_by.state |
<string> | Subject's state (2 letters code) | |
certificates.profiler_export_certificate. issued_by.country |
<string> | Subject's state | |
certificates.profiler_export_certificate. validity |
<object> | Certificate's validity info | |
certificates.profiler_export_certificate. validity.expire |
<timestamp> | Expire date timestamp in Unix time format | Seconds since January 1, 1970 |
certificates.profiler_export_certificate. validity.issued |
<timestamp> | Issueing date timestamp in Unix time format | Seconds since January 1, 1970 |
certificates.profiler_export_certificate. fingerprint |
<number> | Certificate's fingerprint info | |
certificates.profiler_export_certificate. key |
<object> | Contains information about the certificate's key | |
certificates.profiler_export_certificate. key.algorithm |
<string> | Key algorithm | Values: RSA |
certificates.profiler_export_certificate. key.size |
<number> | Key length | |
certificates.profiler_export_certificate. pem |
<string> | Contains the certificate in PEM format encode with Base64. This field contains only the public part of the certificate. | |
certificates.trusted_profilers | <array of <object>> | List of Trusted Profiler certificates | |
certificates.trusted_profilers [trusted_profiler] |
<object> | Contains Trusted Profilers certificates info | |
certificates.trusted_profilers [trusted_profiler].id |
<string> | ID associated with the Trusted Profiler certificate | |
certificates.trusted_profilers [trusted_profiler].certificate |
<object> | Certificate's info | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to |
<object> | Certificate's details | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.common_name |
<string> | Subject's common name | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.email |
<string> | Subject's email | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.organization |
<string> | Subject's organization | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.organization_unit |
<string> | Subject's organization unit | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.locality |
<string> | Subject's locality | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.state |
<string> | Subject's state (2 letters code) | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_to.country |
<string> | Subject's state | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by |
<object> | Certificate's details | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.common_name |
<string> | Subject's common name | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.email |
<string> | Subject's email | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.organization |
<string> | Subject's organization | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.organization_unit |
<string> | Subject's organization unit | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.locality |
<string> | Subject's locality | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.state |
<string> | Subject's state (2 letters code) | |
certificates.trusted_profilers [trusted_profiler].certificate. issued_by.country |
<string> | Subject's state | |
certificates.trusted_profilers [trusted_profiler].certificate. validity |
<object> | Certificate's validity info | |
certificates.trusted_profilers [trusted_profiler].certificate. validity.expire |
<timestamp> | Expire date timestamp in Unix time format | Seconds since January 1, 1970 |
certificates.trusted_profilers [trusted_profiler].certificate. validity.issued |
<timestamp> | Issueing date timestamp in Unix time format | Seconds since January 1, 1970 |
certificates.trusted_profilers [trusted_profiler].certificate. fingerprint |
<number> | Certificate's fingerprint info | |
certificates.trusted_profilers [trusted_profiler].certificate.key |
<object> | Contains information about the certificate's key | |
certificates.trusted_profilers [trusted_profiler].certificate.key. algorithm |
<string> | Key algorithm | Values: RSA |
certificates.trusted_profilers [trusted_profiler].certificate.key. size |
<number> | Key length | |
certificates.trusted_profilers [trusted_profiler].certificate.pem |
<string> | Contains the certificate in PEM format encode with Base64. This field contains only the public part of the certificate. |
certificates: Update profiler export certificate
Upload a new profiler export certificate.
PUT https://{device}/api/shark/4.0/settings/certificates/profiler_exportAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "pem": string }
Property Name | Type | Description | Notes |
---|---|---|---|
certificate | <object> | Validity days for the new self signed certificate | |
certificate.pem | <string> | Contains the certificate in PEM format encode with Base64. This field contains both the public and private part of the new certificate. |
On success, the server does not provide any body in the responses.
certificates: Update web UI certificate
Upload a new web UI certificate.
PUT https://{device}/api/shark/4.0/settings/certificates/webAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "pem": string }
Property Name | Type | Description | Notes |
---|---|---|---|
certificate | <object> | Validity days for the new self signed certificate | |
certificate.pem | <string> | Contains the certificate in PEM format encode with Base64. This field contains both the public and private part of the new certificate. |
On success, the server does not provide any body in the responses.
certificates: Generate profiler export certificate
Request generation of new self-signed certificate and private key for profiler export
POST https://{device}/api/shark/4.0/settings/certificates/profiler_export/generateAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "issued_to": { "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "validity": { "days": number } }
Property Name | Type | Description | Notes |
---|---|---|---|
certificate_info | <object> | Contains info used to generate a new self signed certificate (only for Web Server and Profiler Export certificates) | |
certificate_info.issued_to | <object> | Contains data to generate a new self-signed certificate | |
certificate_info.issued_to.email | <string> | Subject's email | |
certificate_info.issued_to.organization | <string> | Subject's organization | |
certificate_info.issued_to. organization_unit |
<string> | Subject's organization unit | |
certificate_info.issued_to.locality | <string> | Subject's locality | |
certificate_info.issued_to.state | <string> | Subject's state (2 letters code) | |
certificate_info.issued_to.country | <string> | Subject's country | |
certificate_info.validity | <object> | Validity days for a new self signed certificate | |
certificate_info.validity.days | <number> | Validity days for a new self signed certificate |
On success, the server does not provide any body in the responses.
certificates: Generate web UI certificate
Request generation of new self-signed certificate and private key for the web UI
POST https://{device}/api/shark/4.0/settings/certificates/web/generateAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "issued_to": { "email": string, "organization": string, "organization_unit": string, "locality": string, "state": string, "country": string }, "validity": { "days": number } }
Property Name | Type | Description | Notes |
---|---|---|---|
certificate_info | <object> | Contains info used to generate a new self signed certificate (only for Web Server and Profiler Export certificates) | |
certificate_info.issued_to | <object> | Contains data to generate a new self-signed certificate | |
certificate_info.issued_to.email | <string> | Subject's email | |
certificate_info.issued_to.organization | <string> | Subject's organization | |
certificate_info.issued_to. organization_unit |
<string> | Subject's organization unit | |
certificate_info.issued_to.locality | <string> | Subject's locality | |
certificate_info.issued_to.state | <string> | Subject's state (2 letters code) | |
certificate_info.issued_to.country | <string> | Subject's country | |
certificate_info.validity | <object> | Validity days for a new self signed certificate | |
certificate_info.validity.days | <number> | Validity days for a new self signed certificate |
On success, the server does not provide any body in the responses.
certificates: Copy web UI certificate for profiler export
Request that web UI certificate be reused for profiler export.
POST https://{device}/api/shark/4.0/settings/certificates/profiler_export/copy_webAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
certificates: Copy profiler export certificate for web UI
Request that profiler export certificate be reused for the web UI.
POST https://{device}/api/shark/4.0/settings/certificates/web/copy_profiler_exportAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
certificates: Upload trusted profiler certificate
Upload a new trusted profiler certificate
POST https://{device}/api/shark/4.0/settings/certificates/trusted_profilersAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "id": string, "pem": string }
Property Name | Type | Description | Notes |
---|---|---|---|
trusted_profiler | <object> | Used to upload a new trusted profiler certificate | |
trusted_profiler.id | <string> | ID associated with the new Trusted Profiler certificate | |
trusted_profiler.pem | <string> | Contains the certificate in PEM format encode with Base64. This field contains only the public part of the certificate. |
On success, the server does not provide any body in the responses.
certificates: Delete trusted profiler certificate
Delete trusted profiler certificate {certificate_id}.
DELETE https://{device}/api/shark/4.0/settings/certificates/trusted_profilers/{certificate_id}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
users / groups: List groups
List local user groups defined for this Shark
GET https://{device}/api/shark/4.0/auth/groupsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ group ]
Property Name | Type | Description | Notes |
---|---|---|---|
groups | <array of <group>> | List of groups | |
groups[group] | <group> | Instance of a <group> |
users / groups: Create group
Create a new local user group
POST https://{device}/api/shark/4.0/auth/groupsAuthorization
This request requires authorization.
Request BodyProvide a group data object.
Response BodyOn success, the server does not provide any body in the responses.
users / groups: Get group detail
Retrieve a user group
GET https://{device}/api/shark/4.0/auth/groups/{group_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
group_id | <string> | Group identifier |
Returns a group data object.
users / groups: Delete group
Delete an existing user group
DELETE https://{device}/api/shark/4.0/auth/groups/{group_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
group_id | <string> | Group identifier |
On success, the server does not provide any body in the responses.
users / groups: List users
List of local users
GET https://{device}/api/shark/4.0/auth/usersAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ user ]
Property Name | Type | Description | Notes |
---|---|---|---|
users | <array of <user>> | List of users | |
users[user] | <user> | Instance of a <user> |
users / groups: Create user
Create new local user
POST https://{device}/api/shark/4.0/auth/usersAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "name": string, "can_be_locked": boolean, "password": string, "groups": [ string ] }
Property Name | Type | Description | Notes |
---|---|---|---|
user | <object> | Information to create a new user | |
user.name | <string> | User name | |
user.can_be_locked | <boolean> | 'true' if user can get locked, 'false' otherwise | |
user.password | <string> | User password | |
user.groups | <array of <string>> | List of groups of which the user is a member | |
user.groups[group] | <string> |
On success, the server does not provide any body in the responses.
users / groups: Get users detail
Get info on local user
GET https://{device}/api/shark/4.0/auth/users/{user_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
user_id | <string> | User identifier |
Returns a user data object.
users / groups: Update user password
Update password for local user
PUT https://{device}/api/shark/4.0/auth/users/{user_id}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
user_id | <string> | User identifier |
Provide a request body with the following structure:
- JSON
- XML
{ "new_password": string, "existing_password": string }
Property Name | Type | Description | Notes |
---|---|---|---|
password | <object> | Updates user password | |
password.new_password | <string> | New password | |
password.existing_password | <string> | Existing password | Optional |
On success, the server does not provide any body in the responses.
users / groups: Delete user
Delete local user
DELETE https://{device}/api/shark/4.0/auth/users/{user_id}Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
users / groups: Update user locked state
Update locked status of user [USER_ID]
PUT https://{device}/api/shark/4.0/auth/users/{user_id}/lockedAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
user_id | <string> | User identifier |
Provide a request body with the following structure:
- JSON
- XML
{ "value": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
locked | <object> | Unlock a locked user | |
locked.value | <boolean> | 'false' to unlock a locked user. 'true' value not supported as you cannot lock an unlocked user. |
On success, the server does not provide any body in the responses.
ping: Ping (GET)
Generic ping response.
GET https://{device}/api/shark/4.0/pingAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ }
Property Name | Type | Description | Notes |
---|---|---|---|
ping | <object> |
ping: Ping (POST)
Test availability of POST method.
POST https://{device}/api/shark/4.0/pingAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
ping: Ping (PUT)
Test availability of PUT method.
PUT https://{device}/api/shark/4.0/pingAuthorization
This request requires authorization.
Request BodyDo not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
ping: Ping (DELETE)
Test availability of DELETE method.
DELETE https://{device}/api/shark/4.0/pingAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
info: List supported tap types
List of supported tap types
GET https://{device}/api/shark/4.0/info/tap_typesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "type": string, "type_pretty": string, "description": string } ]
Property Name | Type | Description | Notes |
---|---|---|---|
tap_types | <array of <object>> | ||
tap_types[tap_type] | <object> | ||
tap_types[tap_type].type | <string> | Values: NONE, CPACKET, GIGAMON_HEADER, GIGAMON_TRAILER, GIGAMON_TRAILER_X12, VSS, VSS_PORT_ID, UNKNOWN | |
tap_types[tap_type].type_pretty | <string> | ||
tap_types[tap_type].description | <string> |
info: Get job defaults
List of capture job defaults
GET https://{device}/api/shark/4.0/info/job_defaultsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "snap_length": number, "retention_size_limit": number, "retention_size_pct": number, "index_size_limit": number, "index_size_pct": number, "job_name": string }
Property Name | Type | Description | Notes |
---|---|---|---|
job_defaults | <object> | Default values for a new capture job | |
job_defaults.snap_length | <number> | Default snap length | |
job_defaults.retention_size_limit | <number> | Default size limit (bytes) on retained capture job | |
job_defaults.retention_size_pct | <number> | Default max percent of disk for retained capture job | |
job_defaults.index_size_limit | <number> | Default size limit (bytes) of index for new capture job | |
job_defaults.index_size_pct | <number> | Default max percent of disk for index | |
job_defaults.job_name | <string> | Default name of new job |
info: List supported data types
List of supported Shark data types in views
GET https://{device}/api/shark/4.0/info/typesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "name": string, "calculations": [ string ] } ]
Property Name | Type | Description | Notes |
---|---|---|---|
types | <array of <object>> | List of supported Shark types | |
types[type] | <object> | Information for one Shark type | |
types[type].name | <string> | Shark type ID | Values: NONE, PROTOCOL, BOOLEAN, UINT8, UINT16, UINT24, UINT32, UINT64, INT8, INT16, INT24, INT32, INT64, FLOAT, DOUBLE, ABSOLUTE_TIME, RELATIVE_TIME, STRING, STRINGZ, SHORT_STRING, UINT_STRING, ETHER, BYTES, UINT_BYTES, IPv4, IPv6, UDP_PORT, TCP_PORT, IPXNET, FRAMENUM, PCRE, GUID, OID, NUM_TYPES, INDEX, EUI64 |
types[type].calculations | <array of <string>> | List of Shark calculations | |
types[type].calculations[calculation] | <string> | Values: NONE, SUM, MAX, MIN, AVG, TIME_AVG |
info: List supported extractor fields
List of supported Shark view extractor fields
GET https://{device}/api/shark/4.0/info/fieldsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "name": string, "type": string, "id": string, "group": string, "display_type": string, "description": string, "multi_segment": boolean, "index_calculations": [ string ], "dimension": boolean, "index": boolean } ]
Property Name | Type | Description | Notes |
---|---|---|---|
fields | <array of <object>> | ||
fields[field] | <object> | ||
fields[field].name | <string> | ||
fields[field].type | <string> | Values: NONE, PROTOCOL, BOOLEAN, UINT8, UINT16, UINT24, UINT32, UINT64, INT8, INT16, INT24, INT32, INT64, FLOAT, DOUBLE, ABSOLUTE_TIME, RELATIVE_TIME, STRING, STRINGZ, SHORT_STRING, UINT_STRING, ETHER, BYTES, UINT_BYTES, IPv4, IPv6, UDP_PORT, TCP_PORT, IPXNET, FRAMENUM, PCRE, GUID, OID, NUM_TYPES, INDEX, EUI64 | |
fields[field].id | <string> | ||
fields[field].group | <string> | ||
fields[field].display_type | <string> | Optional; Values: NONE, DEC, HEX, OCT, DEC_HEX, HEX_DEC, PERC | |
fields[field].description | <string> | Optional | |
fields[field].multi_segment | <boolean> | Optional | |
fields[field].index_calculations | <array of <string>> | Optional | |
fields[field].index_calculations [index_calculation] |
<string> | Values: NONE, SUM, MAX, MIN, AVG, TIME_AVG | |
fields[field].dimension | <boolean> | Optional | |
fields[field].index | <boolean> | Optional |
info: List supported file extensions
List of Shark file extensions
GET https://{device}/api/shark/4.0/info/file_extensionsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "description": string, "value": string } ]
Property Name | Type | Description | Notes |
---|---|---|---|
file_extensions | <array of <object>> | ||
file_extensions[file_extension] | <object> | ||
file_extensions[file_extension]. description |
<string> | ||
file_extensions[file_extension].value | <string> |
info: List mac vendors
List of supported MAC vendors (NOTE: This is a long listing.)
GET https://{device}/api/shark/4.0/info/mac_vendorsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "code": string, "name": string } ]
Property Name | Type | Description | Notes |
---|---|---|---|
mac_vendors | <array of <object>> | ||
mac_vendors[mac_vendor] | <object> | ||
mac_vendors[mac_vendor].code | <string> | ||
mac_vendors[mac_vendor].name | <string> |
info: List timezones
List of supported timezones
GET https://{device}/api/shark/4.0/info/timezonesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "selected": string, "timezones": [ string ] }
Property Name | Type | Description | Notes |
---|---|---|---|
timezone_config | <object> | ||
timezone_config.selected | <string> | ||
timezone_config.timezones | <array of <string>> | ||
timezone_config.timezones[timezone] | <string> |
system: Get system info
Detailed information about the currently running Shark.
GET https://{device}/api/shark/4.0/system/infoAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "hostname": string, "version": string, "internal_version": string, "protocol_version": string, "view_version": string, "build_time": string, "local_time": timestamp-hp, "start_time": timestamp-hp, "uptime": number, "timezone": string, "system_type": string, "build_type": string, "build_variant": string, "has_webui": boolean, "webui_port": number, "webui_SSL": boolean, "webui_root_path": string, "embedded_wireshark": boolean, "default_user_directory": string }
Property Name | Type | Description | Notes |
---|---|---|---|
system_info | <object> | Information about this Shark | |
system_info.hostname | <string> | Host name of this Shark | |
system_info.version | <string> | Current version of Shark software | |
system_info.internal_version | <string> | Current long-form version of Shark software | |
system_info.protocol_version | <string> | Current version of Shark REST API | |
system_info.view_version | <string> | Current version of Shark views | |
system_info.build_time | <string> | Date and time at which this Shark was built | |
system_info.local_time | <timestamp-hp> | Current system time | |
system_info.start_time | <timestamp-hp> | Time at which this Shark started | |
system_info.uptime | <number> | Elapsed time (in nanoseconds) since this Shark was started | |
system_info.timezone | <string> | UTC offset for this Shark | |
system_info.system_type | <string> | Operating system on which this Shark is running | |
system_info.build_type | <string> | Type of Shark build ('Final' for production, 'Debug' for testing) | |
system_info.build_variant | <string> | Variant of Shark build | |
system_info.has_webui | <boolean> | 'true' if the web UI is enabled for this build | |
system_info.webui_port | <number> | (If web UI is enabled) Port on which web UI can be accessed | Optional |
system_info.webui_SSL | <boolean> | (If web UI is enabled) 'true' if web UI uses SSL for transport | Optional |
system_info.webui_root_path | <string> | (If web UI is enabled) Root path for web UI resources | Optional |
system_info.embedded_wireshark | <boolean> | 'true' if Wireshark is embedded with this Shark | Optional |
system_info.default_user_directory | <string> | Default directory for user files | Optional |
system: Get audit log
Audit log as text file. Response content type is 'text/plain'.
GET https://{device}/api/shark/4.0/system/audit_logAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
system: Get version info
Version information for the currently running Shark.
GET https://{device}/api/shark/4.0/system/version_infoAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "shark_version": string, "shark_probe_version": string, "protocol_version": string, "packet_recorder_version": string, "turbocap_api_version": string, "turbocap_driver_version": string, "serial_number": string }
Property Name | Type | Description | Notes |
---|---|---|---|
version_info | <object> | ||
version_info.shark_version | <string> | ||
version_info.shark_probe_version | <string> | ||
version_info.protocol_version | <string> | ||
version_info.packet_recorder_version | <string> | ||
version_info.turbocap_api_version | <string> | ||
version_info.turbocap_driver_version | <string> | ||
version_info.serial_number | <string> |
system: Get system storage info
Storage monitor status.
GET https://{device}/api/shark/4.0/system/storageAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "can_reinitialize": boolean, "state": string, "state_type": string, "available_space": number, "allocated_space": number, "total_space": number, "used_space": number, "disks": [ { "row_id": string, "column_id": string, "label": string, "model": string, "serial": string, "expected_serial": string, "state": string, "state_type": string } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
storage | <object> | ||
storage.can_reinitialize | <boolean> | Optional | |
storage.state | <string> | ||
storage.state_type | <string> | Values: OK, WARNING, ERROR | |
storage.available_space | <number> | Optional | |
storage.allocated_space | <number> | Optional | |
storage.total_space | <number> | Optional | |
storage.used_space | <number> | Optional | |
storage.disks | <array of <object>> | Optional | |
storage.disks[disk] | <object> | ||
storage.disks[disk].row_id | <string> | ||
storage.disks[disk].column_id | <string> | ||
storage.disks[disk].label | <string> | ||
storage.disks[disk].model | <string> | ||
storage.disks[disk].serial | <string> | ||
storage.disks[disk].expected_serial | <string> | Optional | |
storage.disks[disk].state | <string> | ||
storage.disks[disk].state_type | <string> | Values: OK, WARNING, ERROR |
system: Reinitialize storage system
Request reinitialization of storage subsystem.
POST https://{device}/api/shark/4.0/system/storage/reinitializeAuthorization
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: Format storage system
Request packet storage reformat.
POST https://{device}/api/shark/4.0/system/format_storageAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "reserved_space": number }
Property Name | Type | Description | Notes |
---|---|---|---|
format_storage | <object> | Configuration information to format the packet storage | |
format_storage.reserved_space | <number> | Percentage of unused space at the end of the packet storage |
On success, the server does not provide any body in the responses.
system: Restart system
Restart the shark service or reboot the system.
POST https://{device}/api/shark/4.0/system/restartAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "type": string }
Property Name | Type | Description | Notes |
---|---|---|---|
restart | <object> | Configuration to restart | |
restart.type | <string> | Type of service to restart | Values: SHARK, PROBE, PACKETRECORDER |
On success, the server does not provide any body in the responses.
system: Shutdown system
Shut down the system.
POST https://{device}/api/shark/4.0/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: Generate system dump
GET https://{device}/api/shark/4.0/system/sysdump?dump_type={string}&case_id={string}Authorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
dump_type | <string> | 'CURRENT': Includes current Shark Probe and Shark Packet Recorder logs; 'PROBE': Includes all Shark Probe logs; 'PACKETRECORDER': Includes all Shark Packet Recorder logs; 'COMPLETE': Includes all Shark Probe and Shark Packet Recorder logs. | Optional |
case_id | <string> | Optional case ID to be attached to output file name. | Optional |
On success, the server does not provide any body in the responses.
system: Get system update status
Current system update status.
GET https://{device}/api/shark/4.0/system/updateAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "state": string, "shark_version": string, "shark_user_version": string, "init_id": string, "iso_name": string, "iso_size": number, "iso_sha_hash": string, "update_to": string, "update_to_internal": string, "pre_start_message": string, "estimate": number, "executing_job_description": string, "comment": string, "need_reboot": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
update | <object> | ||
update.state | <string> | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN | |
update.shark_version | <string> | ||
update.shark_user_version | <string> | ||
update.init_id | <string> | Optional | |
update.iso_name | <string> | Optional | |
update.iso_size | <number> | Optional | |
update.iso_sha_hash | <string> | Optional | |
update.update_to | <string> | Optional | |
update.update_to_internal | <string> | Optional | |
update.pre_start_message | <string> | Optional | |
update.estimate | <number> | ||
update.executing_job_description | <string> | Optional | |
update.comment | <string> | Optional | |
update.need_reboot | <boolean> | Optional |
system: Modify system update state
Update state of system update.
PUT https://{device}/api/shark/4.0/system/update/stateAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "state": string, "init_id": string, "reset": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
update_state | <object> | Request change in update state value on server | |
update_state.state | <string> | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN | |
update_state.init_id | <string> | Optional | |
update_state.reset | <boolean> | Optional |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "state": string, "shark_version": string, "shark_user_version": string, "init_id": string, "iso_name": string, "iso_size": number, "iso_sha_hash": string, "update_to": string, "update_to_internal": string, "pre_start_message": string, "estimate": number, "executing_job_description": string, "comment": string, "need_reboot": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
update | <object> | ||
update.state | <string> | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN | |
update.shark_version | <string> | ||
update.shark_user_version | <string> | ||
update.init_id | <string> | Optional | |
update.iso_name | <string> | Optional | |
update.iso_size | <number> | Optional | |
update.iso_sha_hash | <string> | Optional | |
update.update_to | <string> | Optional | |
update.update_to_internal | <string> | Optional | |
update.pre_start_message | <string> | Optional | |
update.estimate | <number> | ||
update.executing_job_description | <string> | Optional | |
update.comment | <string> | Optional | |
update.need_reboot | <boolean> | Optional |
system: Upload system update iso
Upload a new ISO file for system update
POST https://{device}/api/shark/4.0/system/update/isoAuthorization
This request requires authorization.
HTTP HeadersProperty Name | Type | Description | Notes |
---|---|---|---|
Content-Type | <string> | Content type | Must be 'multipart/form-data' |
Content-Disposition | <string> | Name of the file | Must be of the form Content-Disposition: form-data; name="iso-file"; filename="[FILENAME]" |
Provide a request body containing the update ISO file with content type multipart/form-data.
Response BodyOn success, the server does not provide any body in the responses.
system: Fetch system update iso
Request fetch of update ISO from a URL
POST https://{device}/api/shark/4.0/system/update/urlAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "url": string }
Property Name | Type | Description | Notes |
---|---|---|---|
update_fetch | <object> | ||
update_fetch.url | <string> |
On success, the server returns a response body with the following structure:
- JSON
- XML
{ "state": string, "shark_version": string, "shark_user_version": string, "init_id": string, "iso_name": string, "iso_size": number, "iso_sha_hash": string, "update_to": string, "update_to_internal": string, "pre_start_message": string, "estimate": number, "executing_job_description": string, "comment": string, "need_reboot": boolean }
Property Name | Type | Description | Notes |
---|---|---|---|
update | <object> | ||
update.state | <string> | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN | |
update.shark_version | <string> | ||
update.shark_user_version | <string> | ||
update.init_id | <string> | Optional | |
update.iso_name | <string> | Optional | |
update.iso_size | <number> | Optional | |
update.iso_sha_hash | <string> | Optional | |
update.update_to | <string> | Optional | |
update.update_to_internal | <string> | Optional | |
update.pre_start_message | <string> | Optional | |
update.estimate | <number> | ||
update.executing_job_description | <string> | Optional | |
update.comment | <string> | Optional | |
update.need_reboot | <boolean> | Optional |
stats: Get memory stats
System memory information.
GET https://{device}/api/shark/4.0/stats/memoryAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "status": string, "total": number, "used": number, "available": number, "reserved": number, "by_category": [ { "name": string, "allocations": number, "bytes": number } ], "by_handle": [ { "name": string, "by_category": [ { "name": string, "allocations": number, "bytes": number } ] } ] }
Property Name | Type | Description | Notes |
---|---|---|---|
memory | <object> | ||
memory.status | <string> | Values: OK, WARNING, CRITICAL, CONFIGURATION_ERROR | |
memory.total | <number> | ||
memory.used | <number> | ||
memory.available | <number> | ||
memory.reserved | <number> | ||
memory.by_category | <array of <object>> | ||
memory.by_category[category] | <object> | ||
memory.by_category[category].name | <string> | ||
memory.by_category[category].allocations | <number> | ||
memory.by_category[category].bytes | <number> | ||
memory.by_handle | <array of <object>> | ||
memory.by_handle[handle] | <object> | ||
memory.by_handle[handle].name | <string> | ||
memory.by_handle[handle].by_category | <array of <object>> | ||
memory.by_handle[handle].by_category [category] |
<object> | ||
memory.by_handle[handle].by_category [category].name |
<string> | ||
memory.by_handle[handle].by_category [category].allocations |
<number> | ||
memory.by_handle[handle].by_category [category].bytes |
<number> |
stats: Get storage stats
System storage information.
GET https://{device}/api/shark/4.0/stats/storageAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "packet_storage": { "status": string, "total": number, "reserved": number, "allocated": number, "unallocated": number, "used": number, "unused": number }, "os_storage": { "status": string, "disk_storage": { "total": number, "used": number, "unused": number }, "index_storage": { "total": number, "allocated": number, "unallocated": number, "used": number, "unused": number } } }
Property Name | Type | Description | Notes |
---|---|---|---|
storage | <object> | ||
storage.packet_storage | <object> | ||
storage.packet_storage.status | <string> | Values: OK, DISK_FULL, CORRUPTED, HW_FAILURE, UNLICENSED, LICENSE_EXCEEDED, UNKNOWN | |
storage.packet_storage.total | <number> | ||
storage.packet_storage.reserved | <number> | ||
storage.packet_storage.allocated | <number> | ||
storage.packet_storage.unallocated | <number> | ||
storage.packet_storage.used | <number> | ||
storage.packet_storage.unused | <number> | ||
storage.os_storage | <object> | ||
storage.os_storage.status | <string> | Values: OK, WARNING, CRITICAL, UNKNOWN | |
storage.os_storage.disk_storage | <object> | ||
storage.os_storage.disk_storage.total | <number> | ||
storage.os_storage.disk_storage.used | <number> | ||
storage.os_storage.disk_storage.unused | <number> | ||
storage.os_storage.index_storage | <object> | ||
storage.os_storage.index_storage.total | <number> | ||
storage.os_storage.index_storage. allocated |
<number> | ||
storage.os_storage.index_storage. unallocated |
<number> | ||
storage.os_storage.index_storage.used | <number> | ||
storage.os_storage.index_storage.unused | <number> |
stats: Get profiler export stats
Profiler export information.
GET https://{device}/api/shark/4.0/stats/profiler_exportAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "last_minute": { "exported": { "flows": number, "packets": number, "ip_bytes": number }, "rejected": { "flows": number, "packets": number, "ip_bytes": number } }, "last_week": { "exported": { "flows": number, "packets": number, "ip_bytes": number, "average_flows": number, "peak_flows": number }, "rejected": { "flows": number, "packets": number, "ip_bytes": number, "average_flows": number, "peak_flows": number } } }
Property Name | Type | Description | Notes |
---|---|---|---|
profiler_export_stats | <object> | Statistics on the Profiler Export | |
profiler_export_stats.last_minute | <object> | Statistics on the data exported in the last minute | |
profiler_export_stats.last_minute. exported |
<object> | Values sent to the profiler/s in the last minute | |
profiler_export_stats.last_minute. exported.flows |
<number> | Number of exported flows | |
profiler_export_stats.last_minute. exported.packets |
<number> | Cumulative number of packets for the exported flows | |
profiler_export_stats.last_minute. exported.ip_bytes |
<number> | Cumulative number of IP bytes (IP header included) for the exported flows | |
profiler_export_stats.last_minute. rejected |
<object> | Values analyzed but not sent to the profiler/s in the last minute | |
profiler_export_stats.last_minute. rejected.flows |
<number> | Number of rejected flows | |
profiler_export_stats.last_minute. rejected.packets |
<number> | Cumulative number of packets for the rejected flows | |
profiler_export_stats.last_minute. rejected.ip_bytes |
<number> | Cumulative number of IP bytes (IP header included) for the rejected flows | |
profiler_export_stats.last_week | <object> | Statistics on the data exported in the last week | |
profiler_export_stats.last_week.exported | <object> | Values sent to the profiler/s in the last week | |
profiler_export_stats.last_week.exported. flows |
<number> | Number of exported flows | |
profiler_export_stats.last_week.exported. packets |
<number> | Cumulative number of packets for the exported flows | |
profiler_export_stats.last_week.exported. ip_bytes |
<number> | Cumulative number of IP bytes (IP header included) for the exported flows | |
profiler_export_stats.last_week.exported. average_flows |
<number> | Average number of flows exported in the last week | |
profiler_export_stats.last_week.exported. peak_flows |
<number> | Max number of flows exported in a minute in the last week | |
profiler_export_stats.last_week.rejected | <object> | Values analyzed but not sent to the profiler/s in the last week | |
profiler_export_stats.last_week.rejected. flows |
<number> | Number of rejected flows | |
profiler_export_stats.last_week.rejected. packets |
<number> | Cumulative number of packets for the rejected flows | |
profiler_export_stats.last_week.rejected. ip_bytes |
<number> | Cumulative number of IP bytes (IP header included) for the rejected flows | |
profiler_export_stats.last_week.rejected. average_flows |
<number> | Average number of flows rejected in the last week | |
profiler_export_stats.last_week.rejected. peak_flows |
<number> | Max number of flows rejected in a minute in the last week |
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 |
---|---|---|
REQUEST_INVALID_INPUT | 400 | The request is invalid |
AUTH_REQUIRED | 401 | Missing authentication credentials |
AUTH_INVALID_CREDENTIALS | 401 | Invalid user name or password |
AUTH_INVALID_SESSION | 401 | The authentication session has timed out or is invalid |
AUTH_EXPIRED_PASSWORD | 401 | Account password has expired |
AUTH_INVALID_CODE | 401 | The Oauth access code is invalid |
AUTH_EXPIRED_TOKEN | 401 | The Oauth token has expired |
AUTH_EXPIRED_CODE | 401 | The Oauth access code has expired |
AUTH_DISABLED_ACCOUNT | 403 | Account has been disabled |
AUTH_FORBIDDEN | 403 | Account does not have privileges for this request |
AUTH_INVALID_TOKEN | 403 | The Oauth token is invalid |
RESOURCE_NOT_FOUND | 404 | The requested resource was not found |
HTTP_INVALID_METHOD | 405 | The requested method is not supported by this resouce |
INTERNAL_ERROR | 500 | Internal error occurred |