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 and managing trace clips
-
Uploading and/or extracting packet data from the appliance
-
Extracting and modifiying system configuration, including user configuration, capture job management, basic system configuration, etc.
-
Managing protocol definitions (port names, port groups, layer 4 mappings, and custom applications)
-
Access system version information and apply system updates
-
Managing interface settings, including name, description, tap type, etc.
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
Get the list of capture interfaces
GET https://{device}/api/shark/5.1/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 ] Example: [ { "interface_components": [], "description": "TurboCap 1Gb device no.0", "link": { "status": "UP", "tap_type": "NONE", "stats": { "bytes_rx": 73478815, "packets_rx": 1007752 }, "dedup_status": "DISABLED", "speed_options": [ { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "HALF" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "HALF" }, { "status": "NEGOTIATED", "speed_mbps": "MBPS_1000", "duplex_type": "FULL" } ], "mac_address": "00:e0:ed:1e:9d:1a", "blink_status": "OFF", "type": "EN10MB" }, "board": { "pass_thru": "DISABLED", "type": "1G_COPPER", "name": "TurboCap 1 Gigabit Ethernet Board (00:e0:ed:1e:9d:1a)" }, "is_promiscuous_mode": true, "type": "TURBOCAP_ADAPTER", "id": "tc0", "name": "tc0" }, { "interface_components": [], "description": "TurboCap 1Gb device no.1", "link": { "status": "DOWN", "tap_type": "NONE", "stats": { "bytes_rx": 0, "packets_rx": 0 }, "dedup_status": "DISABLED", "speed_options": [ { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "HALF" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "HALF" }, { "status": "ENABLED", "speed_mbps": "MBPS_1000", "duplex_type": "FULL" } ], "mac_address": "00:e0:ed:1e:9d:1b", "blink_status": "OFF", "type": "EN10MB" }, "board": { "pass_thru": "DISABLED", "type": "1G_COPPER", "name": "TurboCap 1 Gigabit Ethernet Board (00:e0:ed:1e:9d:1a)" }, "is_promiscuous_mode": true, "type": "TURBOCAP_ADAPTER", "id": "tc1", "name": "tc1" }, { "interface_components": [], "description": "TurboCap 1Gb device no.2", "link": { "status": "UP", "tap_type": "NONE", "stats": { "bytes_rx": 0, "packets_rx": 0 }, "dedup_status": "DISABLED", "speed_options": [ { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "HALF" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "HALF" }, { "status": "NEGOTIATED", "speed_mbps": "MBPS_1000", "duplex_type": "FULL" } ], "mac_address": "00:e0:ed:1e:9d:1c", "blink_status": "OFF", "type": "EN10MB" }, "board": { "pass_thru": "DISABLED", "type": "1G_COPPER", "name": "TurboCap 1 Gigabit Ethernet Board (00:e0:ed:1e:9d:1c)" }, "is_promiscuous_mode": true, "type": "TURBOCAP_ADAPTER", "id": "tc2", "name": "tc2" }, { "interface_components": [], "description": "TurboCap 1Gb device no.3", "link": { "status": "UP", "tap_type": "NONE", "stats": { "bytes_rx": 0, "packets_rx": 0 }, "dedup_status": "DISABLED", "speed_options": [ { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_10", "duplex_type": "HALF" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "FULL" }, { "status": "ENABLED", "speed_mbps": "MBPS_100", "duplex_type": "HALF" }, { "status": "NEGOTIATED", "speed_mbps": "MBPS_1000", "duplex_type": "FULL" } ], "mac_address": "00:e0:ed:1e:9d:1d", "blink_status": "OFF", "type": "EN10MB" }, "board": { "pass_thru": "DISABLED", "type": "1G_COPPER", "name": "TurboCap 1 Gigabit Ethernet Board (00:e0:ed:1e:9d:1c)" }, "is_promiscuous_mode": true, "type": "TURBOCAP_ADAPTER", "id": "tc3", "name": "tc3" }, { "interface_components": [ "tc2", "tc3" ], "description": "TurboCap Board Aggregating Port", "board": { "pass_thru": "DISABLED", "type": "1G_COPPER", "name": "TurboCap 1 Gigabit Ethernet Board (00:e0:ed:1e:9d:1c)" }, "is_promiscuous_mode": true, "type": "BOARD_AGGREGATING", "id": "tc_bap_00e0ed1e9d1c", "name": "tc_bap_00e0ed1e9d1c" }, { "interface_components": [ "tc0", "tc1" ], "description": "TurboCap Board Aggregating Port (2)", "board": { "pass_thru": "DISABLED", "type": "1G_COPPER", "name": "TurboCap 1 Gigabit Ethernet Board (00:e0:ed:1e:9d:1a)" }, "is_promiscuous_mode": true, "type": "BOARD_AGGREGATING", "id": "tc_bap_00e0ed1e9d1a", "name": "tc_bap_00e0ed1e9d1a" }, { "interface_components": [ "tc0", "tc1", "tc2", "tc3" ], "description": "TurboCap Aggregating Port", "is_promiscuous_mode": true, "type": "AGGREGATING", "id": "tc_tcap", "name": "tc_tcap" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
interfaces | <array of <interface>> | List of interfaces | |
interfaces[interface] | <interface> | Instance of an <interface> |
interfaces: Get interface info
Get information on capture interface {interface_id}.
GET https://{device}/api/shark/5.1/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 capture interface {interface_id}.
PUT https://{device}/api/shark/5.1/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
{ "name": string, "description": string, "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 } ] } Example: { "dedup_status": "ENABLED", "tap_type": "GIGAMON_HEADER", "speed_options": [ { "speed_mbps": "MBPS_10", "duplex_type": "HALF" }, { "speed_mbps": "MBPS_10", "duplex_type": "FULL" }, { "speed_mbps": "MBPS_100", "duplex_type": "HALF" }, { "speed_mbps": "MBPS_100", "duplex_type": "FULL" }, { "speed_mbps": "MBPS_1000", "duplex_type": "FULL" } ] }
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.name | <string> | New alias for this interface | Optional |
interface_settings.description | <string> | New description string for this interface | Optional |
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, ANUE, ARISTA, 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/5.1/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 } Example: { "blink_status": "ON" }
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 list of configured capture jobs
GET https://{device}/api/shark/5.1/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 } ] Example: [ { "id": "00000001", "status": { "state": "STOPPED", "packet_size": 44781772, "packet_start_time": 1344456875, "packet_end_time": 1345512749 }, "config": { "packet_retention": { "size_limit": 5368709120 }, "name": "New Job 1", "interface_description": "mon0", "snap_length": 65535, "interface_name": "mon0" } } ]
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/5.1/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 } Example: { "id": "00000001" }
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/5.1/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 } Example: { "id": "00000001", "status": { "state": "STOPPED", "packet_size": 44781772, "packet_start_time": 1344456875000000000, "packet_end_time": 1345512749000000000 }, "config": { "packet_retention": { "size_limit": 5368709120 }, "indexing": { "size_limit": 52428800, "synced": false, "time_limit": 604800, "dpi_enabled": true }, "name": "New Job 1", "interface_description": "mon0", "snap_length": 65535, "interface_name": "mon0" }, "index": { "status": "RUNNING", "start_time": 1344456875000000000, "end_time": 1345512749000000000, "size": 52348800 } }
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/5.1/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/5.1/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/5.1/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": number, "last_second": number, "last_minute": number, "last_hour": number }, "packets_dropped": { "total": number, "last_second": number, "last_minute": number, "last_hour": number } } Example: { "packets_dropped": { "last_minute": 0, "last_hour": 0, "total": 0, "last_second": 0 }, "packets_written": { "last_minute": 1815, "last_hour": 3019, "total": 123387, "last_second": 0 } }
Property Name | Type | Description | Notes |
---|---|---|---|
job_stats | <object> | Capture job statistics | |
job_stats.packets_written | <object> | Statistics for the number of packets successfully written to the packet storage | |
job_stats.packets_written.total | <number> | Total number of packets since the job was started | |
job_stats.packets_written.last_second | <number> | Number of packets in the last second | |
job_stats.packets_written.last_minute | <number> | Number of packets in the last minute | |
job_stats.packets_written.last_hour | <number> | Number of packets in the last hour | |
job_stats.packets_dropped | <object> | Statistics for the number of packets that arrived at the capture port but could not be written successfully to the packet storage | |
job_stats.packets_dropped.total | <number> | Total number of packets since the job was started | |
job_stats.packets_dropped.last_second | <number> | Number of packets in the last second | |
job_stats.packets_dropped.last_minute | <number> | Number of packets in the last minute | |
job_stats.packets_dropped.last_hour | <number> | Number of packets in the last hour |
jobs: Get job index status
Index information for capture job.
GET https://{device}/api/shark/5.1/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/5.1/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/5.1/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 } Example: { "state": "STOPPED", "clear_packets": true }
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/5.1/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
Get the list of trace clips
GET https://{device}/api/shark/5.1/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 } ] Example: [ { "id": "000000A30002", "status": { "creation_time": 1345830425, "modification_time": 1345830535, "estimated_size": 268435456, "locked": true }, "config": { "job_id": "000000A3", "description": "This is a clip on job 000000A3", "filters": [ { "type": "TIME", "value": "1345830425000000000, 1345830435000000000", "description": "This is a time filter." }, { "type": "BPF", "value": "port 80" } ] }, "index": { "status": "OK", "start_time": 1345830425000000000, "end_time": 1345830435000000000 } }, { "id": "000000A30003", "status": { "creation_time": 1345830563, "modification_time": 1345830563, "estimated_size": 268435456, "locked": true }, "config": { "job_id": "000000A3", "description": "This is the third clip on job 000000A3", "filters": [ { "type": "TIME", "value": "1345830493000000000, 1345830596000000000", "description": "This is a time filter." }, { "type": "SHARK", "value": "tcp.port=\"80\"", "description": "This is a shark filter." } ] } } ]
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
POST https://{device}/api/shark/5.1/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 } Example: { "id": "000000A30002" }
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}
GET https://{device}/api/shark/5.1/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 } Example: { "id": "000000A30002", "status": { "creation_time": 1345830425, "modification_time": 1345830535, "estimated_size": 268435456, "locked": true }, "config": { "job_id": "000000A3", "description": "This is a clip on job 000000A3", "filters": [ { "type": "TIME", "value": "1345830425000000000, 1345830435000000000", "description": "This is a time filter." }, { "type": "BPF", "value": "port 80" } ] }, "index": { "status": "OK", "start_time": 1345830425000000000, "end_time": 1345830435000000000 } }
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}
PUT https://{device}/api/shark/5.1/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}
DELETE https://{device}/api/shark/5.1/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}
GET https://{device}/api/shark/5.1/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}
GET https://{device}/api/shark/5.1/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}
PUT https://{device}/api/shark/5.1/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 } Example: { "locked": true }
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}
GET https://{device}/api/shark/5.1/clips/{clip_id}/indexAuthorization
This request requires authorization.
ParametersProperty Name | Type | Description | Notes |
---|---|---|---|
clip_id | <string> | Clip identifier |
Returns an index_info data object.
filesystem: List root directory
Get the contents of the root filesystem directory
GET https://{device}/api/shark/5.1/fsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ dir ] Example: [ { "files": [ { "created": 1347053478, "modified": 1347053478, "id": "/admin/http-ng.pcapng", "type": "PCAPNG_FILE", "link_type": "DLT_EN10MB", "size": 149952 }, { "created": 1343026049, "modified": 1343026050, "id": "/admin/prova.cap", "type": "PCAP_FILE", "link_type": "DLT_EN10MB", "size": 145919 } ], "dirs": [ { "files": [ { "created": 1342768036, "modified": 1342768037, "id": "/admin/multisegment/2-router1-in.pcap", "type": "PCAP_FILE", "link_type": "DLT_EN10MB", "size": 16246 }, { "created": 1342768038, "modified": 1342768038, "id": "/admin/multisegment/4-router2-in.pcap", "type": "PCAP_FILE", "link_type": "DLT_EN10MB", "size": 15988 }, { "created": 1342768038, "modified": 1342768038, "id": "/admin/multisegment/6-router3-in.pcap", "type": "PCAP_FILE", "link_type": "DLT_EN10MB", "size": 15988 }, { "created": 1342768079, "modified": 1348764826, "linked_sources": [ { "path": "2-router1-in.pcap" }, { "path": "4-router2-in.pcap" }, { "path": "6-router3-in.pcap" } ], "id": "/admin/multisegment/merged.pvt", "type": "MERGED_FILE", "link_type": "DLT_EN10MB", "size": 243 }, { "created": 1342768084, "modified": 1348764826, "linked_sources": [ { "path": "2-router1-in.pcap", "default_source": true }, { "path": "4-router2-in.pcap" }, { "path": "fs/admin/multisegment/6-router3-in.pcap" } ], "id": "/admin/multisegment/multisegment.pvt", "type": "MULTISEGMENT_FILE", "link_type": "DLT_EN10MB", "size": 264 } ], "dirs": [], "description": "This is a multi-segment file", "created": 1342767955, "modified": 1343077906, "id": "/admin/multisegment" }, { "files": [ { "created": 1342645581, "modified": 1342646988, "id": "/admin/new-dir/http.cap", "type": "PCAP_FILE", "link_type": "DLT_EN10MB", "size": 147456 } ], "dirs": [], "description": "This is a custom folder", "created": 1348764627, "modified": 1348764743, "id": "/admin/new-dir" } ], "description": "My Files", "created": 1341252038, "modified": 1348764743, "id": "/admin" }, { "files": [], "dirs": [], "description": "normaluser Home Folder", "created": 1341252038, "modified": 1341252038, "id": "/normaluser" }, { "files": [], "dirs": [], "description": "Files Shared with Administrators", "created": 1341252871, "modified": 1341252871, "id": "/Administrators" }, { "files": [], "dirs": [], "description": "Files Shared with NormalUsers", "created": 1341252871, "modified": 1341252871, "id": "/NormalUsers" }, { "files": [], "dirs": [], "description": "Files Shared with Viewers", "created": 1341252871, "modified": 1341252871, "id": "/Viewers" } ]
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/5.1/fs/{directory_id}?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/5.1/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 | Values: application/x-vnd.tcpdump, x-shark-directory, application/json, or text/xml |
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 merged or multisegment 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 } ] } Example: { "linked_sources": [ { "path": "../2-router1-in.pcap", "default_source": true, "description": "This source uses a relative path" }, { "path": "fs/admin/4-router2-in.pcap", "timeskew": 100000000, "description": "This source uses an absolute path" }, { "path": "6-router3-in.pcap", "description": "This source uses a file name" } ], "type": "MULTISEGMENT_FILE" }
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/5.1/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/5.1/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/5.1/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 } ] } Example: { "linked_sources": [ { "path": "../2-router1-in.pcap", "default_source": true, "description": "This source uses a relative path" }, { "path": "fs/admin/4-router2-in.pcap", "timeskew": 100000000, "description": "This source uses an absolute path" }, { "path": "6-router3-in.pcap", "description": "This source uses a file name" } ], "type": "MULTISEGMENT_FILE" }
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/5.1/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/5.1/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/5.1/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 } Example: { "method": "SHA256", "value": "db8afb5138e5dcea93092ebcb8d20ab855e68b086d6541d68a942914e2a74372" }
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/5.1/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/5.1/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/5.1/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/5.1/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 } Example: { "destination": "/admin/new-dir/http.cap" }
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/5.1/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/5.1/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 } ] } Example: { "status": { "state": "OK" }, "results": [ { "source_index": 1, "timeskew": 0 }, { "source_index": 2, "timeskew": -1000000 }, { "source_index": 3, "timeskew": 30654891 } ] }
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/5.1/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/5.1/{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 } Example: { "id": "000193E1" }
Property Name | Type | Description | Notes |
---|---|---|---|
export_id | <object> | ||
export_id.id | <string> | ID of created export |
packet export: List export operations
Get the list of active export operations from the given source.
GET https://{device}/api/shark/5.1/{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 ] Example: [ { "status": { "owner": "admin", "creation_time": 1364334117658433000, "state": "RUNNING", "bytes_approx": 855784 }, "config": { "output_format": "PCAP_US", "end_time": 1364317200, "start_time": 1364230933 }, "id": "000193E1" } ]
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/5.1/{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/5.1/{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/5.1/{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/5.1/{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 the list of currently running views.
GET https://{device}/api/shark/5.1/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 } ] } ] Example: [ { "locked": false, "creation_time": 1348518372678002, "watches": [], "state": "DONE", "owner": "admin", "id": "00018ED5" } ]
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/5.1/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 } Example: { "id": "00018ED5", "data_source_type": "PACKETS" }
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/5.1/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/5.1/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/5.1/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 } ] Example: [ { "description": "IP protocol, TCP port or UDP port converted into a traffic type string (e.g. 'Email' or 'Web').", "calculation": "NONE", "id": "x0", "field": "generic.application", "base": "NONE", "type": "SHORT_STRING", "dimension": true, "name": "Traffic Type" }, { "description": "Bit Count", "calculation": "TIME_AVG", "id": "x1", "field": "generic.bits", "base": "DEC", "type": "UINT64", "dimension": false, "name": "Bits" } ]
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 type | Values: NONE, SUM, MAX, MIN, AVG, TIME_AVG, REPLACE |
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/5.1/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 } ] } Example: { "samples": [ { "t": 1195590481719742000, "p": 391, "value_count": 5, "value_sum": 2784448, "vals": [ [ "IM", "776" ], [ "ICMP", "3424" ], [ "Voice/Video", "4480" ], [ "Unknown", "126696" ], [ "Web", "2649072" ] ] }, { "t": 1195590482719742000, "p": 416, "value_count": 6, "value_sum": 2805144, "vals": [ [ "ICMP", "480" ], [ "ARP", "1184" ], [ "IM", "2552" ], [ "Voice/Video", "4480" ], [ "Unknown", "111424" ], [ "Web", "2685024" ] ] }, { "t": 1195590483719742000, "p": 390, "value_count": 4, "value_sum": 2758864, "vals": [ [ "ARP", "2000" ], [ "IM", "7808" ], [ "Unknown", "115392" ], [ "Web", "2633664" ] ] } ] }
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/5.1/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 } Example: { "locked": false, "data_source_type": "PACKETS", "state": "DONE", "input_size": 190654505, "time_details": { "start": 1195590481719742000, "end": 1195590918719742000, "delta": 1000000000 }, "processed_size": 190654505 }
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/5.1/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/5.1/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 the access control list for running view {view_id}.
GET https://{device}/api/shark/5.1/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 ] } Example: { "users": [ { "owner": true, "name": "admin" } ], "groups": [] }
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 the access control list for running view {view_id}.
POST https://{device}/api/shark/5.1/views/{view_id}/aclAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "action": string, "value": string } Example: { "action": "ADD_USER", "value": "normaluser" }
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
Get the list of watches for view {view_id}.
GET https://{device}/api/shark/5.1/views/{view_id}/watchesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ watch ] Example: [ { "info": { "name": "Watch 1" }, "severity": 6, "triggers": [ { "uid": "Trigger 1", "dimension_restrictions": { "sub_restrictions": [], "restrictions": [ { "field": "c1", "value": "Web" } ], "bool_operator": "OR" }, "condition_operator": "AND", "bool_operator": "OR", "conditions": [ { "field": "c2", "condition_info": { "aggregation_type": "VALUE", "check_type": "GREATER", "value": "0" } } ] } ], "watch_uid": "watch_1", "enabled": true, "actions": { "actions": [ { "type": "InternalDBLog", "uid": "Action 1", "parameters": [], "side": "SERVER" } ], "fired_triggers": { "bool_operator": "AND", "triggering_mode": "LEADINGEDGE", "triggers": [ "Trigger 1" ] } }, "timing": { "time_analysis_mode": "SAMPLE_BY_SAMPLE", "from": "NOW", "interval_ms": 1000 }, "output_uid": "OUID_Output_Over_Time" } ]
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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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 } ] } Example: { "rules": [ { "action": "ACCEPT", "source": "10.0.0.1", "protocol": "TCP", "description": "Allow HTTPS for all the hosts", "dest_port": 65535 }, { "action": "ACCEPT", "protocol": "TCP", "description": "Allow SSH for all the hosts", "dest_port": 22 }, { "action": "ACCEPT", "protocol": "ICMP", "description": "Allow ICMP for all the hosts" } ], "firewall_enabled": true, "default_policy": "DROP" }
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/5.1/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 } ] } Example: { "rules": [ { "action": "ACCEPT", "source": "10.0.0.1", "protocol": "TCP", "description": "Allow HTTPS for all the hosts", "dest_port": 65535 }, { "action": "ACCEPT", "protocol": "TCP", "description": "Allow SSH for all the hosts", "dest_port": 22 }, { "action": "ACCEPT", "protocol": "ICMP", "description": "Allow ICMP for all the hosts" } ], "firewall_enabled": true, "default_policy": "DROP" }
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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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/5.1/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
Get the list of domains enabled for Cross Origin Resource Sharing.
GET https://{device}/api/shark/5.1/settings/cors_domainsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ string ] Example: [ "http://example_domain1.com", "http://example_domain2.com" ]
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 the list of domains enabled for Cross Origin Resource Sharing.
PUT https://{device}/api/shark/5.1/settings/cors_domainsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ string ] Example: [ "http://example_domain1.com", "http://example_domain2.com" ]
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.
licenses: List licenses
Get the list of licenses on the system.
GET https://{device}/api/shark/5.1/settings/licensesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ { "key": string, "status": string, "is_platform": boolean, "feature_name": string, "feature_description": string, "valid_from": timestamp, "valid_to": timestamp } ] Example: [ { "status": "VALID", "valid_from": "no_limit", "valid_to": "no_limit", "feature_name": "VLAB", "key": "LK1-FEAT1-0000-0000-1-2644-76FE-6436", "is_platform": false, "feature_description": "FEAT1 License, Max Limits" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
licenses | <array of <object>> | List of licenses currently in system | |
licenses[license] | <object> | Information for a Shark license | |
licenses[license].key | <string> | License key for this license | |
licenses[license].status | <string> | Status of this license | Values: INVALID, VALID, VALID_SOON, FUTURE, EXPIRES_SOON, EXPIRED, SUPERSEDED, UNKNOWN |
licenses[license].is_platform | <boolean> | 'true' if this is a platform license | |
licenses[license].feature_name | <string> | Feature covered by this license | |
licenses[license].feature_description | <string> | Description of feature covered by this license | |
licenses[license].valid_from | <timestamp> | Date/time (seconds from epoch) at which this license becomes valid (0 if always valid) | Seconds since January 1, 1970 |
licenses[license].valid_to | <timestamp> | Date/time (seconds from epoch) at which this license expires (0 if always valid) | Seconds since January 1, 1970 |
licenses: Add licenses
Add a set of licenses to the system.
POST https://{device}/api/shark/5.1/settings/licensesAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ string ] Example: [ "LK1-FEAT1-0000-0000-1-2644-76FE-6436" ]
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 } ] Example: [ { "key": "LK1-FEAT1-0000-0000-1-2644-76FE-6436", "status": "VALID", "url": "/api/shark/4.0/settings/licenses/LK1-VLAB-0000-0000-1-2644-76FE-6436.json" } ]
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, EXPIRES_SOON, EXPIRED, SUPERSEDED, UNKNOWN |
licenses: Get license detail
Get information on license {license_key}.
GET https://{device}/api/shark/5.1/settings/licenses/{license_key}Authorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
{ "key": string, "status": string, "is_platform": boolean, "feature_name": string, "feature_description": string, "valid_from": timestamp, "valid_to": timestamp } Example: { "status": "VALID", "valid_from": "no_limit", "valid_to": "no_limit", "feature_name": "VLAB", "key": "LK1-VLAB-0000-0000-1-2644-76FE-6436", "is_platform": false, "feature_description": "VLAB License, Max Limits" }
Property Name | Type | Description | Notes |
---|---|---|---|
license | <object> | Information for a Shark license | |
license.key | <string> | License key for this license | |
license.status | <string> | Status of this license | Values: INVALID, VALID, VALID_SOON, FUTURE, EXPIRES_SOON, EXPIRED, SUPERSEDED, UNKNOWN |
license.is_platform | <boolean> | 'true' if this is a platform license | |
license.feature_name | <string> | Feature covered by this license | |
license.feature_description | <string> | Description of feature covered by this license | |
license.valid_from | <timestamp> | Date/time (seconds from epoch) at which this license becomes valid (0 if always valid) | Seconds since January 1, 1970 |
license.valid_to | <timestamp> | Date/time (seconds from epoch) at which this license expires (0 if always valid) | Seconds since January 1, 1970 |
licenses: Delete license
Delete license {license_key}.
DELETE https://{device}/api/shark/5.1/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/5.1/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 } Example: { "num_profilers": 2, "packet_storage_size": 50, "enterprise_pilot_level": 0, "application_status": "LICENSED", "profiler_export_capacity": 200 }
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, STATUS_CHANGED, 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/5.1/settings/licenses/requestAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "token": string } Example: { "token": "SHKDSK50-67A9DA741BE548DA151FA1F3" }
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 } Example: { "license_req": "shark.localdom-C1239NVM-GUGQSGVL-FLHVVEQM-CQLHS1FF-FPYU9U5L-417PUN6K-9WGPHV0A-JPKS8KG6" }
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
Get the list of certificates
GET https://{device}/api/shark/5.1/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 } } ] } Example: { "web_certificate": { "issued_to": { "locality": "San%20Francisco", "country": "US", "organization_unit": "", "state": "CA", "common_name": "WPIRAS-W7", "organization": "Riverbed%20Technology", "email": "" }, "issued_by": { "locality": "San%20Francisco", "country": "US", "organization_unit": "", "state": "CA", "common_name": "WPIRAS-W7", "organization": "Riverbed%20Technology", "email": "" }, "validity": { "issued": 1348695181, "expire": 1380231181 }, "pem": "-----BEGIN%20CERTIFICATE-----%0AMIIDyTCCArGgAwIBAgIRAMjqZzJo2/e4lqogFGp6IcswDQYJKoZIhvcNAQENBQAw%0AZDESMBAGA1UEAxMJV1BJUkFTLVc3MRwwGgYDVQQKExNSaXZlcmJlZCBUZWNobm9s%0Ab2d5MRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMQswCQYDVQQIEwJDQTELMAkGA1UE%0ABhMCVVMwHhcNMTIwOTI2MjEzMzAxWhcNMTMwOTI2MjEzMzAxWjBkMRIwEAYDVQQD%0AEwlXUElSQVMtVzcxHDAaBgNVBAoTE1JpdmVyYmVkIFRlY2hub2xvZ3kxFjAUBgNV%0ABAcTDVNhbiBGcmFuY2lzY28xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzCCASIw%0ADQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMH60nt9gWvQ+I983CxAsSdFk7KT%0AbuIEdqCzN90ULzecIg0oBtZmp+EcwpWhOJKrG66XRkTUqrCH2EY2Ppkf09TZXdsB%0A3pk6CUajNrCkCPfdXPRKa6oixqWunT2n0spt5gseZa6atjQSXO6T3pn5Hslll5bX%0AjUnT2cCWd1bM2y7YX9EwCVr3h6QlKds+YCkZpEHA7b1wvB3xnLaxlclCzxzEdwBc%0A2SeJy/ILiPwLGXsu568fae5gC6r2tAVsohw4Xb9S1bbl1AJNcTj44FCsfZ66nhVS%0AqXAPAv5d6Uf2A7bAT5/Km/inDYfUduwf4WpPN28+rxQ00DdaHI9GapkFCY0CAwEA%0AAaN2MHQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE%0AFBM4OhBjBV4Btfh5hNw9N3G4G10RMB8GA1UdIwQYMBaAFBM4OhBjBV4Btfh5hNw9%0AN3G4G10RMBEGCWCGSAGG+EIBAQQEAwICBDANBgkqhkiG9w0BAQ0FAAOCAQEASY+U%0AsTWf8Rhx6PoTE4y8bcWA3TItsseHAWicKwJgEQQ5xzmzr+Jfj46ToQVSUcyLvWgT%0AjUTuNRrUbFXTk23zkICRZQHWaBgA2jV2GDY1wyP8EsrCxLVW6YTWIzh3uGBa0b4H%0A+eWt0V+FkRy7uzBg5PQEZl910gt48pULu4qG4NjYuiZV5+aujsjUHK4w4CWixIDi%0ApDmixAlzUpoE3yedQ+yzXlRDjQcwanxRR68GBPkH/1MZpLs+xJoC0IomUEgr9Ilj%0A5aKOm0uacalQq4wGNODKGdApiZeMpKgQ7OzBxvCWsGu2qoduNNDDzdT2jTyciu6J%0AwXX+DIergacItTw7bA==%0A-----END%20CERTIFICATE-----%0A", "key": { "algorithm": "RSA", "size": 2048 }, "fingerprint": { "value": "1B:FA:66:5B:B4:8C:00:4B:D4:59:02:75:30:A8:91:CB:E3:17:B2:5A", "algorithm": "SHA1" } }, "trusted_profilers": [ { "id": "default_profiler", "certificate": { "issued_to": { "locality": "", "country": "", "organization_unit": "", "state": "", "common_name": "Mazu", "organization": "", "email": "" }, "issued_by": { "locality": "", "country": "", "organization_unit": "", "state": "", "common_name": "Mazu", "organization": "", "email": "" }, "validity": { "issued": 1159807421, "expire": 1475167421 }, "pem": "-----BEGIN%20CERTIFICATE-----%0AMIIBsTCCARqgAwIBAgIJAOqvgxZRcO+ZMA0GCSqGSIb3DQEBBAUAMA8xDTALBgNV%0ABAMTBE1henUwHhcNMDYxMDAyMTY0MzQxWhcNMTYwOTI5MTY0MzQxWjAPMQ0wCwYD%0AVQQDEwRNYXp1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0e+f4pJY2eSm1%0A8U579OKJIyxc/sdKXlLOw0zK6SoNu7XNHmNoObNhQV+3PoSbZNyqW3GuZ54EEKUw%0AG54kDzHu9cZMGEWvNO6syjZZlfBORpklQoNEsNxAkbhTr9DXfloFKiLouDl8E7jB%0AhMkbKxnpNcfcl+NEuQ8av2QQWp3jfQIDAQABoxUwEzARBglghkgBhvhCAQEEBAMC%0ABkAwDQYJKoZIhvcNAQEEBQADgYEATnoqJSym+wATLxgb2Ujdy4CY0gawUXHjidaE%0AehyejGdw6VhXpf4lP9Q8JfVERjCoroVkiXenVQe/zer7Qf2hiDB/5s02/+8uiEeq%0AMJpzsSdEYZUSgpyAcws5PDyr2GVFMI3dfPnl28hVavIkR8r05BPDxKbb8Ic6HWpT%0ACTDPH3w=%0A-----END%20CERTIFICATE-----%0A", "key": { "algorithm": "RSA", "size": 1024 }, "fingerprint": { "value": "19:41:76:AD:7C:B3:40:01:70:5F:C8:50:85:AD:8F:F2:32:BC:D0:48", "algorithm": "SHA1" } } }, { "id": "default_profiler_fips", "certificate": { "issued_to": { "locality": "", "country": "", "organization_unit": "", "state": "", "common_name": "Cascade%20MNMP%20Default%20Certificate", "organization": "Riverbed%20Technology,%20Inc.", "email": "support@riverbed.com" }, "issued_by": { "locality": "", "country": "", "organization_unit": "", "state": "", "common_name": "Cascade%20MNMP%20Default%20Certificate", "organization": "Riverbed%20Technology,%20Inc.", "email": "support@riverbed.com" }, "validity": { "issued": 1339518445, "expire": 1654878445 }, "pem": "-----BEGIN%20CERTIFICATE-----%0AMIID3zCCAsegAwIBAgIJALUIRiJTYgMoMA0GCSqGSIb3DQEBDQUAMHQxKTAnBgNV%0ABAMTIENhc2NhZGUgTU5NUCBEZWZhdWx0IENlcnRpZmljYXRlMSIwIAYDVQQKExlS%0AaXZlcmJlZCBUZWNobm9sb2d5LCBJbmMuMSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0%0AQHJpdmVyYmVkLmNvbTAeFw0xMjA2MTIxNjI3MjVaFw0yMjA2MTAxNjI3MjVaMHQx%0AKTAnBgNVBAMTIENhc2NhZGUgTU5NUCBEZWZhdWx0IENlcnRpZmljYXRlMSIwIAYD%0AVQQKExlSaXZlcmJlZCBUZWNobm9sb2d5LCBJbmMuMSMwIQYJKoZIhvcNAQkBFhRz%0AdXBwb3J0QHJpdmVyYmVkLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC%0AggEBALwfP4rRlcUvHNHVjxhh+/a1w/O2kIXdqUUturbsXVeu7nYj0zqXjySf4jI1%0AMSQKou6JT5jPGPxHWCrwfmwpqYaTnIZpJYOd78WIhufRmVPb5j1QXShO6NNqpXi5%0Ap9cp3/4dxZSsfocJCLZngs0HiQhFo382MTUc5Jg/lpBgFhnStX3u/SnZZKAd+ibc%0Aew+mDRZDD4A+HNOo+FvmywbRSbYAUL74MT9K+0JJgH/RTAvjOCsUuR1ej70oxRjI%0AwIuMbddH0eZ/KMdGp9ptcgRpeW2ibIRnGBZ7FMhNegsom8e3VIZejKDrKEDAgtSf%0A15v8/15bkoItGzfXsjAXt628RO0CAwEAAaN0MHIwHQYDVR0OBBYEFNHS1lF+lyYf%0AmVAXV/T0xjkgupO7MB8GA1UdIwQYMBaAFNHS1lF+lyYfmVAXV/T0xjkgupO7MBEG%0ACWCGSAGG+EIBAQQEAwIGwDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw%0ADQYJKoZIhvcNAQENBQADggEBAB8FM5z12oDHfmPMQp2d7OfRQAzPtuCdHEYI9AJ9%0A8sTcA0d8xTfCIEYyglXCijoE42iVx9Pgfo4PO7yCqxNa9kpNMnEISm2ZQv2E0noM%0ADmpIrT0z5BcfxcWulqx1Y2RwP+RkeU2atdpPSAboyLex6SXbKKREmjBZLvP7OBZb%0AAuNnIdVPONpsHHDbOAh5UtVdvJ1fUmme/NHcKG8aixaynTV3HoOX7YtG1hT5H+YM%0A1ImpfK5NJJuBra13e6nDKvaLmd9EVbrW8vAQwP3/jLNT3DyRvCuq6MaJl+kSRNz2%0Ai7gWkZzoLH0AKvL1Imu14gVKk6K9BLMrjeSR0fS6hMwpl0s=%0A-----END%20CERTIFICATE-----%0A", "key": { "algorithm": "RSA", "size": 2048 }, "fingerprint": { "value": "91:5C:1B:B7:FA:F6:CF:46:8B:EF:AE:DC:F2:4B:77:3E:30:6B:03:52", "algorithm": "SHA1" } } } ], "profiler_export_certificate": { "issued_to": { "locality": "", "country": "", "organization_unit": "", "state": "", "common_name": "Mazu", "organization": "", "email": "" }, "issued_by": { "locality": "", "country": "", "organization_unit": "", "state": "", "common_name": "Mazu", "organization": "", "email": "" }, "validity": { "issued": 1159807421, "expire": 1475167421 }, "pem": "-----BEGIN%20CERTIFICATE-----%0AMIIBsTCCARqgAwIBAgIJAOqvgxZRcO+ZMA0GCSqGSIb3DQEBBAUAMA8xDTALBgNV%0ABAMTBE1henUwHhcNMDYxMDAyMTY0MzQxWhcNMTYwOTI5MTY0MzQxWjAPMQ0wCwYD%0AVQQDEwRNYXp1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0e+f4pJY2eSm1%0A8U579OKJIyxc/sdKXlLOw0zK6SoNu7XNHmNoObNhQV+3PoSbZNyqW3GuZ54EEKUw%0AG54kDzHu9cZMGEWvNO6syjZZlfBORpklQoNEsNxAkbhTr9DXfloFKiLouDl8E7jB%0AhMkbKxnpNcfcl+NEuQ8av2QQWp3jfQIDAQABoxUwEzARBglghkgBhvhCAQEEBAMC%0ABkAwDQYJKoZIhvcNAQEEBQADgYEATnoqJSym+wATLxgb2Ujdy4CY0gawUXHjidaE%0AehyejGdw6VhXpf4lP9Q8JfVERjCoroVkiXenVQe/zer7Qf2hiDB/5s02/+8uiEeq%0AMJpzsSdEYZUSgpyAcws5PDyr2GVFMI3dfPnl28hVavIkR8r05BPDxKbb8Ic6HWpT%0ACTDPH3w=%0A-----END%20CERTIFICATE-----%0A", "key": { "algorithm": "RSA", "size": 1024 }, "fingerprint": { "value": "19:41:76:AD:7C:B3:40:01:70:5F:C8:50:85:AD:8F:F2:32:BC:D0:48", "algorithm": "SHA1" } } }
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/5.1/settings/certificates/profiler_exportAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "pem": string } Example: { "pem": "-----BEGIN PRIVATE KEY-----\nMIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDB+tJ7fYFr0PiP\nfNwsQLEnRZOyk27iBHagszfdFC83nCINKAbWZqfhHMKVoTiSqxuul0ZE1Kqwh9hG\nNj6ZH9PU2V3bAd6ZOglGozawpAj33Vz0SmuqIsalrp09p9LKbeYLHmWumrY0Elzu\nk96Z+R7JZZeW141J09nAlndWzNsu2F/RMAla94ekJSnbPmApGaRBwO29cLwd8Zy2\nsZXJQs8cxHcAXNknicvyC4j8Cxl7LuevH2nuYAuq9rQFbKIcOF2/UtW25dQCTXE4\n+OBQrH2eup4VUqlwDwL+XelH9gO2wE+fypv4pw2H1HbsH+FqTzdvPq8UNNA3WhyP\nRmqZBQmNAgMBAAECggEBAMF5QHJ3DZzRwviqmpdwtsDqvpPARTodJYzG9BMHTMj0\na2of4CH8Jbl7jADd2qU/EM8khqukSdLkyyvMcscbXZbQbrI/vRurLRFNPQEVuvQt\nz8bAa344TVV3QdH7D11kG6w/Vz+9g7mQDyzOQ5njRXeuYnHK8FsQeAGEkeb7UCn5\nWenIzuF5pL21ZPA2Yt3JEi+ntPQdQPEPBDVHBnbkrZ0cQQhuE1t4BwUBu6Yv2kkx\nNTzleB+9tUVXk7LUHyuvuQ9jeZCHQSLNAeP1mvrGK77OVTZDphN/rLc7Tt7IWSZm\ngD0OXgot0tEoBoe1jGpWGXEjeHS0X+Br9Y1EpBrpCoECgYEA/ZLtRZTw4wpqriFs\n2t/mwfKWdnM/O4DbKzN/T1aIv3e6qAqq6DfJg1JEiI7YlFnJTepeR8NGCSnifxTG\nv3TRylOpSqfTuFT9oKWRaIrNZed8OPY2c2VlyU5vF10E/m/V0WrHjnogOSBeCf32\nh4+m4QAnXkrvU4uXw9pAgTKeZxECgYEAw9Xuw1NyB7Iuli3HM1qeg8+v601pbrLg\n9LoJdZofFDhJuUKZ5y+7YuIuWGWyCVYlIod3umb78YbBILrSUimkK5OXhiPNDihH\nVD/ggTXCPgm3FT941zaKnSUSlZDF7LndLLlYUwYnB8qba8+vCIDAHnKsyHKPEvTC\n/SkAvJcX0r0CgYEA9gxjf2kOdL/e1ChK3/byiq9BoJ4jdTGLeVf26J0nA+LBk90G\nCV5YgryJE5jIPusAkkIgSbIJe0rRJE6cq5pHFvQnCPHgVrThhcgiWDaXJ5J+zybZ\nnw98vOEGmrz/44PRDet2x6FpMwVdOoTbep7BZwInMS+1GnQRR1G31aWwXoECgYEA\nmtsdTYk7n0hPvGOApGQg+pwNQOTa3TVH210Mw9jWgJet/Hfk2UIOTDgMa8wmx2k+\nPhqfG1/6E9f5+ZahX2UcM3UnGWRP7sT8+mr0bVgEPChUhNHHDW9MlszM8EYlrHag\npY/+ftBbpraYxdzZTMD6qlkFtg+YgWXYlnWI5pgXt4UCgYEAppqACeoUd+UI3Azs\n2B/KWndzdBMgMNFZsZvcMC1sfZjsCrbcOZDkU+cYUDxfM2Wp5ihk7CVH8XUx+ue+\nm92OX497PvXihxdSNrlsi3GJuhq5uaYpZWPn3269zC2wDlAwUX78X3NYMsoxg8XO\nFihyaSY3EzACFI96nbDOIeS5csg=\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDyTCCArGgAwIBAgIRAMjqZzJo2/e4lqogFGp6IcswDQYJKoZIhvcNAQENBQAw\nZDESMBAGA1UEAxMJV1BJUkFTLVc3MRwwGgYDVQQKExNSaXZlcmJlZCBUZWNobm9s\nb2d5MRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMQswCQYDVQQIEwJDQTELMAkGA1UE\nBhMCVVMwHhcNMTIwOTI2MjEzMzAxWhcNMTMwOTI2MjEzMzAxWjBkMRIwEAYDVQQD\nEwlXUElSQVMtVzcxHDAaBgNVBAoTE1JpdmVyYmVkIFRlY2hub2xvZ3kxFjAUBgNV\nBAcTDVNhbiBGcmFuY2lzY28xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMH60nt9gWvQ+I983CxAsSdFk7KT\nbuIEdqCzN90ULzecIg0oBtZmp+EcwpWhOJKrG66XRkTUqrCH2EY2Ppkf09TZXdsB\n3pk6CUajNrCkCPfdXPRKa6oixqWunT2n0spt5gseZa6atjQSXO6T3pn5Hslll5bX\njUnT2cCWd1bM2y7YX9EwCVr3h6QlKds+YCkZpEHA7b1wvB3xnLaxlclCzxzEdwBc\n2SeJy/ILiPwLGXsu568fae5gC6r2tAVsohw4Xb9S1bbl1AJNcTj44FCsfZ66nhVS\nqXAPAv5d6Uf2A7bAT5/Km/inDYfUduwf4WpPN28+rxQ00DdaHI9GapkFCY0CAwEA\nAaN2MHQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFBM4OhBjBV4Btfh5hNw9N3G4G10RMB8GA1UdIwQYMBaAFBM4OhBjBV4Btfh5hNw9\nN3G4G10RMBEGCWCGSAGG+EIBAQQEAwICBDANBgkqhkiG9w0BAQ0FAAOCAQEASY+U\nsTWf8Rhx6PoTE4y8bcWA3TItsseHAWicKwJgEQQ5xzmzr+Jfj46ToQVSUcyLvWgT\njUTuNRrUbFXTk23zkICRZQHWaBgA2jV2GDY1wyP8EsrCxLVW6YTWIzh3uGBa0b4H\n+eWt0V+FkRy7uzBg5PQEZl910gt48pULu4qG4NjYuiZV5+aujsjUHK4w4CWixIDi\npDmixAlzUpoE3yedQ+yzXlRDjQcwanxRR68GBPkH/1MZpLs+xJoC0IomUEgr9Ilj\n5aKOm0uacalQq4wGNODKGdApiZeMpKgQ7OzBxvCWsGu2qoduNNDDzdT2jTyciu6J\nwXX+DIergacItTw7bA==\n-----END CERTIFICATE-----" }
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/5.1/settings/certificates/webAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "pem": string } Example: { "pem": "-----BEGIN PRIVATE KEY-----\nMIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDB+tJ7fYFr0PiP\nfNwsQLEnRZOyk27iBHagszfdFC83nCINKAbWZqfhHMKVoTiSqxuul0ZE1Kqwh9hG\nNj6ZH9PU2V3bAd6ZOglGozawpAj33Vz0SmuqIsalrp09p9LKbeYLHmWumrY0Elzu\nk96Z+R7JZZeW141J09nAlndWzNsu2F/RMAla94ekJSnbPmApGaRBwO29cLwd8Zy2\nsZXJQs8cxHcAXNknicvyC4j8Cxl7LuevH2nuYAuq9rQFbKIcOF2/UtW25dQCTXE4\n+OBQrH2eup4VUqlwDwL+XelH9gO2wE+fypv4pw2H1HbsH+FqTzdvPq8UNNA3WhyP\nRmqZBQmNAgMBAAECggEBAMF5QHJ3DZzRwviqmpdwtsDqvpPARTodJYzG9BMHTMj0\na2of4CH8Jbl7jADd2qU/EM8khqukSdLkyyvMcscbXZbQbrI/vRurLRFNPQEVuvQt\nz8bAa344TVV3QdH7D11kG6w/Vz+9g7mQDyzOQ5njRXeuYnHK8FsQeAGEkeb7UCn5\nWenIzuF5pL21ZPA2Yt3JEi+ntPQdQPEPBDVHBnbkrZ0cQQhuE1t4BwUBu6Yv2kkx\nNTzleB+9tUVXk7LUHyuvuQ9jeZCHQSLNAeP1mvrGK77OVTZDphN/rLc7Tt7IWSZm\ngD0OXgot0tEoBoe1jGpWGXEjeHS0X+Br9Y1EpBrpCoECgYEA/ZLtRZTw4wpqriFs\n2t/mwfKWdnM/O4DbKzN/T1aIv3e6qAqq6DfJg1JEiI7YlFnJTepeR8NGCSnifxTG\nv3TRylOpSqfTuFT9oKWRaIrNZed8OPY2c2VlyU5vF10E/m/V0WrHjnogOSBeCf32\nh4+m4QAnXkrvU4uXw9pAgTKeZxECgYEAw9Xuw1NyB7Iuli3HM1qeg8+v601pbrLg\n9LoJdZofFDhJuUKZ5y+7YuIuWGWyCVYlIod3umb78YbBILrSUimkK5OXhiPNDihH\nVD/ggTXCPgm3FT941zaKnSUSlZDF7LndLLlYUwYnB8qba8+vCIDAHnKsyHKPEvTC\n/SkAvJcX0r0CgYEA9gxjf2kOdL/e1ChK3/byiq9BoJ4jdTGLeVf26J0nA+LBk90G\nCV5YgryJE5jIPusAkkIgSbIJe0rRJE6cq5pHFvQnCPHgVrThhcgiWDaXJ5J+zybZ\nnw98vOEGmrz/44PRDet2x6FpMwVdOoTbep7BZwInMS+1GnQRR1G31aWwXoECgYEA\nmtsdTYk7n0hPvGOApGQg+pwNQOTa3TVH210Mw9jWgJet/Hfk2UIOTDgMa8wmx2k+\nPhqfG1/6E9f5+ZahX2UcM3UnGWRP7sT8+mr0bVgEPChUhNHHDW9MlszM8EYlrHag\npY/+ftBbpraYxdzZTMD6qlkFtg+YgWXYlnWI5pgXt4UCgYEAppqACeoUd+UI3Azs\n2B/KWndzdBMgMNFZsZvcMC1sfZjsCrbcOZDkU+cYUDxfM2Wp5ihk7CVH8XUx+ue+\nm92OX497PvXihxdSNrlsi3GJuhq5uaYpZWPn3269zC2wDlAwUX78X3NYMsoxg8XO\nFihyaSY3EzACFI96nbDOIeS5csg=\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDyTCCArGgAwIBAgIRAMjqZzJo2/e4lqogFGp6IcswDQYJKoZIhvcNAQENBQAw\nZDESMBAGA1UEAxMJV1BJUkFTLVc3MRwwGgYDVQQKExNSaXZlcmJlZCBUZWNobm9s\nb2d5MRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMQswCQYDVQQIEwJDQTELMAkGA1UE\nBhMCVVMwHhcNMTIwOTI2MjEzMzAxWhcNMTMwOTI2MjEzMzAxWjBkMRIwEAYDVQQD\nEwlXUElSQVMtVzcxHDAaBgNVBAoTE1JpdmVyYmVkIFRlY2hub2xvZ3kxFjAUBgNV\nBAcTDVNhbiBGcmFuY2lzY28xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMH60nt9gWvQ+I983CxAsSdFk7KT\nbuIEdqCzN90ULzecIg0oBtZmp+EcwpWhOJKrG66XRkTUqrCH2EY2Ppkf09TZXdsB\n3pk6CUajNrCkCPfdXPRKa6oixqWunT2n0spt5gseZa6atjQSXO6T3pn5Hslll5bX\njUnT2cCWd1bM2y7YX9EwCVr3h6QlKds+YCkZpEHA7b1wvB3xnLaxlclCzxzEdwBc\n2SeJy/ILiPwLGXsu568fae5gC6r2tAVsohw4Xb9S1bbl1AJNcTj44FCsfZ66nhVS\nqXAPAv5d6Uf2A7bAT5/Km/inDYfUduwf4WpPN28+rxQ00DdaHI9GapkFCY0CAwEA\nAaN2MHQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\nFBM4OhBjBV4Btfh5hNw9N3G4G10RMB8GA1UdIwQYMBaAFBM4OhBjBV4Btfh5hNw9\nN3G4G10RMBEGCWCGSAGG+EIBAQQEAwICBDANBgkqhkiG9w0BAQ0FAAOCAQEASY+U\nsTWf8Rhx6PoTE4y8bcWA3TItsseHAWicKwJgEQQ5xzmzr+Jfj46ToQVSUcyLvWgT\njUTuNRrUbFXTk23zkICRZQHWaBgA2jV2GDY1wyP8EsrCxLVW6YTWIzh3uGBa0b4H\n+eWt0V+FkRy7uzBg5PQEZl910gt48pULu4qG4NjYuiZV5+aujsjUHK4w4CWixIDi\npDmixAlzUpoE3yedQ+yzXlRDjQcwanxRR68GBPkH/1MZpLs+xJoC0IomUEgr9Ilj\n5aKOm0uacalQq4wGNODKGdApiZeMpKgQ7OzBxvCWsGu2qoduNNDDzdT2jTyciu6J\nwXX+DIergacItTw7bA==\n-----END CERTIFICATE-----" }
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/5.1/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 } } Example: { "issued_to": { "email": "admin%40riverbed.com", "organization": "Riverbed%20Technology", "organization_unit": "CascadeUnit", "locality": "San%20Francisco", "state": "CA", "country": "US" }, "validity": { "days": 365 } }
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/5.1/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 } } Example: { "issued_to": { "email": "admin%40riverbed.com", "organization": "Riverbed%20Technology", "organization_unit": "CascadeUnit", "locality": "San%20Francisco", "state": "CA", "country": "US" }, "validity": { "days": 365 } }
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/5.1/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/5.1/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/5.1/settings/certificates/trusted_profilersAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "id": string, "pem": string } Example: { "pem": "-----BEGIN CERTIFICATE-----\nMIIEPTCCAyWgAwIBAgIRAO1ZLvfw3lwCqFen5rQf7ecwDQYJKoZIhvcNAQENBQAw\ngZ0xITAfBgkqhkiG9w0BCQEWEmFkbWluQHJpdmVyYmVkLmNvbTESMBAGA1UEAxMJ\nV1BJUkFTLVc3MRwwGgYDVQQKExNSaXZlcmJlZCBUZWNobm9sb2d5MRQwEgYDVQQL\nEwtDYXNjYWRlVW5pdDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzELMAkGA1UECBMC\nQ0ExCzAJBgNVBAYTAlVTMB4XDTEyMDkyNjIyNTkzNFoXDTEzMDkyNjIyNTkzNFow\ngZ0xITAfBgkqhkiG9w0BCQEWEmFkbWluQHJpdmVyYmVkLmNvbTESMBAGA1UEAxMJ\nV1BJUkFTLVc3MRwwGgYDVQQKExNSaXZlcmJlZCBUZWNobm9sb2d5MRQwEgYDVQQL\nEwtDYXNjYWRlVW5pdDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzELMAkGA1UECBMC\nQ0ExCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nvYsAKrsA1ohMakG+9azPS9cJrgRB8kKaGBJrGLm6LMSCow82vAZH2MrMDsoAHwaj\n8mV+79PM1Rl1tjZmbhMD4SV9HhJQjkwrM6r2WV49MHdMkdeXTWEbLZ8OyBPUPWtn\n8+zy5IWLB8ri/D7RjVe7LFOM389JmOofb9wCHzCT0yKbJO39OHI9AI3LQrnLo7g4\nMXpTQklL18EjVay7RickcnKDDJhIOziXBJCmfr5jrCz76oT07/IbJ3NI5RqB6JSR\nZcPMyZFnzuEwxWfsmatzCuiD8kQBqz+6It0RKYlalylVhFS+2ViA8O5Qs1p8vXb5\n8yohwQfV19n02+DRRV3dRwIDAQABo3YwdDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud\nDwEB/wQEAwIBBjAdBgNVHQ4EFgQUVhms7KFEi/wH1cdj56L5U+XTAeowHwYDVR0j\nBBgwFoAUVhms7KFEi/wH1cdj56L5U+XTAeowEQYJYIZIAYb4QgEBBAQDAgIEMA0G\nCSqGSIb3DQEBDQUAA4IBAQC0C70AFxt+cjAM8I1JbJJJ5RGoSTPfOmvQznr4nW7g\nG/dRUUO3eGpd05YmJlA0TTCunbxdnUTlv7phXgJ5+IeBnhIR1eC7lxgHPwshr4oO\nE4UfyL5iwhs+fCPHhPllo9VVOCcSR4CqjY4i1++14BVKZE0hWX3oZhaG/g1oXDv5\nGdLvOspRYxpgONsJvLeV4OZk1r1oZfHCsOnilIq1KsRzpOt2/M2SNs2oKS89em8D\n84GDI/0fpVbmpfdzj+vyB0UaLXBtKgeno7HzoUY/Vfwvi02n6J0OlHNNJGI+imE5\nun5/WbK6z4fWBuipjlIje3D5o+XSxPuh7wrfQfChMZEK\n-----END CERTIFICATE-----", "id": "riverbed_certificate" }
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/5.1/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
Get the list of local user groups defined for this Shark
GET https://{device}/api/shark/5.1/auth/groupsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ group ] Example: [ { "name": "Administrators", "capabilities": [ "CAPABILITY_ADMINISTRATOR" ], "description": "Administrators" }, { "name": "NormalUsers", "capabilities": [ "CAPABILITY_APPLY_VIEWS_ON_FILES", "CAPABILITY_APPLY_VIEWS_ON_INTERFACES", "CAPABILITY_SHARE_VIEWS", "CAPABILITY_CREATE_FILES", "CAPABILITY_IMPORT_FILES", "CAPABILITY_EXPORT_FILES", "CAPABILITY_SCHEDULE_WATCHES", "CAPABILITY_ACCESS_PROBE_FILES" ], "description": "Normal unprivileged users" } ]
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/5.1/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/5.1/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/5.1/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
Get the list of local users
GET https://{device}/api/shark/5.1/auth/usersAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ user ] Example: [ { "is_locked": false, "can_be_locked": false, "is_admin": true, "name": "admin", "groups": [ "Administrators" ] }, { "is_locked": false, "can_be_locked": false, "is_admin": false, "name": "normaluser", "groups": [ "NormalUsers" ] } ]
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/5.1/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 ] } Example: { "name": "test", "password": "testing", "can_be_locked": true, "groups": [ "NormalUsers", "Viewers" ] }
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/5.1/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/5.1/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 } Example: { "new_password": "new-password", "existing_password": "old-password" }
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/5.1/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/5.1/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 } Example: { "value": false }
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/5.1/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/5.1/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/5.1/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/5.1/pingAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
info: List supported tap types
Get the list of supported tap types
GET https://{device}/api/shark/5.1/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 } ] Example: [ { "type_pretty": "Shark Internal", "type": "NONE", "description": "Timestamps applied by the shark itself based on the system clock. " }, { "type_pretty": "cPacket", "type": "CPACKET", "description": "Timestamps applied by a cPacket cVU or cTap." }, { "type_pretty": "Gigamon (Header)", "type": "GIGAMON_HEADER", "description": "Timestamps applied by a Gigamon SMT-436 with the SMT-TSP timestamp feature enabled, configured to store timestamps in the packet header." }, { "type_pretty": "Gigamon (Trailer)", "type": "GIGAMON_TRAILER", "description": "Timestamps applied by a Gigamon SMT-436 with the SMT-TSP timestamp feature enabled, configured to store timestamps in the packet trailer." }, { "type_pretty": "Gigamon (Trailer X12-TS)", "type": "GIGAMON_TRAILER_X12", "description": "Timestamps applied by a Gigamon GigaPORT-X12-TS, configured to store timestamps in the packet trailer." }, { "type_pretty": "VSS (Timestamp only)", "type": "VSS", "description": "Timestamps applied by a VSS Monitoring Distributed Traffic Capture System (DTCS), configured to store only timestamps in the packet." } ]
Property Name | Type | Description | Notes |
---|---|---|---|
tap_types | <array of <object>> | List of supported tap types | |
tap_types[tap_type] | <object> | Information describing a supported tap type | |
tap_types[tap_type].type | <string> | The type code for the tap | Values: NONE, CPACKET, GIGAMON_HEADER, GIGAMON_TRAILER, GIGAMON_TRAILER_X12, VSS, VSS_PORT_ID, ANUE, ARISTA, UNKNOWN |
tap_types[tap_type].type_pretty | <string> | User-friendly name for the specific type of tap | |
tap_types[tap_type].description | <string> | Description of the specific type of tap |
info: Get job defaults
Get capture job default settings
GET https://{device}/api/shark/5.1/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 } Example: { "index_size_limit": 128043712, "index_size_pct": 0.427825, "retention_size_pct": 30.0, "retention_size_limit": 12804371251, "snap_length": 65535, "job_name": "New Job 1" }
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
Get the list of supported Shark data types in views
GET https://{device}/api/shark/5.1/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 ] } ] Example: [ { "name": "NONE", "calculations": [ "NONE" ] }, { "name": "PROTOCOL", "calculations": [ "NONE" ] }, { "name": "BOOLEAN", "calculations": [ "NONE" ] }, { "name": "UINT8", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "UINT16", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "UINT24", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "UINT32", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "UINT64", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "INT8", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "INT16", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "INT24", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "INT32", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "INT64", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "FLOAT", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "DOUBLE", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "ABSOLUTE_TIME", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "RELATIVE_TIME", "calculations": [ "NONE", "SUM", "MAX", "MIN", "AVG", "TIME_AVG", "REPLACE" ] }, { "name": "STRING", "calculations": [ "NONE" ] }, { "name": "STRINGZ", "calculations": [ "NONE" ] }, { "name": "SHORT_STRING", "calculations": [ "NONE" ] }, { "name": "UINT_STRING", "calculations": [ "NONE" ] }, { "name": "ETHER", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "BYTES", "calculations": [ "NONE" ] }, { "name": "UINT_BYTES", "calculations": [ "NONE" ] }, { "name": "IPv4", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "IPv6", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "UDP_PORT", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "TCP_PORT", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "IPXNET", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "FRAMENUM", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "PCRE", "calculations": [ "NONE" ] }, { "name": "GUID", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "OID", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "NUM_TYPES", "calculations": [ "NONE" ] }, { "name": "INDEX", "calculations": [ "NONE", "MAX", "MIN" ] }, { "name": "EUI64", "calculations": [ "NONE" ] } ]
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> | Calculation type | Values: NONE, SUM, MAX, MIN, AVG, TIME_AVG, REPLACE |
info: List supported extractor fields
Get the list of supported Shark view extractor fields
GET https://{device}/api/shark/5.1/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 } ] Example: [ { "group": "arp", "description": "Byte count of ARP packets", "display_type": "DEC", "type": "UINT64", "id": "arp.bytes", "name": "ARP Bytes" }, { "group": "cifs", "description": "Indication of whether the current packet contains CIFS traffic", "display_type": "DEC", "type": "BOOLEAN", "id": "cifs.is_cifs", "name": "CIFS" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
fields | <array of <object>> | ||
fields[field] | <object> | ||
fields[field].name | <string> | User-friendly name of the field | |
fields[field].type | <string> | Type of the field | 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> | Identifier of the field | |
fields[field].group | <string> | Group in which the field belongs | |
fields[field].display_type | <string> | Display information for a numeric field | Optional; Values: NONE, DEC, HEX, OCT, DEC_HEX, HEX_DEC, PERC |
fields[field].description | <string> | Description of this field | Optional |
fields[field].multi_segment | <boolean> | Whether or not the field is used for multi-segment sources | Optional |
fields[field].index_calculations | <array of <string>> | List of calculations on this field that are supported by the index | Optional |
fields[field].index_calculations [index_calculation] |
<string> | Calculation type | Values: NONE, SUM, MAX, MIN, AVG, TIME_AVG, REPLACE |
fields[field].dimension | <boolean> | Whether or not the field is a dimension | Optional |
fields[field].index | <boolean> | Whether or not this field is supported by the index | Optional |
info: List supported file extensions
Get the list of Shark file extensions
GET https://{device}/api/shark/5.1/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 } ] Example: [ { "description": "Endace ERF trace file", "value": "erf" }, { "description": "Pcap trace file", "value": "cap" }, { "description": "Pcap trace file", "value": "pcap" }, { "description": "Pcap trace file", "value": "cap0" }, { "description": "Pcap-ng trace file", "value": "pcapng" }, { "description": "Pcap-ng trace file", "value": "ntar" }, { "description": "Shark appliance trace file", "value": "svt" }, { "description": "Virtual trace file", "value": "pvt" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
file_extensions | <array of <object>> | ||
file_extensions[file_extension] | <object> | ||
file_extensions[file_extension]. description |
<string> | Description of this file extension | |
file_extensions[file_extension].value | <string> | File extension value |
info: List mac vendors
Get the list of supported MAC vendors (NOTE: This is a long listing.)
GET https://{device}/api/shark/5.1/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 } ] Example: [ { "code": "00:00:00", "name": "00:00:00" }, { "code": "00:00:01", "name": "Xerox" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
mac_vendors | <array of <object>> | List of MAC vendor codes | |
mac_vendors[mac_vendor] | <object> | Vendor information | |
mac_vendors[mac_vendor].code | <string> | Vendor code | |
mac_vendors[mac_vendor].name | <string> | Vendor name |
info: List timezones
Get the list of supported timezones
GET https://{device}/api/shark/5.1/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 ] } Example: { "timezones": [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique" ], "selected": "America/Los_Angeles" }
Property Name | Type | Description | Notes |
---|---|---|---|
timezone_config | <object> | Timezone information | |
timezone_config.selected | <string> | Currently selected timezone | |
timezone_config.timezones | <array of <string>> | List of supported timezones | |
timezone_config.timezones[timezone] | <string> |
system: Get system info
Get detailed system information
GET https://{device}/api/shark/5.1/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 } Example: { "webui_root_path": "/", "uptime": 40382739000, "build_variant": "TurboCap", "system_type": "Linux", "start_time": 1354579018824095000, "hostname": "shark.localdomain", "has_webui": true, "build_time": "Dec 3 2012 15:33:46", "webui_port": 443, "internal_version": "10.0.1000.0000", "version": "10.0", "view_version": "3.5", "timezone": "-0800", "protocol_version": "4.0", "build_type": "Debug", "webui_SSL": true, "local_time": 1354579059206834000 }
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
Get the audit log as a text file. Response content type is 'text/plain'.
GET https://{device}/api/shark/5.1/system/audit_logAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
system: Get version info
Get version information
GET https://{device}/api/shark/5.1/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 } Example: { "packet_recorder_version": "1.8.1005.0136", "shark_version": "10.0 (10.0.1005.0136)", "turbocap_api_version": "1.8.1005.0136", "serial_number": "N/A", "shark_probe_version": "10.0.1000.0000", "turbocap_driver_version": "driver not loaded", "protocol_version": "4.0" }
Property Name | Type | Description | Notes |
---|---|---|---|
version_info | <object> | ||
version_info.shark_version | <string> | User-friendly version of the system | |
version_info.shark_probe_version | <string> | Version of the embedded server component | |
version_info.protocol_version | <string> | Highest API version supported by the system | |
version_info.packet_recorder_version | <string> | Version of the packet recorder component | |
version_info.turbocap_api_version | <string> | Version of the turbocap api component | |
version_info.turbocap_driver_version | <string> | Version of the turbocap driver component | |
version_info.serial_number | <string> | Serial number of the system |
system: Get system storage info
Get storage monitor status
GET https://{device}/api/shark/5.1/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 } ] } Example: { "total_space": 42815455232, "disks": [ { "label": "N/A", "state_type": "OK", "state": "OK", "row_id": "0", "column_id": "0", "model": "N/A", "serial": "N/A" } ], "allocated_space": 11811160064, "used_space": 11676942336, "state_type": "OK", "state": "OK", "available_space": 31138512896, "can_reinitialize": true }
Property Name | Type | Description | Notes |
---|---|---|---|
storage | <object> | ||
storage.can_reinitialize | <boolean> | Whether or not the storage system can be reinitialized | Optional |
storage.state | <string> | State description of the storage system | |
storage.state_type | <string> | State code of the storage system | Values: OK, WARNING, ERROR |
storage.available_space | <number> | Available space in the storage system | Optional |
storage.allocated_space | <number> | Allocated space in the storage system | Optional |
storage.total_space | <number> | Total space in the storage system | Optional |
storage.used_space | <number> | Used space in the storage system | Optional |
storage.disks | <array of <object>> | List of disks in the storage system | Optional |
storage.disks[disk] | <object> | Storage system disk information | |
storage.disks[disk].row_id | <string> | Row number for the disk | |
storage.disks[disk].column_id | <string> | Column number for the disk | |
storage.disks[disk].label | <string> | Label of the disk | |
storage.disks[disk].model | <string> | Model of the disk | |
storage.disks[disk].serial | <string> | Serial number of the disk | |
storage.disks[disk].expected_serial | <string> | Expected serial number of the disk | Optional |
storage.disks[disk].state | <string> | State description of the disk | |
storage.disks[disk].state_type | <string> | State code of the disk | Values: OK, WARNING, ERROR |
system: Reinitialize storage system
Request reinitialization of storage subsystem.
POST https://{device}/api/shark/5.1/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/5.1/system/format_storageAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "reserved_space": number } Example: { "reserved_space": 10 }
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/5.1/system/restartAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "type": string } Example: { "type": "PROBE" }
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/5.1/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/5.1/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
Get current system update status
GET https://{device}/api/shark/5.1/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 } Example: { "state": "RUNNING", "shark_version": "xxxx", "shark_user_version": "yyyy", "init_id": "abc123", "iso_name": "my_iso_12345.iso", "iso_size": 4564564, "estimate": 30 }
Property Name | Type | Description | Notes |
---|---|---|---|
update | <object> | ||
update.state | <string> | Current state of the update | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN |
update.shark_version | <string> | Currently running system version | |
update.shark_user_version | <string> | Currently running system version (user string) | |
update.init_id | <string> | When status is 'INITIALIZED', the ID to be provided when starting the update (i.e. to request a state change to 'RUNNING') | Optional |
update.iso_name | <string> | File name of the uploaded ISO file | Optional |
update.iso_size | <number> | Size (in bytes) of the uploaded ISO file | Optional |
update.iso_sha_hash | <string> | SHA256 hash of the uploaded ISO file | Optional |
update.update_to | <string> | Version to which update will be carried out | Optional |
update.update_to_internal | <string> | Internal version string to which update will be carried out | Optional |
update.pre_start_message | <string> | Message from update subsystem to be displayed before starting update | Optional |
update.estimate | <number> | Estimated time to complete update | Seconds |
update.executing_job_description | <string> | Description of update task currently under way | Optional |
update.comment | <string> | Message from update subsystem | Optional; In case of a 'FAILED_GRACEFUL' or 'FAILED_CRITICAL', provides a reason for failure |
update.need_reboot | <boolean> | 'true' if a the update requires a reboot | Optional |
system: Modify system update state
Update state of system update
PUT https://{device}/api/shark/5.1/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 } Example: { "state": "INITIALIZED", "reset": true }
Property Name | Type | Description | Notes |
---|---|---|---|
update_state | <object> | Request change in update state value on server | |
update_state.state | <string> | Requested new state of update subsystem | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN |
update_state.init_id | <string> | Update ID provided by the update subsystem from the most recent status request | Optional; Only valid when the requested state is 'RUNNING'. Ignored in all other requested states. |
update_state.reset | <boolean> | If 'true', uninitializes update | Optional; Only applies when requesting 'NEUTRAL' state. |
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 } Example: { "state": "RUNNING", "shark_version": "xxxx", "shark_user_version": "yyyy", "init_id": "abc123", "iso_name": "my_iso_12345.iso", "iso_size": 4564564, "estimate": 30 }
Property Name | Type | Description | Notes |
---|---|---|---|
update | <object> | ||
update.state | <string> | Current state of the update | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN |
update.shark_version | <string> | Currently running system version | |
update.shark_user_version | <string> | Currently running system version (user string) | |
update.init_id | <string> | When status is 'INITIALIZED', the ID to be provided when starting the update (i.e. to request a state change to 'RUNNING') | Optional |
update.iso_name | <string> | File name of the uploaded ISO file | Optional |
update.iso_size | <number> | Size (in bytes) of the uploaded ISO file | Optional |
update.iso_sha_hash | <string> | SHA256 hash of the uploaded ISO file | Optional |
update.update_to | <string> | Version to which update will be carried out | Optional |
update.update_to_internal | <string> | Internal version string to which update will be carried out | Optional |
update.pre_start_message | <string> | Message from update subsystem to be displayed before starting update | Optional |
update.estimate | <number> | Estimated time to complete update | Seconds |
update.executing_job_description | <string> | Description of update task currently under way | Optional |
update.comment | <string> | Message from update subsystem | Optional; In case of a 'FAILED_GRACEFUL' or 'FAILED_CRITICAL', provides a reason for failure |
update.need_reboot | <boolean> | 'true' if a the update requires a reboot | Optional |
system: Upload system update iso
Upload a new ISO file for system update
POST https://{device}/api/shark/5.1/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/5.1/system/update/urlAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
{ "url": string } Example: { "url": "http://myserver.com/isos/my.iso" }
Property Name | Type | Description | Notes |
---|---|---|---|
update_fetch | <object> | ||
update_fetch.url | <string> | URL of ISO to be used for update |
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 } Example: { "state": "RUNNING", "shark_version": "xxxx", "shark_user_version": "yyyy", "init_id": "abc123", "iso_name": "my_iso_12345.iso", "iso_size": 4564564, "estimate": 30 }
Property Name | Type | Description | Notes |
---|---|---|---|
update | <object> | ||
update.state | <string> | Current state of the update | Values: NEUTRAL, INITIALIZING, INITIALIZED, RUNNING, FAILED_GRACEFUL, FAILED_CRITICAL, UNKNOWN |
update.shark_version | <string> | Currently running system version | |
update.shark_user_version | <string> | Currently running system version (user string) | |
update.init_id | <string> | When status is 'INITIALIZED', the ID to be provided when starting the update (i.e. to request a state change to 'RUNNING') | Optional |
update.iso_name | <string> | File name of the uploaded ISO file | Optional |
update.iso_size | <number> | Size (in bytes) of the uploaded ISO file | Optional |
update.iso_sha_hash | <string> | SHA256 hash of the uploaded ISO file | Optional |
update.update_to | <string> | Version to which update will be carried out | Optional |
update.update_to_internal | <string> | Internal version string to which update will be carried out | Optional |
update.pre_start_message | <string> | Message from update subsystem to be displayed before starting update | Optional |
update.estimate | <number> | Estimated time to complete update | Seconds |
update.executing_job_description | <string> | Description of update task currently under way | Optional |
update.comment | <string> | Message from update subsystem | Optional; In case of a 'FAILED_GRACEFUL' or 'FAILED_CRITICAL', provides a reason for failure |
update.need_reboot | <boolean> | 'true' if a the update requires a reboot | Optional |
stats: Get memory stats
Get system memory information
GET https://{device}/api/shark/5.1/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 } ] } ] } Example: { "status": "OK", "available": 4658311920, "used": 1603742992, "reserved": 1407188992, "by_category": [ { "bytes": 153696, "name": "DATAMATRIX", "allocations": 12 }, { "bytes": 264, "name": "DBTABLE", "allocations": 5 }, { "bytes": 41946816, "name": "DEMUXER", "allocations": 10 }, { "bytes": 181560, "name": "DNS_RESOLVER", "allocations": 9 }, { "bytes": 196554000, "name": "GLOBAL", "allocations": 75053 }, { "bytes": 153808, "name": "IP_FRAGMENTATION", "allocations": 6 }, { "bytes": 1120, "name": "MEMORY_REPOSITORY", "allocations": 2 }, { "bytes": 23581312, "name": "NETFLOW", "allocations": 75006 }, { "bytes": 130535424, "name": "PACKET", "allocations": 3 } ], "by_handle": [ { "by_category": [ { "bytes": 88680, "name": "DATAMATRIX", "allocations": 7 }, { "bytes": 264, "name": "DBTABLE", "allocations": 5 }, { "bytes": 165848, "name": "GLOBAL", "allocations": 15 }, { "bytes": 76904, "name": "IP_FRAGMENTATION", "allocations": 3 } ], "name": "00000001" }, { "by_category": [ { "bytes": 65016, "name": "DATAMATRIX", "allocations": 5 }, { "bytes": 141920, "name": "GLOBAL", "allocations": 8 }, { "bytes": 76904, "name": "IP_FRAGMENTATION", "allocations": 3 } ], "name": "FFFFFF01" } ], "total": 6262054912 }
Property Name | Type | Description | Notes |
---|---|---|---|
memory | <object> | ||
memory.status | <string> | Memory usage status | Values: OK, WARNING, CRITICAL, CONFIGURATION_ERROR |
memory.total | <number> | Total memory on the system | |
memory.used | <number> | Memory used by the system | |
memory.available | <number> | Memory available for use | |
memory.reserved | <number> | Reserved memory | Typically reserved by the packet recorder |
memory.by_category | <array of <object>> | List of memory usage for each category | |
memory.by_category[category] | <object> | Memory usage for a single category | |
memory.by_category[category].name | <string> | Category name | |
memory.by_category[category].allocations | <number> | Number of memory allocation operations for this category | |
memory.by_category[category].bytes | <number> | Allocated bytes for this category | |
memory.by_handle | <array of <object>> | List of memory usage for each handle (i.e. view, etc.) | |
memory.by_handle[handle] | <object> | Memory usage for a single handle | |
memory.by_handle[handle].name | <string> | Handle name | |
memory.by_handle[handle].by_category | <array of <object>> | List of memory usage in each category for the given handle | |
memory.by_handle[handle].by_category [category] |
<object> | Memory usage for a single category | |
memory.by_handle[handle].by_category [category].name |
<string> | Category name | |
memory.by_handle[handle].by_category [category].allocations |
<number> | Number of memory allocation operations for this category | |
memory.by_handle[handle].by_category [category].bytes |
<number> | Allocated bytes for this category |
stats: Get storage stats
Get system storage information
GET https://{device}/api/shark/5.1/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 } } } Example: { "packet_storage": { "status": "OK", "used": 0, "reserved": 0, "unused": 0, "unallocated": 3999688294400, "allocated": 0, "total": 3999688294400 }, "os_storage": { "status": "OK", "index_storage": { "unused": 0, "allocated": 0, "total": 457108365312, "used": 0, "unallocated": 457108365312 }, "disk_storage": { "unused": 457108365312, "total": 457360449536, "used": 252084224 } } }
Property Name | Type | Description | Notes |
---|---|---|---|
storage | <object> | ||
storage.packet_storage | <object> | Packet storage statistics | |
storage.packet_storage.status | <string> | Packet storage status | Values: OK, DISK_FULL, CORRUPTED, HW_FAILURE, UNLICENSED, LICENSE_EXCEEDED, UNKNOWN |
storage.packet_storage.total | <number> | Total packet storage size | |
storage.packet_storage.reserved | <number> | Packet storage reserved size | |
storage.packet_storage.allocated | <number> | Allocated packet storage size | |
storage.packet_storage.unallocated | <number> | Unallocated packet storage size | |
storage.packet_storage.used | <number> | Packet storage space currently being used | |
storage.packet_storage.unused | <number> | Allocated but not yet used packet storage space | |
storage.os_storage | <object> | System storage statistics | |
storage.os_storage.status | <string> | System storage status | Values: OK, WARNING, CRITICAL, UNKNOWN |
storage.os_storage.disk_storage | <object> | System disk status | |
storage.os_storage.disk_storage.total | <number> | Total system disk storage size | |
storage.os_storage.disk_storage.used | <number> | System disk storage currently being used | |
storage.os_storage.disk_storage.unused | <number> | System disk storage not being used | |
storage.os_storage.index_storage | <object> | Index storage status | |
storage.os_storage.index_storage.total | <number> | Total index storage size (unallocated + allocated) | |
storage.os_storage.index_storage. allocated |
<number> | Allocated index storage space by all the existing jobs | |
storage.os_storage.index_storage. unallocated |
<number> | Available index storage space | |
storage.os_storage.index_storage.used | <number> | Used index storage space | |
storage.os_storage.index_storage.unused | <number> | Unused index storage space |
stats: Get profiler export stats
Get profiler export information
GET https://{device}/api/shark/5.1/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 } } } Example: { "last_minute": { "exported": { "ip_bytes": 7945576960, "packets": 31037410, "flows": 973309 }, "rejected": { "ip_bytes": 0, "packets": 0, "flows": 0 } }, "last_week": { "exported": { "ip_bytes": 6491276748032, "packets": 25356549797, "average_flows": 78886, "flows": 795175093, "peak_flows": 1000000 }, "rejected": { "ip_bytes": 13589455872, "packets": 53083812, "average_flows": 165, "flows": 1664668, "peak_flows": 600000 } } }
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 |
definitions: List port names
Get the list of configured port names
GET https://{device}/api/shark/5.1/definitions/port_namesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ port_name ] Example: [ { "udp": "http", "port": 80, "tcp": "http" }, { "udp": "ms-sql-s", "port": 1433, "tcp": "ms-sql-s" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
port_names | <array of <port_name>> | List of port name definitions | |
port_names[port_name] | <port_name> | Instance of a <port_name> |
definitions: Update port names configuration
Update the list of configured port names
PUT https://{device}/api/shark/5.1/definitions/port_namesAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ port_name ] Example: [ { "udp": "http", "port": 80, "tcp": "http" }, { "udp": "ms-sql-s", "port": 1433, "tcp": "ms-sql-s" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
port_names | <array of <port_name>> | List of port name definitions | |
port_names[port_name] | <port_name> | Instance of a <port_name> |
On success, the server does not provide any body in the responses.
definitions: List port groups
Get the list of configured port groups
GET https://{device}/api/shark/5.1/definitions/port_groupsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ port_group ] Example: [ { "priority": 0, "name": "Web", "ports": [ { "port_range": "80", "protocol": "TCP" }, { "port_range": "8080", "protocol": "TCP" }, { "port_range": "443", "protocol": "TCP" } ] }, { "priority": 1, "name": "Email", "ports": [ { "port_range": "25", "protocol": "TCP" }, { "port_range": "465", "protocol": "TCP" }, { "port_range": "587", "protocol": "TCP" }, { "port_range": "110", "protocol": "TCP" }, { "port_range": "995", "protocol": "TCP" }, { "port_range": "143", "protocol": "TCP" }, { "port_range": "585", "protocol": "TCP" }, { "port_range": "993", "protocol": "TCP" }, { "port_range": "119", "protocol": "TCP" } ] } ]
Property Name | Type | Description | Notes |
---|---|---|---|
port_groups | <array of <port_group>> | List of port group definitions | |
port_groups[port_group] | <port_group> | Instance of a <port_group> |
definitions: Update port groups configuration
Update the list of configured port groups
PUT https://{device}/api/shark/5.1/definitions/port_groupsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ port_group ] Example: [ { "priority": 0, "name": "Web", "ports": [ { "port_range": "80", "protocol": "TCP" }, { "port_range": "8080", "protocol": "TCP" }, { "port_range": "443", "protocol": "TCP" } ] }, { "priority": 1, "name": "Email", "ports": [ { "port_range": "25", "protocol": "TCP" }, { "port_range": "465", "protocol": "TCP" }, { "port_range": "587", "protocol": "TCP" }, { "port_range": "110", "protocol": "TCP" }, { "port_range": "995", "protocol": "TCP" }, { "port_range": "143", "protocol": "TCP" }, { "port_range": "585", "protocol": "TCP" }, { "port_range": "993", "protocol": "TCP" }, { "port_range": "119", "protocol": "TCP" } ] } ]
Property Name | Type | Description | Notes |
---|---|---|---|
port_groups | <array of <port_group>> | List of port group definitions | |
port_groups[port_group] | <port_group> | Instance of a <port_group> |
On success, the server does not provide any body in the responses.
definitions: List Service Response Time ports
Get the list of configured lService Response Time ports
GET https://{device}/api/shark/5.1/definitions/srt_portsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ number ] Example: [ 20, 25, 69, 80, 139, 143, 443, 465 ]
Property Name | Type | Description | Notes |
---|---|---|---|
srt_ports | <array of <number>> | List of service response time ports | |
srt_ports[port] | <number> |
definitions: Update Service Response Time ports configuration
Update the list of configured Service Response Time ports
PUT https://{device}/api/shark/5.1/definitions/srt_portsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ number ] Example: [ 20, 25, 69, 80, 139, 143, 443, 465 ]
Property Name | Type | Description | Notes |
---|---|---|---|
srt_ports | <array of <number>> | List of service response time ports | |
srt_ports[port] | <number> |
On success, the server does not provide any body in the responses.
definitions: List layer 4 mappings
Get the list of configured layer 4 mappings
GET https://{device}/api/shark/5.1/definitions/layer4_mappingsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ layer4_mapping ] Example: [ { "override": true, "priority": 0, "hosts": [ "192.168.140.18" ], "name": "My_server", "ports": [ { "port_range": "99", "protocol": "TCP" }, { "port_range": "15", "protocol": "TCP" } ] }, { "override": false, "priority": 1, "hosts": [ "192.168.141.1" ], "name": "My_server2", "ports": [ { "port_range": "1000", "protocol": "UDP" }, { "port_range": "1001", "protocol": "UDP" } ] } ]
Property Name | Type | Description | Notes |
---|---|---|---|
layer4_mappings | <array of <layer4_mapping>> | List of layer4 mapping definitions | |
layer4_mappings[layer4_mapping] | <layer4_mapping> | Instance of a <layer4_mapping> |
definitions: Update layer 4 mappings configuration
Update the list of configured layer 4 mappings
PUT https://{device}/api/shark/5.1/definitions/layer4_mappingsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ layer4_mapping ] Example: [ { "override": true, "priority": 0, "hosts": [ "192.168.140.18" ], "name": "My_server", "ports": [ { "port_range": "99", "protocol": "TCP" }, { "port_range": "15", "protocol": "TCP" } ] }, { "override": false, "priority": 1, "hosts": [ "192.168.141.1" ], "name": "My_server2", "ports": [ { "port_range": "1000", "protocol": "UDP" }, { "port_range": "1001", "protocol": "UDP" } ] } ]
Property Name | Type | Description | Notes |
---|---|---|---|
layer4_mappings | <array of <layer4_mapping>> | List of layer4 mapping definitions | |
layer4_mappings[layer4_mapping] | <layer4_mapping> | Instance of a <layer4_mapping> |
On success, the server does not provide any body in the responses.
definitions: List custom applications
Get the list of configured custom applications
GET https://{device}/api/shark/5.1/definitions/custom_applicationsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ custom_application ] Example: [ { "name": "My_Bugzilla", "uri": "http://bugzilla.mydomain.com/" }, { "name": "My_App1", "uri": "http://myserver.mydomain.com/app1/*" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
applications | <array of <custom_application>> | List of custom L7 signature definitions | |
applications[application] | <custom_application> | Instance of a <custom_application> |
definitions: Update custom applications configuration
Update the list of configured custom applications
PUT https://{device}/api/shark/5.1/definitions/custom_applicationsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
- XML
[ custom_application ] Example: [ { "name": "My_Bugzilla", "uri": "http://bugzilla.mydomain.com/" }, { "name": "My_App1", "uri": "http://myserver.mydomain.com/app1/*" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
applications | <array of <custom_application>> | List of custom L7 signature definitions | |
applications[application] | <custom_application> | Instance of a <custom_application> |
On success, the server does not provide any body in the responses.
definitions: List applications
Get the list of configured applications
GET https://{device}/api/shark/5.1/definitions/applicationsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
- XML
[ application ] Example: [ { "type": 1, "display_name": "Facebook", "description": "Facebook is a social networking service.", "id": 206 }, { "type": 1, "display_name": "Google", "description": "Internet searching on Google's search engine site google.com (or international equivalent) and/or encrypted traffic from other Google services.", "id": 259 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
applications | <array of <application>> | List of application definitions | |
applications[application] | <application> | Instance of an <application> |
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 |