Brocade API Doc
Brocade API Doc
11 July 2014
Document History
Title Publication number Summary of changes Date
Brocade Network Advisor REST API 53-1003160-01 New document July 2014
Guide
Contents
In this chapter
• How this document is organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
• Document conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
• Notice to the reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
• Additional information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
• Getting technical help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
• Document feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Text formatting
The narrative-text formatting conventions that are used are as follows:
bold text Identifies command names
Identifies the names of user-manipulated GUI elements
Identifies keywords and operands
Identifies text to enter at the GUI or CLI
italic text Provides emphasis
Identifies variables
Identifies paths and Internet addresses
Identifies document titles
code text Identifies CLI output
Identifies command syntax examples
For readability, command names in the narrative portions of this guide are presented in mixed
lettercase: for example, switchShow. In actual examples, command lettercase is all lowercase.
Convention Description
[] Keywords or arguments that appear within square brackets are optional. For example:
command [active | standby | disabled] = One (and only one) of this set of keywords may be
used.
command [active] [standby] [disabled] = Three independent options, and one or more may
be used on the same command line.
{x|y|z} A choice of required keywords appears in braces separated by vertical bars. You must
select one. For example:
command {active | standby | disabled} = One (and only one) of this set of keywords must
be used.
screen font Examples of information displayed on the screen.
<> Nonprinting characters, for example, passwords, appear in angle brackets.
[] Default responses to system prompts appear in square brackets.
italic text Identifies variables.
bold text Identifies literal command options and keywords.
NOTE
In standalone mode, interfaces are identified using slot/port notation. In Brocade VCS Fabric
technology® mode, interfaces are identified using switch/slot/port notation.
NOTE
A note provides a tip, guidance, or advice, emphasizes important information, or provides a
reference to related information.
ATTENTION
An Attention statement indicates potential damage to hardware or data.
CAUTION
A Caution statement alerts you to situations that can be potentially hazardous to you or cause
damage to hardware, firmware, software, or data.
DANGER
A Danger statement indicates conditions or situations that can be potentially lethal or extremely
hazardous to you. Safety labels are also attached directly to products to warn of these conditions
or situations.
Key terms
For definitions specific to Brocade and Fibre Channel, see the technical glossaries on MyBrocade.
Refer to “Brocade resources” on page xii for instructions on accessing MyBrocade.
For definitions of SAN-specific terms, visit the Storage Networking Industry Association online
dictionary at:
http://www.snia.org/education/dictionary
Additional information
This section lists additional Brocade and industry-specific documentation that you might find
helpful.
Brocade resources
To get up-to-the-minute information, go to http://my.brocade.com to register at no cost for a user ID
and password.
White papers, online demonstrations, and data sheets are available through the Brocade website
at:
http://www.brocade.com/products-solutions/products/index.page
For additional Brocade documentation, visit the Brocade website:
http://www.brocade.com
Release notes are available on the MyBrocade website.
The serial number label is located on the switch ID pull-out tab located on the bottom of the
port side of the switch.
3. World Wide Name (WWN)
Use the show license id command to display the WWN of the chassis.
If you cannot use the show license id command because the switch is inoperable, you can get
the WWN from the same place as the serial number, except for the Brocade DCX. For the
Brocade DCX, access the numbers on the WWN cards by removing the Brocade logo plate at
the top of the nonport side of the chassis.
Document feedback
Quality is our first concern at Brocade and we have made every effort to ensure the accuracy and
completeness of this document. However, if you find an error or an omission, or you think that a
topic needs further development, we want to hear from you. Forward your feedback to:
[email protected]
Provide the title and version number of the document and as much detail as possible about your
comment, including the topic heading and page number and your suggestions for improvement.
In this chapter
• Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
• Network Advisor URIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
• Protocol support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
• Edition support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
•
Introduction
The Network Advisor REST API provides you with a Web services interface for configuring and
monitoring Brocade switches. Brocade Network Advisor 12.3.0 has been updated to provide a
REST API for storage area network (SAN) provisioning. The REST APIs are organized into various
services such as Topology, Authentication, and Zoning.
You can use the Network Advisor REST API to build your own Network Advisor clients. You can also
use third-party REST API clients to interact with Network Advisor.
The Network Advisor REST API provides GET and POST uniform resource identifiers (URIs) that you
can use to retrieve information and perform certain management and configuration tasks.
NOTE
This release of the Network Advisor REST API supports only SAN fabrics.
Protocol support
The Network Advisor REST API supports HTTP and HTTPS, unlike Network Advisor which only
supports HTTPS.
All REST HTTP requests are redirected to the HTTPS port. By default, the HTTPS port number is
443. However, this port can be changed during the installation of Network Advisor or after
installation through the server management console.
Edition support
The following table lists the REST API support for the Network Advisor editions.l
TABLE 1 Edition support
Network Advisor edition REST API availability
Enterprise YES
Professional Plus YES
Professional NO
Headless YES
Getting Started 2
In this chapter
• Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
• Before you begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
• Logging in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
• Retrieving resource groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
• Retrieving FC fabrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
• Retrieving a specific FC fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
• Retrieving switches in the context of a fabric . . . . . . . . . . . . . . . . . . . . . . . . . 9
• Retrieving switches and ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
• Creating a sample Python client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Introduction
This chapter describes how to log in to Network Advisor using its REST API and perform a few basic
information retrieval operations. In addition, this chapter shows you how to build a sample client
application using the Python programming language.
Logging in
To log in to Network Advisor, complete the following steps.
1. Enter the following URI in the URL field of your REST client tool.
http://<ip_address>/rest/login
If the request is successful, Network Advisor creates a new client session and returns, in the
response headers, the token WStoken, which identifies the session.
The following is an example of the output of a successful request:
Status
200 OK Show explanation Loading time: 5592
Response headers
Via: 1.1 Secure Proxy
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
Date: Mon, 03 Feb 2014 06:01:39 GMT
Content-Type: application/vnd.brocade.networkadvisor+json;version="v1"
Server: Apache-Coyote/1.1
WStoken: ghe/4Q//I0EJcxD6UPdO9/fvI94=
Raw
JSON
The JSON content of the response should look like the following:
{
serverName: "DCM-x3650-103"
serverIp: "10.24.48.103"
}
This response returns the name of the Network Advisor and its IP address.
NOTE
Different tools may display the JSON or XML responses differently.
NOTE
A client session has a default idle timeout of 10 minutes after which the token is no longer
valid. If you try to use an invalid token, an error message is returned:
errorCode=4009, errorMsg=Invalid token in header.
Retrieving FC fabrics
You can use the REST API to retrieve FC fabrics in the context of a resource group. The resource
group “All” encompasses all fabrics.
To retrieve all fabrics, complete the following steps.
1. Enter the following URI in the URL field:
http://<ip_address>/rest/resourcegroups/All/fcfabrics
For example, to retrieve the switches in the context of the fabric with key 10:00:00:05:1E:A7:1F:EB,
use the following URI:
http://<ip_address>/rest/resourcegroups/All/fcfabrics/10:00:00:05:1E:A7:1F:EB/fcs
witches
Use the same request headers as the ones used in the previous section (“Retrieving a specific FC
fabric”). The following is a sample response:
{
fcSwitches: [2]
0: {
key: "50:00:51:ED:B1:E5:EF:03"
name: "fcr_xd_1_20"
wwn: "50:00:51:ED:B1:E5:EF:03"
virtualFabricId: -1
domainId: 1
baseSwitch: false
role: "SUBORDINATE"
fcsRole: "None"
adCapable: false
operationalStatus: "UNKNOWN"
state: "UNKNOWN"
statusReason: null
cryptoCapable: false
fcrCapable: false
fcipCapable: false
lfEnabled: false
defaultLogicalSwitch: false
fmsMode: false
dynamicLoadSharingCapable: false
portBasedRoutingPresent: false
inOrderDeliveryCapable: false
persistentDidEnabled: false
fcipCircuitCapable: false
maxFcipTunnels: -1
maxFcipCircuits: -1
fcipLicensed: false
autoSnmpEnabled: true
}
1: {
key: "10:00:00:27:F8:A7:A1:25"
name: "REST_5100_33_194"
wwn: "10:00:00:27:F8:A7:A1:25"
virtualFabricId: -1
domainId: 28
baseSwitch: false
role: "SUBORDINATE"
fcsRole: "None"
adCapable: true
operationalStatus: "UNKNOWN"
state: "ONLINE"
statusReason: "Switch Status is HEALTHY."
cryptoCapable: false
fcrCapable: false
fcipCapable: false
lfEnabled: false
defaultLogicalSwitch: true
fmsMode: false
...
maxFcipTunnels: 0
maxFcipCircuits: 0
fcipLicensed: false
autoSnmpEnabled: true
}
}
portIndex: 34
areaId: 34
type: "U_PORT"
status: "DISABLED"
statusMessage: ""
lockedPortType: "U_PORT"
speed: "8"
speedsSupported: "1,2,4,8"
maxPortSpeed: 8
desiredCredits: 0
bufferAllocated: 0
estimatedDistance: 0
actualDistance: 0
longDistanceSetting: 0
remoteNodeWwn: ""
remotePortWwn: ""
licensed: false
swapped: false
trunked: false
trunkMaster: false
persistentlyDisabled: false
ficonSupported: true
blocked: false
prohibitPortNumbers: null
prohibitPortCount: 0
npivCapable: true
npivEnabled: true
fcFastWriteEnabled: false
islRrdyEnabled: false
rateLimitCapable: false
rateLimited: false
qosCapable: false
qosEnabled: false
fcrFabricId: 0
state: "OFFLINE"
occupied: false
masterPortNumber: -1
}
...
connection = http.client.HTTPConnection("10.24.41.138")
###########################
# Log in to Network Advisor
###########################
"Accept":"application/vnd.brocade.networkadvisor+json;version=v1"})
print()
print("Sending login request to Network Advisor...")
connection.close()
###########################
# Retrieve fabrics
###########################
"Accept":"application/vnd.brocade.networkadvisor+json;version=v1"})
print()
print("--------------------------------------------------------------------")
print("Getting list of all fabrics...")
if response.status == 200:
print()
print("List of fabrics:")
json_response_bytes = response.read()
json_response_string = str(json_response_bytes, encoding='utf8')
list_of_fabrics_dict=json.loads(json_response_string)
print(json.dumps(list_of_fabrics_dict, indent=4))
print("Number of FC fabrics: ", len(list_of_fabrics_dict["fcFabrics"]))
else:
print()
print (response.status, response.reason)
connection.close()
##############################
# Retrieve details of a fabric
##############################
"Accept":"application/vnd.brocade.networkadvisor+json;version=v1"})
print()
print("--------------------------------------------------------------------")
print("Get fabric '+fabric_key+'details...")
connection.close()
######################################################
# Retrieve list of switches in the context of a fabric
######################################################
connection.connect()
connection.request('GET',
'http://10.24.41.138/rest/resourcegroups/All/fcfabrics/'+fabric_key+'/fcswitc
hes',
headers={"WStoken":WStoken,
"Accept":"application/vnd.brocade.networkadvisor+json;version=v1"})
print()
print("--------------------------------------------------------------------")
print("Get the list of switches under fabric "+fabric_key+" ...")
connection.close()
Status= 200
Login successful!
WStoken: RPTZz0z5ayVkvqIuy7quIEbjap8=
-----------------------------------------------------------------------------
Getting list of all fabrics...
Status= 200
List of fabrics:
{
"fcFabrics": [
{
"seedSwitchWwn": "10:00:00:05:33:A6:B6:17",
"name": "10:00:00:05:33:A6:B6:17",
"secure": false,
"principalSwitchWwn": "10:00:00:05:33:A6:B6:17",
"fabricName": "****8G FABRIC FOR REST******",
"seedSwitchIpAddress": "10.24.33.191",
"virtualFabricId": -1,
"contact": null,
"key": "10:00:00:05:33:A6:B6:17",
"adEnvironment": false,
"description": null,
"location": null
},
{
"seedSwitchWwn": "10:00:00:05:1E:A7:1F:EB",
"name": "10:00:00:05:1E:A7:1F:EB",
"secure": false,
"principalSwitchWwn": "10:00:00:05:1E:A7:1F:EB",
"fabricName": "",
"seedSwitchIpAddress": "10.24.33.195",
"virtualFabricId": -1,
"contact": null,
"key": "10:00:00:05:1E:A7:1F:EB",
"adEnvironment": false,
"description": null,
"location": null
},
{
"seedSwitchWwn": "10:00:00:05:1E:DB:1E:1E",
"name": "10:00:00:05:1E:DB:1E:1E",
"secure": false,
"principalSwitchWwn": "10:00:00:05:1E:DB:1E:1E",
"fabricName": "",
"seedSwitchIpAddress": "10.24.33.193",
"virtualFabricId": -1,
"contact": null,
"key": "10:00:00:05:1E:DB:1E:1E",
"adEnvironment": false,
"description": null,
"location": null
}
]
}
Number of FC fabrics: 3
-----------------------------------------------------------------------------
Get fabric '+fabric_key+'details...
Status= 200
Fabric details:
{
"fcFabrics": [
{
"seedSwitchWwn": "10:00:00:05:33:A6:B6:17",
"name": "10:00:00:05:33:A6:B6:17",
"secure": false,
"principalSwitchWwn": "10:00:00:05:33:A6:B6:17",
"fabricName": "****8G FABRIC FOR REST******",
"seedSwitchIpAddress": "10.24.33.191",
"virtualFabricId": -1,
"contact": null,
"key": "10:00:00:05:33:A6:B6:17",
"adEnvironment": false,
"description": null,
"location": null
}
]
}
-----------------------------------------------------------------------------
Get the list of switches under fabric 10:00:00:05:33:A6:B6:17...
Status= 200
List of switches:
{
"fcSwitches": [
{
"statusReason": null,
"fcipLicensed": false,
"autoSnmpEnabled": true,
"state": "UNKNOWN",
"persistentDidEnabled": false,
"lfEnabled": false,
"fcipCapable": false,
"fcsRole": "None",
"maxFcipTunnels": -1,
"maxFcipCircuits": -1,
"wwn": "50:00:51:ED:B1:E5:EF:04",
"type": 41,
"fcrCapable": false,
"portBasedRoutingPresent": false,
"cryptoCapable": false,
"fmsMode": false,
"name": "fcr_xd_1_30",
"defaultLogicalSwitch": false,
"fcipCircuitCapable": false,
"baseSwitch": false,
"virtualFabricId": -1,
"adCapable": false,
"key": "50:00:51:ED:B1:E5:EF:04",
"operationalStatus": "UNKNOWN",
"role": "SUBORDINATE",
"domainId": 1,
"inOrderDeliveryCapable": false,
"dynamicLoadSharingCapable": false
},
{
"statusReason": null,
"fcipLicensed": false,
"autoSnmpEnabled": true,
"state": "UNKNOWN",
"persistentDidEnabled": false,
"lfEnabled": false,
"fcipCapable": false,
"fcsRole": "None",
"maxFcipTunnels": -1,
"maxFcipCircuits": -1,
"wwn": "50:00:51:ED:B1:E1:EE:14",
"type": 40,
"fcrCapable": false,
"portBasedRoutingPresent": false,
"cryptoCapable": false,
"fmsMode": false,
"name": "fcr_fd_160",
"defaultLogicalSwitch": false,
"fcipCircuitCapable": false,
"baseSwitch": false,
"virtualFabricId": -1,
"adCapable": false,
"key": "50:00:51:ED:B1:E1:EE:14",
"operationalStatus": "UNKNOWN",
"role": "SUBORDINATE",
"domainId": 160,
"inOrderDeliveryCapable": false,
"dynamicLoadSharingCapable": false
},
{
"statusReason": null,
"fcipLicensed": false,
"autoSnmpEnabled": true,
"state": "UNKNOWN",
"persistentDidEnabled": false,
"lfEnabled": false,
"fcipCapable": false,
"fcsRole": "None",
"maxFcipTunnels": -1,
"maxFcipCircuits": -1,
"wwn": "50:00:51:ED:B1:E5:EF:06",
"type": 41,
"fcrCapable": false,
"portBasedRoutingPresent": false,
"cryptoCapable": false,
"fmsMode": false,
"name": "fcr_xd_1_30",
"defaultLogicalSwitch": false,
"fcipCircuitCapable": false,
"baseSwitch": false,
"virtualFabricId": -1,
"adCapable": false,
"key": "50:00:51:ED:B1:E5:EF:06",
"operationalStatus": "UNKNOWN",
"role": "SUBORDINATE",
"domainId": 1,
"inOrderDeliveryCapable": false,
"dynamicLoadSharingCapable": false
},
{
"statusReason": "Switch Status is MARGINAL. Contributors:\n* Power
Supply: 1 bad. (MARGINAL).\n* Fan: 1 bad (MARGINAL).",
"fcipLicensed": false,
"autoSnmpEnabled": true,
"state": "ONLINE",
"persistentDidEnabled": false,
"lfEnabled": false,
"fcipCapable": false,
"fcsRole": "None",
"maxFcipTunnels": 0,
"maxFcipCircuits": 0,
"wwn": "10:00:00:14:C9:E5:56:AB",
"type": 133,
"fcrCapable": false,
"portBasedRoutingPresent": false,
"cryptoCapable": false,
"fmsMode": false,
"name": "REST_6520_33_189",
"defaultLogicalSwitch": true,
"fcipCircuitCapable": false,
"baseSwitch": false,
"virtualFabricId": -1,
"adCapable": true,
"key": "10:00:00:14:C9:E5:56:AB",
"operationalStatus": "MARGINAL",
"role": "SUBORDINATE",
"domainId": 2,
"inOrderDeliveryCapable": false,
"dynamicLoadSharingCapable": true
},
{
"statusReason": "Switch Status is HEALTHY.",
"fcipLicensed": false,
"autoSnmpEnabled": true,
"state": "ONLINE",
"persistentDidEnabled": false,
"lfEnabled": false,
"fcipCapable": false,
"fcsRole": "None",
"maxFcipTunnels": 0,
"maxFcipCircuits": 0,
"wwn": "10:00:00:05:33:A6:B6:17",
"type": 118,
"fcrCapable": false,
"portBasedRoutingPresent": false,
"cryptoCapable": false,
"fmsMode": false,
"name": "REST_6505_33_191",
"defaultLogicalSwitch": true,
"fcipCircuitCapable": false,
"baseSwitch": false,
"virtualFabricId": -1,
"adCapable": true,
"key": "10:00:00:05:33:A6:B6:17",
"operationalStatus": "UNKNOWN",
"role": "PRINCIPAL",
"domainId": 191,
"inOrderDeliveryCapable": false,
"dynamicLoadSharingCapable": true
}
]
}
In this chapter
• Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
• Logging in and out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
• Specifying content type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
• Versioning (backward compatibility). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
• Using the Topology API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
• Using the SAN Fabric Discovery API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
• Using the Traffic Flow API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
• Using the Summary Data API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
• Using the Events API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
• Using the Zoning API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
• Using the Historical Performance Data API . . . . . . . . . . . . . . . . . . . . . . . . . . 30
• Fibre Channel Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
• Handling errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Introduction
This chapter describes how to use the Brocade Network Advisor REST API.
Logging in
Use the /login POST URI to log in. This URI returns the BNA Server credentials in a LoginResponse.
<BASE_URI>/login
The following are the header names and values. The password must be passed in as clear text.
TABLE 5 Login request headers
Request header name Request header value
/**
* Make the HTTP call
*/
int responseCode = con.getResponseCode();
System.out.println("Response code is " + responseCode);
if (HttpURLConnection.HTTP_OK != responseCode) {
PRINT_ERROR(con);
assert false : "REST FAILED for login, responseCode = " + responseCode;
}
}
} catch (IOException ie) {
System.out.println(ie.toString());
} finally {
if (null != con) {
con.disconnect();
}
}
{"serverName":"W2K8R2-41-138","serverIp":"10.24.41.138"}
org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatch
er.java:264)
org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousD
ispatcher.java:209)
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.j
ava:557)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:5
24)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:1
26)
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(Serv
letContainerDispatcher.java:208)
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServl
etDispatcher.java:55)
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServl
etDispatcher.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)</pre></p><p><b>JBWEB
000071: root cause</b> <pre>RSException [errorCode=4005, errorMsg=Invalid
username or password]
com.brocade.dcm.webservices.server.util.WebServiceCommonUtil.throwException(WebSe
rviceCommonUtil.java:98)
com.brocade.dcm.webservices.server.sessionmgmt.WebSessionManager.validateUsername
Password(WebSessionManager.java:485)
com.brocade.dcm.webservices.server.sessionmgmt.WebSessionManager.createSession(We
bSessionManager.java:169)
com.brocade.dcm.webservices.server.security.LoginRequestInterceptor.preProcess(Lo
ginRequestInterceptor.java:105)
com.brocade.dcm.webservices.server.security.LoginRequestInterceptor$Proxy$_$$_Wel
dClientProxy.preProcess(LoginRequestInterceptor$Proxy$_$$_WeldClientProxy.java)
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:247)
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211)
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.j
ava:542)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:5
24)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:1
26)
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(Serv
letContainerDispatcher.java:208)
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServl
etDispatcher.java:55)
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServl
etDispatcher.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)</pre></p><p><b>JBWEB
000072: note</b> <u>JBWEB000073: The full stack trace of the root cause is
available in the JBoss Web/7.2.0.Final logs.</u></p><HR size="1"
noshade="noshade"><h3>JBoss Web/7.2.0.Final</h3></body></html>
Logging out
Use the /logout POST URI to log out. Successful completion of the request results in the deletion of
the client session. The logout request does not require any request payload except for the session
token, which must be passed in an HTTP header parameter. Because there is no return value to
this request, an HTTP status code of 204 (No Content) is returned upon success.
<BASE_URI>/logout
/**
* Make the HTTP call
*/
int responseCode = con.getResponseCode();
System.out.println("Response code is " + responseCode);
if (HttpURLConnection.HTTP_NO_CONTENT != responseCode) {
PRINT_ERROR(con);
assert false : "REST FAILED for logout, responseCode = " + responseCode;
}
} catch (IOException ie) {
System.out.println(ie.toString());
} finally {
if (null != con) {
con.disconnect();
}
}
For example:
application/vnd.brocade.networkadvisor+xml;version=v1
application/vnd.brocade.networkadvisor+json;version=v1
In this release, the version is v1. For information about the version identifier, refer to “Versioning
(backward compatibility).”
When forming an HTTP GET request, you must specify the request header. The following header
values are supported:
TABLE 8 GET request header values (Accept header)
Request header name Request header value Response data format
If you do not provide a request header when calling URIs, the response data is returned in XML
format.
• In the case of SNMP V3, if the privacy protocol is specified, the authorization protocol is
required; it cannot be null.
• The default user name is “admin”.
• The default password is “password”.
In this example, you instruct the server to send 100 events that are categorized as specialEvents
and that originated as TARP events.
Zoning URIs
The HTTP request header “Accept” must be specified to indicate the content type of the response
payload. For more information, refer to “Specifying content type.”
The HTTP request header “WSToken” must be specified with the token received from login. For
more information, refer to “Logging in and out.”
Zoning operations
When performing POST zoning operations for creating, deleting, and updating zoning objects, note
the following:
• All POST zoning operations are valid only within the context of a zoning transaction.
• The appropriate request instance must be formed and sent through the POST request.
• All operations within the context of a zoning transaction are local to Network Advisor. Only on
the commit of a zoning transaction, the data is pushed as a big blob to the switch.
• Multiple zoning objects can be created, deleted, or updated in one call.
• Unlike on the switch, Network Advisor does support the creation of empty zoning objects.
Before data can be committed to the switch, the zoning objects must contain data.
• Operations such as CreateZoningObject map to multiple operations within Network Advisor.
Failure of such an operation could internally be partial success. As a best practice, check the
contents of the zoning database before proceeding or abort the transaction and proceed with a
new transaction.
• Because in the case of a commit, there could be multiple reasons for failure, the REST API
returns the exact same error messages returned by the switch in response to commit failures.
• For LSAN zoning, zone names must start with LSAN_. And the members must be identified by
WWNs only.
• Empty LSAN zones cannot be created.
• LSAN zoning is supported only in the context of a backbone fabric.
Handling errors
The exception for all REST errors is RSException. This exception contains an integer error code and
a string error message. The exception is a string of the following format:
RSException [errorCode=<int>, errorMsg=<string>]
REST operations are HTTP requests, so the execution of an operation returns an HTTP status code.
For successful operations the status code is usually 200 (OK) or 204 (No Content). In the case of
an error, depending on the reason for failure, any of the HTTP status codes may be returned.
However, in the case of an API error, the HTTP status code is 500 (Internal Server Error). More
details on the server error can be obtained from the RSException embedded in the HTTP response.
Table 10 describes the RSException error codes.
TABLE 10 Error codes
Error code Error message
8006 Range from start date to end date exceeds limit for given granularity.
8007 Start date is beyond end date.
99010 Opaque key value not found
NOTE
Filtering is not the same as using a key. Filters let you sift out a smaller list from a larger one.
The smaller list could be an empty list.
Use Cases 4
In this chapter
• Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
• Zoning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
• Getting Traffic Flow Performance Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
• Getting the Top N CRC errors port summary . . . . . . . . . . . . . . . . . . . . . . . . . 44
• SAN fabric discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
• Binding the schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Introduction
This chapter discusses common use cases for the Network Advisor REST API.
Zoning
Zoning is the means by which administrators partition their SAN into logical groups of devices that
can access each other.
When zoning a SAN, it is best to implement 1-to-1 zoning, where each zone contains a single
initiator and a single target. Single-initiator zoning has the advantage of eliminating host-to-host
visibility, which results in less RSCN traffic.
You can use the REST API to carry out single-initiator to single- or multiple-target zoning using the
attach/detach URIs.
To attach a single initiator with one or more targets, perform the following steps.
1. Establish a REST session with Network Advisor (refer to “Logging in”).
The network consisting of the initiator and targets is assumed to be discovered in Network
Advisor. If not, you can use the Network Advisor client or the Network Advisor REST API to
discover the fabrics of interest (refer to “SAN fabric discovery”).
2. Create the InitiatorTargetsRequest.xml file with the payload information consisting of the
initiator and target WWNs and other properties defined in the REST schema of the
InitiatorTargetsRequest request object (refer to the “InitiatorTargetsRequest”).
NOTE
The InitiatorTargetsRequest REST schema is published in the directory
<INSTALL-DIR>/conf/rest-schema, where <INSTALL-DIR> is the Network Advisor installation
directory.
JAXBContext jaxbContext =
JAXBContext.newInstance(InitiatorTargetsRequest.class);
Unmarshaller u = jaxbContext.createUnmarshaller();
Object element = u.unmarshal(new File("./InitiatorTargetsRequest.xml"));
Marshaller m = jaxbContext.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(element, con.getOutputStream());
System.out.println("CALLING POST
http://10.24.48.103/rest/resourcegroups/All/fcfabrics/10:00:00:27:F8:42:B4:0D
/attach");
int responseCode = con.getResponseCode();
System.out.println("REQUEST HTTPSTATUS = " + responseCode);
if (responseCode != HttpURLConnection.HTTP_OK
&& responseCode != HttpURLConnection.HTTP_NO_CONTENT
&& responseCode != HttpURLConnection.HTTP_PARTIAL
&& responseCode != HttpURLConnection.HTTP_ACCEPTED) {
PRINT_ERROR(con);
assert false : "Fabric Discovery FAILED, responseCode = " +
responseCode;
}
PRINT_RESPONSE(con);
} catch (IOException ie) {
System.out.println(ie.toString());
} finally {
if (null != con) {
con.disconnect();
}
}
CALLING GET
http://10.24.48.103/rest/resourcegroups/All/fcfabrics/10:00:00:27:F8:42:B4:0D
/zonedbs
REQUEST HTTPSTATUS = 200
{"zonedbs":[{"key":"10:00:00:27:F8:42:B4:0D-false","active":false,"checksum":
4043007525,"zones":[],"zonealiases":[],"zonesets":[]},{"key":"10:00:00:27:F8:
42:B4:0D-true","active":true,"checksum":1895126470,"zones":[],"zonealiases":n
ull,"zonesets":[]}]}
CALLING POST
http://10.24.48.103/rest/resourcegroups/All/fcfabrics/10:00:00:27:F8:42:B4:0D
/attach
MARSHALLED request
REQUEST HTTPSTATUS = 204
CALLING GET
http://10.24.48.103/rest/resourcegroups/All/fcfabrics/10:00:00:27:F8:42:B4:0D
/zonedbs
REQUEST HTTPSTATUS = 200
{"zonedbs":[{"key":"10:00:00:27:F8:42:B4:0D-false","active":false,"checksum":
3900215559,"zones":[{"key":"NARestZone_100000051E530B93-false","name":"NARest
Zone_100000051E530B93","type":"STANDARD","active":false,"aliasNames":[],"memb
erNames":["10:00:00:05:1E:53:0B:93","20:01:00:11:0D:C6:01:01","20:06:00:11:0D
:C6:01:01"]}],"zonealiases":[],"zonesets":[{"key":"NARestZoneSet-false","name
":"NARestZoneSet","active":false,"zoneNames":["NARestZone_100000051E530B93"]}
]},{"key":"10:00:00:27:F8:42:B4:0D-true","active":true,"checksum":1349809297,
"zones":[{"key":"NARestZone_100000051E530B93-true","name":"NARestZone_1000000
51E530B93","type":"STANDARD","active":true,"aliasNames":null,"memberNames":["
10:00:00:05:1E:53:0B:93","20:01:00:11:0D:C6:01:01","20:06:00:11:0D:C6:01:01"]
}],"zonealiases":null,"zonesets":[{"key":"NARestZoneSet-true","name":"NARestZ
oneSet","active":true,"zoneNames":["NARestZone_100000051E530B93"]}]}]}
NOTE
The text in bold shows that a zone with the requested initiator and targets has been created
and activated.
System.out.println("CALLING GET
http://10.24.48.103/rest/resourcegroups/All/fcswitches/10:00:00:05:1E:40:40:00/fl
ows");
/**
* Make the HTTP call
*/
int responseCode = con.getResponseCode();
System.out.println("Response code is " + responseCode);
if (HttpURLConnection.HTTP_SUCCESS != responseCode) {
PRINT_ERROR(con);
assert false : "REST FAILED, responseCode = " + responseCode;
}
} catch (IOException ie) {
System.out.println(ie.toString());
} finally {
if (null != con) {
con.disconnect();
}
}
,"mirrorPort":""},{"key":"fldbid-10","flowDefinitionName":"traffic_flow","feature
Type":"MONITOR","srcDevicePorts":["aa01ef"],"destDevicePorts":["031900"],"srcSwit
chPort":"","destSwitchPort":"0/25","bidirectional":false,"sfid":"","dfid":"","lun
Ids":[],"frameSize":0,"framePattern":"","subFlowMd5hash":"","mirrorPort":""},{"ke
y":"fldbid-16","flowDefinitionName":"traffic_flow","featureType":"MONITOR","srcDe
vicePorts":["032b01"],"destDevicePorts":["031900"],"srcSwitchPort":"","destSwitch
Port":"0/25","bidirectional":false,"sfid":"","dfid":"","lunIds":[],"frameSize":0,
"framePattern":"","subFlowMd5hash":"","mirrorPort":""},{"key":"fldbid-17","flowDe
finitionName":"traffic_flow","featureType":"MONITOR","srcDevicePorts":["010500"],
"destDevicePorts":["031900"],"srcSwitchPort":"","destSwitchPort":"0/25","bidirect
ional":false,"sfid":"","dfid":"","lunIds":[],"frameSize":0,"framePattern":"","sub
FlowMd5hash":"","mirrorPort":""},{"key":"fldbid-14","flowDefinitionName":"traffic
_flow","featureType":"MONITOR","srcDevicePorts":["*"],"destDevicePorts":["031900"
],"srcSwitchPort":"","destSwitchPort":"0/25","bidirectional":false,"sfid":"","dfi
d":"","lunIds":[],"frameSize":0,"framePattern":"","subFlowMd5hash":"","mirrorPort
":""}]}
System.out.println("CALLING GET
http://10.24.48.103/rest/resourcegroups/All/fcswitches/10:00:00:05:33:13:78:7E/ti
meseriestxframerate?startdate=1402012800000&enddate=1402023600000&granularity=GRA
NULARITY_30MIN");
/**
* Make the HTTP call
*/
int responseCode = con.getResponseCode();
System.out.println("Response code is " + responseCode);
if (HttpURLConnection.HTTP_SUCCESS != responseCode) {
PRINT_ERROR(con);
assert false : "REST FAILED, responseCode = " + responseCode;
}
InSeconds":1402019999,"value":0.005,"lo":0.0,"hi":0.012,"sum":0.0},{"timeInSecond
s":1402018199,"value":0.008499999999999999,"lo":0.004,"hi":0.013,"sum":0.0},{"tim
eInSeconds":1402016399,"value":0.007666666666666666,"lo":0.0,"hi":0.014,"sum":0.0
},{"timeInSeconds":1402014599,"value":0.006833333333333333,"lo":0.0,"hi":0.013,"s
um":0.0}]},{"targetKey":"fldbid-12","targetType":"FLOW","timeSeriesDatas":[{"time
InSeconds":1402023599,"value":0.0,"lo":0.0,"hi":0.0,"sum":0.0},{"timeInSeconds":1
402021799,"value":0.0,"lo":0.0,"hi":0.0,"sum":0.0},{"timeInSeconds":1402019999,"v
alue":0.0,"lo":0.0,"hi":0.0,"sum":0.0},{"timeInSeconds":1402018199,"value":0.0,"l
o":0.0,"hi":0.0,"sum":0.0},{"timeInSeconds":1402016399,"value":0.0,"lo":0.0,"hi":
0.0,"sum":0.0},{"timeInSeconds":1402014599,"value":0.0,"lo":0.0,"hi":0.0,"sum":0.
0}]}],"granularity":"GRANULARITY_30MIN","duration":null,"startDate":1402012800000
,"endDate":1402023600000}
In this response, you can see the value for Transmit Frame Rate within the provided start and end
times. Each entry has the target key specified and this can be used in combination with the flow
data you received from the previous flows response to plot the data.
NOTE
The REST XML schema for DiscoverFabricRequest is published in the directory
<INSTALL-DIR>/conf/rest-schema, where <INSTALL-DIR> is the installation directory of Network
Advisor. The schema for DiscoverFabricRequest provides more details on the default values for
some of the properties.
/**
* Unmarshal the XML data into the Java content object
*/
JAXBContext jaxbContext = JAXBContext.newInstance(DiscoverFabricRequest.class);
Unmarshaller u = jaxbContext.createUnmarshaller();
Object element = u.unmarshal(new File("./DiscoverFabricRequest.xml"));
/**
* Marshal the java object into the connection o/p stream
*/
Marshaller m = jaxbContext.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(element, con.getOutputStream());
System.out.println("CALLING POST
http://10.24.48.103/rest/resourcegroups/All/discoverfabric");
/**
* Make the HTTP call
*/
int responseCode = con.getResponseCode();
System.out.println("Response code is " + responseCode);
if (responseCode != HttpURLConnection.HTTP_OK
&& responseCode != HttpURLConnection.HTTP_NO_CONTENT
&& responseCode != HttpURLConnection.HTTP_PARTIAL
&& responseCode != HttpURLConnection.HTTP_ACCEPTED) {
PRINT_ERROR(con);
assert false : "Fabric Discovery FAILED, responseCode = " + responseCode;
}
if (responseCode == HttpURLConnection.HTTP_PARTIAL) {
String location = con.getHeaderField("Location");
if (null != location) {
System.out.println("URI FOR NEXT PAGE = " + location);
}
}
PRINT_RESPONSE(con);
} catch (IOException ie) {
System.out.println(ie.toString());
} finally {
if (null != con) {
con.disconnect();
}
}
{"serverName":"W2K8R2-41-138","serverIp":"10.24.41.138"}
/**
* Getting FC fabrics list BEFORE discoverfabric operation, it is empty
*/
CALLING GET http://10.24.41.138/rest/resourcegroups/All/fcfabrics
REQUEST HTTPSTATUS = 200
{"fcFabrics":[]}
/**
* Executing discoverfabric, all virtual fabrics if any have been discovered
*/
CALLING POST http://10.24.48.103/rest/resourcegroups/All/discoverfabric
/**
* Getting FC fabrics list AFTER discoverfabric operation, fabrics exist
*/
CALLING GET http://10.24.48.103/rest/resourcegroups/All/fcfabrics
REQUEST HTTPSTATUS = 200
{"fcFabrics":[{"key":"10:00:00:05:1E:40:40:02","seedSwitchWwn":"10:00:00:05:1E:40
:40:02","name":"ApsFabric-10:00:00:05:1e:40:40:01","secure":false,"adEnvironment"
:false,"contact":null,"location":null,"description":null,"principalSwitchWwn":"10
:00:00:05:1E:40:40:02","fabricName":"","virtualFabricId":2,"seedSwitchIpAddress":
"10.24.45.92"},{"key":"10:00:00:05:1E:40:40:01","seedSwitchWwn":"10:00:00:05:1E:4
0:40:01","name":"ApsFabric","secure":false,"adEnvironment":false,"contact":null,"
location":null,"description":null,"principalSwitchWwn":"10:00:00:05:1E:40:40:01",
"fabricName":"","virtualFabricId":1,"seedSwitchIpAddress":"10.24.45.92"},{"key":"
10:00:00:05:1E:40:40:00","seedSwitchWwn":"10:00:00:05:1E:40:40:00","name":"ApsFab
ric-10:00:00:05:1e:40:40:01-10:00:00:05:1e:40:40:02","secure":false,"adEnvironmen
t":false,"contact":null,"location":null,"description":null,"principalSwitchWwn":"
10:00:00:05:1E:40:40:00","fabricName":"","virtualFabricId":128,"seedSwitchIpAddre
ss":"10.24.45.92"}]}
Deleting an FC fabric
You can use the following POST URI to delete an existing fabric in Network Advisor.
<BASE_URI>/resourcegroups/All/fcfabrics/fcfkey/deletefabric
This POST operation does not require any request payload except for the session token which is
passed back in an HTTP header parameter after a successful login.
This POST operation is performed on the fabric specified by fcfkey.
System.out.println("CALLING POST
http://10.24.48.103/rest/resourcegroups/All/fcfabrics/10:00:00:05:1E:40:40:00/del
etefabric");
/**
* Make the HTTP call
*/
int responseCode = con.getResponseCode();
System.out.println("Response code is " + responseCode);
if (HttpURLConnection.HTTP_NO_CONTENT != responseCode) {
PRINT_ERROR(con);
assert false : "Delete Fabric FAILED, responseCode = " + responseCode;
}
} catch (IOException ie) {
System.out.println(ie.toString());
} finally {
if (null != con) {
con.disconnect();
}
}
In this example, you can see that in order to unmarshal the XML data into Java objects, you
first need the Java class that represents the XML data, meaning binding the XML schema to
the Java class. That means that you need to generate the set of Java classes that represent the
REST XML schema.
2. Marshal the jaxbContext object into the HttpURLConnection output stream, as shown in the
following Java code example.
Marshaller m = jaxbContext.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(element, con.getOutputStream());
API Reference 5
In this chapter
• Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
• SAN fabric discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
• Summary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
• Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
• Zoning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
• Historical performance data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
• Authentication and session management . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Topology
• “ResourceGroups”
• “Fabrics”
• “FC Switch”
• “PhysicalSwitch”
• “AccessGateway”
• “FCPorts”
• “GigePorts”
• “Connected-switch ports”
• “End-device ports”
• “Trunks”
• “ISL Connections”
• “IFL connections”
• “EndDeviceConnection”
• “Access Gateway connection”
• “End devices”
ResourceGroups
Network Advisor supports “network scopes.” A network scope is a grouping of resources, a sort of
a convenience mechanism to enable you to retrieve data for any grouping of your choice. In the
Network Advisor REST API, a “resource group” is the equivalent of a “network scope.”
Resource groups can be predefined system groups or they can be user-defined groups. They are
keyed by unique names. Each resource group, whether system-defined or user-defined, is of a
particular type as defined by the enumeration NetworkScopeType. The resource group type
enables you to differentiate user-defined groups from other groups.
The system-defined resource group named “All” encompasses all resources. The resource group is
the starting point for all of the supported URIs in the Network Advisor REST API.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the resource group. The key is the unique resource group
name with spaces encoded.
name The unique name of the resource group.
type The type of resource group.
Notes
The response schema is ResourceGroupsResponse.
Fabrics
Retrieves information about FC fabrics.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key Unique identifier for the fabric. The key is the principal switch WWN.
seedSwitchWwn WWN of the switch used as the seed switch to discover the fabric.
name The name of the fabric as configured in Network Advisor.
secure Whether the fabric is running secure Fabric OS.
adEnvironment The admin domain environment of the fabric.
contact User-assigned fabric contact.
location User-assigned fabric location.
description User-assigned fabric description.
principalSwitchWwn WWN of the principal fabric switch.
fabricName Fabric name persisted on switches running Fabric OS 7.0 and later.
virtualFabricId Virtual fabric ID. A positive value indicates VF is enabled; otherwise -1.
seedSwitchIpAddress IP address of the seed switch. Could be either an IPv4 or IPv6 address.
Notes
• The resource group “All” encompasses all fabrics while the resource group FC_FABRIC
retrieves a subset of the fabrics.
• Even though a user-defined resource group can be a group of fabrics, products, or ports, FC
fabrics can be retrieved in the context of an FC fabric or user-defined resource group of only
fabrics. As there is no containment hierarchy within products or ports for FC fabrics, for a
PRODUCT_GROUP, PORT_GROUP, or USER_DEFINED resource group of products or ports, the
list is empty.
• The fabric is keyed by its unique principal switch WWN.
FC Switch
Retrieves information about FC switches.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the switch, which is the switch WWN.
type The switch type, the sw_bd_type of the switch.
name The switch name.
wwn The switch WWN.
virtualFabricId The virtual fabric ID. A positive value indicates VF is enabled; otherwise -1.
domainId The domain ID of the switch.
baseSwitch Indicates whether it is a base switch.
role The role of the switch. Refer to RoleType.
fcsRole The FCS role of the switch. This is applicable only when FCS policy is on.
adCapable Indicates the switch’s capability for Admin domain.
operationalStatus The operational status of the switch. Refer to OperStatusType.
state The state of the switch. Refer to StateType.
statusReason The status reason, the contributors to the status.
lfEnabled Indicates if logical fabric is enabled on the switch.
defaultLogicalSwitch Indicates if the switch is the default logical switch.
fmsMode Indicates the FMS mode in FICON environment.
Property Description
Notes
• The resource group “All” encompasses all switches while a ResourceGroup of type
PRODUCT_GROUP scopes a subset of the switches. Even though a USER_DEFINED resource
group can be a group of fabrics, products or ports, FC switches can be retrieved at the context
of a USER_DEFINED resource group of fabrics or products only. As there is no containment
hierarchy within ports for FC switches, for a USER_DEFINED resource group of ports, the list is
empty.
• In the cases where the URI contains the FC fabric, FC fabrics can be retrieved at the context of
FC_FABRIC or USER_DEFINED resource groups of fabrics only. As there is no containment
hierarchy within products or ports for FC fabrics, for a PRODUCT_GROUP, PORT_GROUP or
USER_DEFINED resource group of products of ports, the URIs with FC fabric key will return an
empty list of FC switches.
• The FC switch is keyed by its unique switch WWN. The result is FcSwitchesResponse
containing a list of FcSwitch.
PhysicalSwitch
Retrieves information about physical switches. This includes properties such as IP address, switch
serial number, model, and so on.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the switch, which is the WWN.
wwn The WWN of the switch.
ipAddress The IP address of the switch. Could be either IPv4 or IPv6 address.
userId The Telnet user name used to log in to switch.
firmwareVersion The firmware version of the switch.
vendor The vendor information of the switch
supplierSerialNumber The supplier serial number of the switch.
partNumber The part number of the switch.
modelNumber The model of the switch, such as Brocade 6505 and Brocade 6520.
manufacturer The manufacturer for the switch.
switchSerialNumber The factory serial number of the switch.
vendorVersion The vendor version of the switch.
vendorPartNumber The vendor part number of the switch.
snmpInformsEnabled Indicates if the SNMP informs is enabled.
contact The contact details of the switch. Syscontact from the RFC 1213 MIB.
location The location details for the switch. Syslocation from RFC 1213 MIB.
description The description of the switch. Sysdescr from RFC 1213 MIB.
Notes
• The physical switch is keyed by the physical switch WWN.
• This resource contains the properties that depict the physical nature of a logical FC switch.
• The response schema is PhysicalSwitchesResponse.
• There is no physical switch for Front and Xlate phantom switches.
AccessGateway
Retrieves Access Gateway information.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the access gateway, which is the WWN.
name The AG name.
wwn The AG WWN.
operationalStatus The operational status of the AG. Refer to OperStatusType.
state The state of the AG. Refer to StateType.
statusReason The status reason, the contributors to the status.
firmwareVersion The firmware version of the AG.
Notes
• When a switch is in Access Gateway mode, it does not possess a domain ID and is not part of
any fabric. It acts as a gateway for multiple devices to log in to a specific switch, which is part
of a fabric, via a single F_Port. The N_Port on the Access Gateway connects to the FC switch’s
F_Port and end devices are connected to the Access Gateway’s F_Port. These ports can be
retrieved in the context of that Access Gateway. For information about port URIs related to
Access Gateway, refer to “FCPorts.”
• The end devices and their ports can also be retrieved in the context of an Access Gateway. For
information, refer to “Connected-switch ports” and “End devices”.
• The connection between an FC switch and the Access Gateway is represented as an
AgConnection object. For more information about the AgConnection-related URIs, refer to
“Access Gateway connection”.
• Access Gateways can be retrieved only in the context of the resource group “All.” They cannot
be retrieved with respect to any other resource group such as fabric, product, or port.
• An Access Gateway is keyed by its unique WWN.
• The response schema is AccessGatewaysResponse.
FCPorts
Retrieves information about FC ports.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the port, which is the WWN.
NOTE: The key of the Front phantom port is FF-wwn.
The key of Xlate phantom port is XF-wwn.
wwn The WWN of the port.
name The user-assigned port name.
slotNumber The slot number. The default value is 0.
portNumber The logical port number within the slot. In case of directors, this port number is unique
within the slot.
userPortNumber The user port number. This is a unique port number within a chassis.
Property Description
Property Description
state The state of the port. The state type is in the schema.
occupied Indicates if the port is occupied.
masterPortNumber The trunk’s master port number for the trunk member ports. For trunk master port, it
will be its own port number. For non-trunk ports, it will have the default value -1.
Notes
• This release supports only FC and GigE ports.
• The ports can be retrieved in the context of a resource group, a switch, or an access gateway.
The resource group “All” encompasses all ports while a resource group of type PORT_GROUP
or USER_DEFINED scopes a subset of the ports.
NOTE
In the cases where the URI contains an FC fabric, the FC fabrics can be retrieved in the context
of the FC_FABRIC or USER_DEFINED resource group of fabrics only.
GigePorts
Retrieves information about GigE ports.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the port, which is the MAC address.
portNumber The GigE port number, 0 for ge0 and 1 for ge1.
slotNumber The slot number on which the GigE port is present.
enabled Indicates if the port is enabled.
speed The port speed.
maxSpeed The maximum port speed.
macAddress The MAC address of the port.
portName The GigE port name.
operationalStatus The status of the port.
ledState The LED state.
speedLedState The speed LED state.
portType The port type.
Property Description
Connected-switch ports
Retrieves information about connected-switch ports.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the port, which is the WWN.
domainId The domain ID of the switch to which this device port is connected.
wwn The device port WWN.
deviceNodeWwn The WWN of the node of this device port.
switchPortWwn The switch port WWN to which this device port is physically connected.
number The port number of this device port.
portId The port ID.
type The port type.
symbolicName The port symbolic name.
fc4Type The port fc4type.
cos The port class of service.
hardwareAddress The hardware address.
npvPhysical Indicates if this is a physical device port or a logical NPIV port.
Notes
• Connected-switch ports are connected ports (switch port to switch port and access gateway
port to switch port).
• The port is keyed by its unique WWN.
• The connected-switch ports response schema is FcPortsResponse.
End-device ports
Retrieves information about end-device ports.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the port, which is the WWN.
domainId The domain ID of the switch to which this device port is connected.
wwn The device port WWN.
deviceNodeWwn The WWN of the node of this device port.
switchPortWwn The switch port WWN to which this device port is physically connected.
number The port number of this device port.
portId The port ID.
type The port type.
symbolicName The port symbolic name.
fc4Type The port fc4type.
cos The port class of service.
hardwareAddress The hardware address.
npvPhysical Indicates if this is a physical device port or a logical NPIV port.
Notes
• End-device ports are the ports with end devices connected to them like initiators, targets, or
N_Ports from an access gateway (switch port to node port and access gateway port to node
port).
• The end-device ports response schema is EndDevicePortsReponse.
• The port is keyed by its unique WWN.
Trunks
Retrieves information about ISL trunks.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the trunk, which is the master port WWN.
switchWwn The WWN of the switch having this trunk.
masterPortWwn The WWN of the master port.
memberPortWwns The member port WWNs.
Notes
• The trunk is keyed by its master port WWN.
• The response schema is TrunksResponse.
ISL Connections
Retrieves information about inter-switch links (ISL) connections. These are connections between
switches within a fabric.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
Notes
• The response schema is IslResponse.
IFL connections
Returns information about inter-fabric links (IFL) connections (connections between fabrics in an
FCR setup).
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
key The unique identifier for the IFL, which is formed as backboneSwitchWwn;
backboneSwitchPortWwn;edgeSwitchWwn;edgeSwitchPortWwn.
edgeFabricName The name of the edge fabric.
edgeSwitchName The name of the edge switch.
edgeSwitchIPAddress The IP address of the edge switch.
edgeSwitchWwn The edge switch WWN.
edgeSwitchPortWwn The edge switch port WWN.
backboneFabricName The name of the backbone fabric.
backboneSwitchName The name of the backbone switch.
backboneSwitchIPAddress The IP address of the backbone switch.
backboneSwitchWwn The backbone switch WWN.
backboneSwitchPortWwn The backbone switch port WWN.
trunkingEnabled Indicates whether IFL link is part of a trunk.
speed The speed of the IFL link.
speedConfigured The configured speed of the IFL link.
longDistanceMode The long distance mode setting.
desiredDistance The desired distance setting.
linkCost The cost of the IFL link.
Notes
• The response schema is IflResponse.
EndDeviceConnection
Retrieves information about end-device connections (from switch to end device including those
from access gateway to end device).
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
Notes
• The response schema is EndDeviceConnectionResponse.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
Notes
• The response schema is AgConnectionsResponse.
End devices
Retrieves information about end devices. These are initiators and targets discovered during fabric
discovery.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Property Description
Property Description
Notes
• The response schema is EndDevicesResponse.
• End devices are keyed by their unique WWN.
Fabric discovery
Discovers fabrics.
POST URIs
URI Description
Request parameters
Property Description
switchIpAddress The IP address of the seed switch used for discovering the fabric.
userName The user name required for discovering the fabric.
password The password required for discovering the fabric.
fabricName The user-defined name of the fabric to be assigned.
snmpVersion The SNMP version to be used in discovering the fabric.
snmpTimeout The SNMP timeout to be used in discovering the fabric.
snmpRetries The number of SNMP retries to be used in discovering the fabric.
snmpReadCommunityString The SNMP read community string to be used in discovering the fabric
(SNMP V1 only).
snmpWriteCommunityString The SNMP write community string to be used in discovering the fabric (SNMP
V1 only).
snmpUserName The SNMP user name for discovering the fabric (SNMP V3 only).
snmpContextName The SNMP context name for discovering the fabric (SNMP V3 only).
snmpAuthorizationProtocol The SNMP authorization protocol for discovering the fabric. Refer to
AuthorizationProtocolType (SNMP V3 only).
snmpAuthorizationPassword The SNMP authorization password for discovering the fabric (SNMP V3 only).
snmpPrivacyProtocol The SNMP privacy protocol for discovering the fabric. Refer to
PrivacyProtocolType (SNMP V3 only).
snmpPrivacyPassword The SNMP privacy protocol for discovering the fabric (SNMP V3 only).
Notes
• The FC fabric that is discovered contains the IP address and WWN of the seed switch that was
used for discovery in the DiscoverFabricRequest XML payload.
• The request schema is DiscoverFabricRequest.
• The response schema is DiscoverFabricResponse.
Fabric deletion
Remove fabrics from Network Advisor.
POST URIs
URI Description
Path parameters
Name Description
Notes
• There is no request or response payload for this operation.
POST URIs
URI Description
Path parameters
Name Description
Request parameters
Property Description
Notes
• The request schema is UpdateCredentialsRequest, which is an XML payload sent with the
POST request.
Summary data
You can use the URIs in this section to retrieve summary data. They can be obtained in the context
of a resource group, fabric, switch, or port.
Depending on the scope of the context, the relevant summary data is returned. There are various
query parameters such as timeline, timescope, limit, and so on, that can be used to further filter
the summary data as shown in the following table.
TABLE 1 Query parameters for Summary URIs
Name Type Default value
Timeline (Date expressed as a long long Current time (which is set as -1)
milliseconds value) (limit of 30 days past
current time)
timescope TimeScope THIRTY_MINUTES
portscope MonitorPortType ALL
Limit (max value is 10) Integer 10
descending Boolean true
• “Status summary”
• “Asset classification summary”
• “Network object count summary”
• “Events summary”
• “Bottleneck violations summary”
• “Out-of-range violations summary”
• “Port health violations summary”
• “VM violations summary”
• “Port summaries”
• “Product summaries”
• “Traffic flow summaries”
Status summary
Retrieves status summary data for all the discovered products.
The returned summary is StatusSummary. This contains a list of entries, one for each status. Each
entry shows the number of products for that particular status.
GET URIs
URI Description
Path parameters
Name Description
Example
The following is an example of returned summary data in the JSON format, showing the following
information:
• 10 products in healthy status.
• 2 products are down.
• 11 products in marginal status.
{"summary":
{"statusCounts":
{"HEALTHY":10,
"DOWN":2,
"MARGINAL":11}},
"summaryName":"StatusSummary",
"timeLine":null,
"timeScope":null,
"limit":null,
"portScope":null,
"descending":null}
GET URIs
URI Description
Path parameters
Name Description
Example
The following is an example of returned summary data in the JSON format, showing the following
information:
• One of the classification categories is LOCATION.
• There is one Marginal Brocade 5300 switch under the classification category “MODEL.”
• There is one healthy product with the software “_main_bld06” under the classification
category “FIRMWARE_VERSION.”
{"summary":
{"classificationCounts":
{"LOCATION":
{"counts":
{"End User Premise.":
{"category":"End User Premise.",
"count":{"statusCounts":{"HEALTHY":10,"DOWN":2,"MARGINAL":11}}}},
"category":"LOCATION"},
"MODEL":
{"counts":
{"Brocade 300":
{"category":"Brocade 300",
"count":{"statusCounts":{"HEALTHY":1}}},
"Brocade 5300":
{"category":"Brocade 5300",
"count":{"statusCounts":{"MARGINAL":1}}},
"Brocade 8000":
{"category":"Brocade 8000",
"count":{"statusCounts":{"DOWN":1}}},
"Brocade DCX-4S":
{"category":"Brocade DCX-4S",
"count":{"statusCounts":{"DOWN":1}}},
"Brocade 6505":
{"category":"Brocade 6505",
"count":{"statusCounts":{"HEALTHY":2}}},
"Brocade 5100":
{"category":"Brocade 5100",
"count":{"statusCounts":{"MARGINAL":7,"HEALTHY":5}}},
"Brocade DCX 8510-4":
{"category":"Brocade DCX 8510-4",
"count":{"statusCounts":{"HEALTHY":2}}},
"Brocade 6520":
{"category":"Brocade 6520",
"count":{"statusCounts":{"MARGINAL":1}}},
"Brocade 7600":
{"category":"Brocade 7600",
"count":{"statusCounts":{"MARGINAL":1}}},
"Brocade 6510":
{"category":"Brocade 6510",
"count":{"statusCounts":{"MARGINAL":1}}}},
"category":"MODEL"},
"FIRMWARE_VERSION":
{"counts":
{"v6.2.2e":
{"category":"v6.2.2e",
"count":{"statusCounts":{"MARGINAL":1}}},
"v6.2.0a":
{"category":"v6.2.0a",
"count":{"statusCounts":{"MARGINAL":1}}},
"v7.3.0_main_bld21":
{"category":"v7.3.0_main_bld21",
"count":{"statusCounts":{"HEALTHY":4,"DOWN":1,"MARGINAL":5}}},
"v7.3.0_main_bld07":
{"category":"v7.3.0_main_bld07",
"count":{"statusCounts":{"MARGINAL":1}}},
"v7.3.0_main_bld18":
{"category":"v7.3.0_main_bld18",
"count":{"statusCounts":{"MARGINAL":1,"HEALTHY":1}}},
"v7.3.0_main_bld06":
{"category":"v7.3.0_main_bld06",
"count":{"statusCounts":{"HEALTHY":1}}},
"v7.2.1":
{"category":"v7.2.1",
"count":{"statusCounts":{"MARGINAL":1,"HEALTHY":2}}},
"v7.2.0":
{"category":"v7.2.0",
"count":{"statusCounts":{"HEALTHY":1}}},
"v6.0.0":
{"category":"v6.0.0",
"count":{"statusCounts":{"MARGINAL":1}}},
"v7.1.1a_rc1_bld04":
{"category":"v7.1.1a_rc1_bld04",
"count":{"statusCounts":{"DOWN":1}}},
"v7.3.0_main_bld11":
{"category":"v7.3.0_main_bld11",
"count":{"statusCounts":{"HEALTHY":1}}}},
"category":"FIRMWARE_VERSION"},
"CONTACT":
{"counts":
{"Field Support.":
{"category":"Field Support.",
"count":{"statusCounts":{"HEALTHY":10,"DOWN":2,"MARGINAL":11}}}},
"category":"CONTACT"}}},
"summaryName":"AssetClassificationSummary",
"timeLine":null,
"timeScope":null,
"limit":null,
"portScope":null,
"descending":null}
GET URIs
URI Description
Path parameters
Name Description
Example
The following is an example of returned summary data in the JSON format:
{"summary":
{"fabricCount":4,
"switchCount":23,
"hostCount":0,
"ipDeviceCount":1,
"ethernetFabricCount":0},
"summaryName":"NetworkObjectCountSummary",
"timeLine":null,
"timeScope":null,
"limit":null,
"portScope":null,
"descending":null}
This example shows that there are four fabrics and 23 switches in the network.
Events summary
Specifies the count of events of a particular type for a particular severity. The returned summary is
EventsSummary.
GET URIs
URI Description
Path parameters
Name Description
Example
The following is an example of returned summary data in the JSON format:
{"summary":
"eventsSeverityCounter":
{"emergencyCount":{"trapCount":0,"inmEventCount":0,"securityCount":0,"syslogCount":0},
"alertCount":{"trapCount":0,"inmEventCount":0,"securityCount":0,"syslogCount":0},
"criticalCount":{"trapCount":0,"inmEventCount":0,"securityCount":0,"syslogCount":0},
"errorCount":{"trapCount":0,"inmEventCount":96,"securityCount":0,"syslogCount":0},
"warningCount":{"trapCount":0,"inmEventCount":1,"securityCount":0,"syslogCount":0},
"noticeCount":{"trapCount":0,"inmEventCount":0,"securityCount":0,"syslogCount":0},
"infoCount":{"trapCount":0,"inmEventCount":4,"securityCount":0,"syslogCount":16},
"debugCount":{"trapCount":0,"inmEventCount":0,"securityCount":0,"syslogCount":0}}},
"summaryName":"EventsSummary",
"timeLine":null,
"timeScope":"ThirtyMinutes",
"limit":null,
"portScope":null,
"descending":null}
This example indicates that there is one INM event at the WARNING level and 16 syslog events at
the INFO level.
GET URIs
URI Description
Path parameters
Name Description
GET URIs
URI Description
Path parameters
Name Description
GET URIs
URI Description
Path parameters
Name Description
VM violations summary
Retrieves VM violations summary data.
GET URIs
URI Description
Path parameters
Name Description
Port summaries
Retrieves port summary data.
Depending on monitor and measure characteristics, there are various port summaries. The URIs in
the following table return a list of URIs for the possible port summaries in the specific context.
You can then use the returned URIs to get specific port-related summaries, such as Top N, Bottom
N, or Distribution data for a specific port measure.
GET URIs
URI Description
Path parameters
Name Description
Notes
• The response schema is SummariesResponse.
• The class name and parameters of the returned summary data are also in the response.
TABLE 3 Mapping of Top N and Bottom N port summary URIs to specific measures
Measure Type URI Units
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/traffic?timeline=<value>×cope=<value>&limit=<value
>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/traffic?timeline=<value>×cope=<val
ue>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/traffic?timeline=<value>×cope=<value>&limit=<val
ue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/crcerrors?timeline=<value>×cope=<value>&limit=<value>&portscope=
<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/crcerrors?timeline=<value>×cope=<value>&limit=<val
ue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/crcerrors?timeline=<value>×cope=<
value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/crcerrors?timeline=<value>×cope=<value>&limit=<v
alue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/linkresets?timeline=<value>×cope=<value>&limit=<value>&portscope
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/linkresets?timeline=<value>×cope=<value>&limit=<va
lue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/linkresets?timeline=<value>×cope=
<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/linkresets?timeline=<value>×cope=<value>&limit=<
value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/signallosses?timeline=<value>×cope=<value>&limit=<value>&portsco
pe=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/signallosses?timeline=<value>×cope=<value>&limit=<
value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/signallosses?timeline=<value>×cop
e=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/signallosses?timeline=<value>×cope=<value>&limit
=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/synclosses?timeline=<value>×cope=<value>&limit=<value>&portscop
e=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/synclosses?timeline=<value>×cope=<value>&limit=<v
alue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/synclosses?timeline=<value>×cope
=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/synclosses?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/linkfailures?timeline=<value>×cope=<value>&limit=<value>&portscop
e=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/linkfailures?timeline=<value>×cope=<value>&limit=<v
alue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/linkfailures?timeline=<value>×cope
=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/linkfailures?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/sequenceerrors?timeline=<value>×cope=<value>&limit=<value>&port
scope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/sequenceerrors?timeline=<value>×cope=<value>&limi
t=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/sequenceerrors?timeline=<value>×
cope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/sequenceerrors?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/invalidtransmissions?timeline=<value>×cope=<value>&limit=<value>&
portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/invalidtransmissions?timeline=<value>×cope=<value>
&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/invalidtransmissions?timeline=<value>&ti
mescope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/invalidtransmissions?timeline=<value>×cope=<valu
e>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/c3discards?timeline=<value>×cope=<value>&limit=<value>&portscop
e=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/c3discards?timeline=<value>×cope=<value>&limit=<v
alue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/c3discards?timeline=<value>×cope
=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/c3discards?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/c3discardstxto?timeline=<value>×cope=<value>&limit=<value>&ports
cope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/c3discardstxto?timeline=<value>×cope=<value>&limit
=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/c3discardstxto?timeline=<value>×c
ope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/c3discardstxto?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/c3discardsrxto?timeline=<value>×cope=<value>&limit=<value>&ports
cope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/c3discardsrxto?timeline=<value>×cope=<value>&limit
=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/c3discardsrxto?timeline=<value>×c
ope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/c3discardsrxto?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/c3discardsunreachable?timeline=<value>×cope=<value>&limit=<value
>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/c3discardsunreachable?timeline=<value>×cope=<valu
e>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/c3discardsunreachable?timeline=<value>
×cope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/c3discardsunreachable?timeline=<value>×cope=<v
alue>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/c3discardsother?timeline=<value>×cope=<value>&limit=<value>&port
scope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/c3discardsother?timeline=<value>×cope=<value>&lim
it=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/c3discardsother?timeline=<value>×
cope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/c3discardsother?timeline=<value>×cope=<value>&l
imit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/encodeerrorout?timeline=<value>×cope=<value>&limit=<value>&ports
cope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/encodeerrorout?timeline=<value>×cope=<value>&limi
t=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/encodeerrorout?timeline=<value>×c
ope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/encodeerrorout?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/sfppower?timeline=<value>×cope=<value>&limit=<value>&portscope=
<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/sfppower?timeline=<value>×cope=<value>&limit=<val
ue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/sfppower?timeline=<value>×cope=
<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/sfppower?timeline=<value>×cope=<value>&limit=<
value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/sfpvoltage?timeline=<value>×cope=<value>&limit=<value>&portscope
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/sfpvoltage?timeline=<value>×cope=<value>&limit=<v
alue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/sfpvoltage?timeline=<value>×cope
=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/sfpvoltage?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/sfpcurrent?timeline=<value>×cope=<value>&limit=<value>&portscope
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/sfpcurrent?timeline=<value>×cope=<value>&limit=<v
alue>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/sfpcurrent?timeline=<value>×cope
=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/sfpcurrent?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/sfptemperature?timeline=<value>×cope=<value>&limit=<value>&port
scope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/sfptemperature?timeline=<value>×cope=<value>&limi
t=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/sfptemperature?timeline=<value>×
cope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/sfptemperature?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/invalidorderedsets?timeline=<value>×cope=<value>&limit=<value>&p
ortscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/invalidorderedsets?timeline=<value>×cope=<value>&l
imit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/invalidorderedsets?timeline=<value>&tim
escope=<value>&limit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/invalidorderedsets?timeline=<value>×cope=<value>
&limit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/bbcreditzero?timeline=<value>×cope=<value>&limit=<value>&portsco
pe=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/bbcreditzero?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/bbcreditzero?timeline=<value>×cop
e=<value>&limit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/bbcreditzero?timeline=<value>×cope=<value>&limit
=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/truncatedframes?timeline=<value>×cope=<value>&limit=<value>&por
tscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/truncatedframes?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/truncatedframes?timeline=<value>&time
scope=<value>&limit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/truncatedframes?timeline=<value>×cope=<value>&
limit=<value>&portscope=<value>&decending=<value>
<BASE_URI>/resourcegroups/rgkey/windowsizertt?timeline=<value>×cope=<value>&limit=<value>&portsc
ope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/windowsizertt?timeline=<value>×cope=<value>&limit=
<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/windowsizertt?timeline=<value>×co
pe=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/windowsizertt?timeline=<value>×cope=<value>&lim
it=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/tcpooosegments?timeline=<value>×cope=<value>&limit=<value>&por
tscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/tcpooosegments?timeline=<value>×cope=<value>&li
mit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/tcpooosegments?timeline=<value>&time
scope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/tcpooosegments?timeline=<value>×cope=<value>&
limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/slowstartstatuserrors?timeline=<value>×cope=<value>&limit=<value>
&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/slowstartstatuserrors?timeline=<value>×cope=<value
>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/slowstartstatuserrors?timeline=<value>&t
imescope=<value>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/slowstartstatuserrors?timeline=<value>×cope=<valu
e>&limit=<value>&portscope=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionlinkresets?timeline=<value>×cope=<value
>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionlinkresets?timeline=<value>&t
imescope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionlinkresets?timeline=<value>×cope=<valu
e>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsignallosses?timeline=<value>×cope=<value>&portscope=
<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsignallosses?timeline=<value>×cope=<valu
e>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsignallosses?timeline=<value>
×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsignallosses?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsynclosses?timeline=<value>×cope=<value>&portscope=<
value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsynclosses?timeline=<value>×cope=<value
>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsynclosses?timeline=<value>
×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsynclosses?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionlinkfailures?timeline=<value>×cope=<value>&portscope=<
value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionlinkfailures?timeline=<value>×cope=<value
>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionlinkfailures?timeline=<value>
×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionlinkfailures?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsequenceerrors?timeline=<value>×cope=<value>&portscop
e=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsequenceerrors?timeline=<value>×cope=<
value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsequenceerrors?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsequenceerrors?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributioninvalidtransmissions?timeline=<value>×cope=<value>&port
scope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributioninvalidtransmissions?timeline=<value>×co
pe=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributioninvalidtransmissions?timeline
=<value>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributioninvalidtransmissions?timeline=<value>×c
ope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionc3discards?timeline=<value>×cope=<value>&portscope=<
value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionc3discards?timeline=<value>×cope=<value
>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionc3discards?timeline=<value>
×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionc3discards?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionc3discardstxto?timeline=<value>×cope=<value>&portscope
=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionc3discardstxto?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionc3discardstxto?timeline=<valu
e>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionc3discardstxto?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionc3discardsrxto?timeline=<value>×cope=<value>&portscop
e=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionc3discardsrxto?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionc3discardsrxto?timeline=<valu
e>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionc3discardsrxto?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionc3discardsunreachable?timeline=<value>×cope=<value>&
portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionc3discardsunreachable?timeline=<value>×
cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionc3discardsunreachable?timeli
ne=<value>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionc3discardsunreachable?timeline=<value>&tim
escope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionc3discardsother?timeline=<value>×cope=<value>&portsco
pe=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionc3discardsother?timeline=<value>×cope=<
value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionc3discardsother?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionc3discardsother?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionencodeerrorout?timeline=<value>×cope=<value>&portscop
e=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionencodeerrorout?timeline=<value>×cope=<
value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionencodeerrorout?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionencodeerrorout?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsfppower?timeline=<value>×cope=<value>&portscope=<va
lue>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsfppower?timeline=<value>×cope=<value>
&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsfppower?timeline=<value>&ti
mescope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsfppower?timeline=<value>×cope=<valu
e>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsfpvoltage?timeline=<value>×cope=<value>&portscope=<v
alue>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsfpvoltage?timeline=<value>×cope=<value
>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsfpvoltage?timeline=<value>&
timescope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsfpvoltage?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsfpcurrent?timeline=<value>×cope=<value>&portscope=<v
alue>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsfpcurrent?timeline=<value>×cope=<value
>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsfpcurrent?timeline=<value>&
timescope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsfpcurrent?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionsfptemperature?timeline=<value>×cope=<value>&portscop
e=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsfptemperature?timeline=<value>×cope=<
value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsfptemperature?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsfptemperature?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributioninvalidorderedsets?timeline=<value>×cope=<value>&ports
cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributioninvalidorderedsets?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributioninvalidorderedsets?timeline=<
value>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributioninvalidorderedsets?timeline=<value>×co
pe=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionbbcreditzero?timeline=<value>×cope=<value>&portscope=
<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionbbcreditzero?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionbbcreditzero?timeline=<value
>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionbbcreditzero?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributiontruncatedframes?timeline=<value>×cope=<value>&portsco
pe=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributiontruncatedframes?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributiontruncatedframes?timeline=<va
lue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributiontruncatedframes?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributiondroppedpackets?timeline=<value>×cope=<value>&portsco
pe=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributiondroppedpackets?timeline=<value>×cope=<
value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributiondroppedpackets?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributiondroppedpackets?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionlinkretransmits?timeline=<value>×cope=<value>&portscop
e=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionlinkretransmits?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionlinkretransmits?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionlinkretransmits?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributiontimeoutretransmits?timeline=<value>×cope=<value>&ports
cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributiontimeoutretransmits?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributiontimeoutretransmits?timeline=
<value>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributiontimeoutretransmits?timeline=<value>×co
pe=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionfastretransmits?timeline=<value>×cope=<value>&portscop
e=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionfastretransmits?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionfastretransmits?timeline=<val
ue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionfastretransmits?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributiondupackrecvd?timeline=<value>×cope=<value>&portscope=
<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributiondupackrecvd?timeline=<value>×cope=<val
ue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributiondupackrecvd?timeline=<value
>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributiondupackrecvd?timeline=<value>×cope=<v
alue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionwindowsizertt?timeline=<value>×cope=<value>&portscope
=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionwindowsizertt?timeline=<value>×cope=<va
lue>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionwindowsizertt?timeline=<value
>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionwindowsizertt?timeline=<value>×cope=<
value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributiontcpooosegments?timeline=<value>×cope=<value>&portsco
pe=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributiontcpooosegments?timeline=<value>×cope=
<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributiontcpooosegments?timeline=<va
lue>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributiontcpooosegments?timeline=<value>×cope
=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/distributionslowstartstatuserrors?timeline=<value>×cope=<value>&por
tscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionslowstartstatuserrors?timeline=<value>×co
pe=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionslowstartstatuserrors?timeline
=<value>×cope=<value>&portscope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionslowstartstatuserrors?timeline=<value>×
cope=<value>&portscope=<value>
Product summaries
Retrieves URIs for retrieving product summary data.
Depending on monitor and measure charateristics, there are various product summaries. The
URIs in the following table return a list of URIs for the possible product summaries in the specified
context.
You can use the returned URIs to get specific product-related summary data, such as Top N,
Bottom N, or Distribution data for a specific product measure.
GET URIs
URI Description
Path parameters
Name Description
Notes
• The response schema is SummariesResponse.
• The class name of the summary returned is also in the response.
TABLE 5 Mapping (Continued)of Top N and Bottom N product summary URIs to specific measures
Measure URI Units
<BASE_URI>/resourcegroups/rgkey/portsnotinuse?timeline=<value>×cope=<value>&limit=<value>&desce
nding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/portsnotinuse?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/portsnotinuse?timeline=<value>×co
pe=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/portsnotinuse?timeline=<value>×cope=<value>&lim
it=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/pingpktlosspercentage?timeline=<value>×cope=<value>&limit=<value
>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/pingpktlosspercentage?timeline=<value>×cope=<valu
e>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/pingpktlosspercentage?timeline=<value>
×cope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/pingpktlosspercentage?timeline=<value>×cope=<va
lue>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionsystemuptime?timeline=<value>×cope=<va
lue>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionsystemuptime?timeline=<valu
e>×cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionsystemuptime?timeline=<value>×cope=<
value>
<BASE_URI>/resourcegroups/rgkey/distributionportsnotinuse?timeline=<value>×cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionportsnotinuse?timeline=<value>×cope=<va
lue>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionportsnotinuse?timeline=<valu
e>×cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionportsnotinuse?timeline=<value>×cope=<
value>
<BASE_URI>/resourcegroups/rgkey/distributionpingpktlosspercentage?timeline=<value>×cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/distributionpingpktlosspercentage?timeline=<value>×c
ope=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/distributionpingpktlosspercentage?timelin
e=<value>×cope=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/distributionpingpktlosspercentage?timeline=<value>&time
scope=<value>
This response means that within the range 35.1 to 23.3, there are five buckets of temperature,
the first bucket representing the maximum. In addition, there is one product with the temperature
in the first bucket, two products with the temperature in third bucket, and two products with
temperature in the fourth bucket.
GET URIs
URI Description
Path parameters
Name Description
Notes
• The response schema is SummariesResponse.
TABLE 7 Mapping of the Top N and Bottom N traffic flow summary URIs to the specific measures
Measure Type URI Units
<BASE_URI>/resourcegroups/rgkey/scsiwriteframerate?timeline=<value>×cope=<value>&limit=<value>&d
escending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/scsiwriteframerate?timeline=<value>×cope=<value>&l
imit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/scsiwriteframerate?timeline=<value>&tim
escope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/scsiwriteframerate?timeline=<value>×cope=<value>
&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/scsireaddata?timeline=<value>×cope=<value>&limit=<value>&descen
ding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/scsireaddata?timeline=<value>×cope=<value>&limit=
<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/scsireaddata?timeline=<value>×co
pe=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/scsireaddata?timeline=<value>×cope=<value>&limi
t=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/scsiwritedata?timeline=<value>×cope=<value>&limit=<value>&descen
ding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/scsiwritedata?timeline=<value>×cope=<value>&limit=
<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/scsiwritedata?timeline=<value>×co
pe=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/scsiwritedata?timeline=<value>×cope=<value>&limi
t=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/scsireaddatarate?timeline=<value>×cope=<value>&limit=<value>&des
cending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/scsireaddatarate?timeline=<value>×cope=<value>&li
mit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/scsireaddatarate?timeline=<value>&time
scope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/scsireaddatarate?timeline=<value>×cope=<value>&
limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/scsiwritedatarate?timeline=<value>×cope=<value>&limit=<value>&de
scending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/scsiwritedatarate?timeline=<value>×cope=<value>&li
mit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/scsiwritedatarate?timeline=<value>&time
scope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/scsiwritedatarate?timeline=<value>×cope=<value>
&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/rxframecount?timeline=<value>×cope=<value>&limi
t=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/txframerate?timeline=<value>×cope=<value>&limit=<value>&descend
ing=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/txframerate?timeline=<value>×cope=<value>&limit=<
value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/txframerate?timeline=<value>×cope
=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/txframerate?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/rxframerate?timeline=<value>×cope=<value>&limit=<value>&descend
ing=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/rxframerate?timeline=<value>×cope=<value>&limit=<
value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/rxframerate?timeline=<value>×cop
e=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/rxframerate?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/txwordcount?timeline=<value>×cope=<value>&limit=<value>&descen
ding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/txwordcount?timeline=<value>×cope=<value>&limit=<
value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/txwordcount?timeline=<value>×cop
e=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/txwordcount?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/rxwordcount?timeline=<value>×cope=<value>&limit=<value>&descen
ding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/rxwordcount?timeline=<value>×cope=<value>&limit=<
value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/rxwordcount?timeline=<value>×cop
e=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/rxwordcount?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/txthroughput?timeline=<value>×cope=<value>&limit=<value>&descen
ding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/txthroughput?timeline=<value>×cope=<value>&limit=
<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/txthroughput?timeline=<value>×cop
e=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/txthroughput?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/rxthroughput?timeline=<value>×cope=<value>&limit=<value>&descen
ding=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/rxthroughput?timeline=<value>×cope=<value>&limit=
<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/rxthroughput?timeline=<value>×cop
e=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/rxthroughput?timeline=<value>×cope=<value>&limi
t=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/avgtxframesize?timeline=<value>×cope=<value>&limit=<value>&desc
ending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/avgtxframesize?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/avgtxframesize?timeline=<value>×c
ope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/avgtxframesize?timeline=<value>×cope=<value>&li
mit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/avgrxframesize?timeline=<value>×cope=<value>&limit=<value>&desc
ending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/avgrxframesize?timeline=<value>×cope=<value>&limit
=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/avgrxframesize?timeline=<value>×c
ope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/avgrxframesize?timeline=<value>×cope=<value>&li
mit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/generatortxframecount?timeline=<value>×cope=<value>&limit=<value
>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/generatortxframecount?timeline=<value>×cope=<valu
e>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/generatortxframecount?timeline=<value>
×cope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/generatortxframecount?timeline=<value>×cope=<va
lue>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/generatorrxframecount?timeline=<value>×cope=<value>&limit=<value
>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/generatorrxframecount?timeline=<value>×cope=<valu
e>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/generatorrxframecount?timeline=<value>
×cope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/generatorrxframecount?timeline=<value>×cope=<va
lue>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/mirroredframescount?timeline=<value>×cope=<value>&limit=<value>
&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/mirroredframescount?timeline=<value>×cope=<value
>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/mirroredframescount?timeline=<value>&t
imescope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/mirroredframescount?timeline=<value>×cope=<valu
e>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/mirroredtxframes?timeline=<value>×cope=<value>&limit=<value>&de
scending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/mirroredtxframes?timeline=<value>×cope=<value>&li
mit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/mirroredtxframes?timeline=<value>&time
scope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/mirroredtxframes?timeline=<value>×cope=<value>
&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/mirroredrxframes?timeline=<value>×cope=<value>&limit=<value>&de
scending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/mirroredrxframes?timeline=<value>×cope=<value>&li
mit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/mirroredrxframes?timeline=<value>&time
scope=<value>&limit=<value>&descending=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/mirroredrxframes?timeline=<value>×cope=<value>
&limit=<value>&descending=<value>
Events
The Events API provides GET and POST URIs for retrieving and acknowledging and
unacknowledging events.
The HTTP request header “Accept” must be specified to indicate the content type of the response
payload. For POST requests, the header “Content-type” must also be specified.
• “Event retrieval”
• “Event count”
• “Event acknowledgement”
Event retrieval
Returns events.
You can filter the events based on the properties stated in the URI.
GET URIs
URI Description
Example
Multiple filters are supported. For example, to retrieve the first 100 special trap events, use the
following URI:
http://10.24.48.103/rest/resourcegroups/All/events?startindex=0&count=100&specialEvent=true&origin=trap
Response parameters
Property Description
Property Description
operationalStatus The operational status of the product associated with the event.
firstOccurrenceSwitchTime The first occurrence switch timestamp of the event.
lastOccurrenceSwitchTime The last occurrence switch timestamp of the event.
virtualFabricId The virtual fabric ID of the switch which triggered the event.
macAddress The MAC address of the access point from which this event is received. If the
event is received from the wireless controller or any other products, this will be
empty.
Notes
• The response schema is EventsResponse.
Event count
Returns the number of events.
GET URIs
URI Description
Notes
• The response schema is CountResponse.
Event acknowledgement
Acknowledges or unacknowledges an event.
POST URIs
URI Description
Path parameters
Name Description
Pagination support
Brocade Network Advisor supports up to 10 million events. So, retrieval of events is by pages. The
URI for the next page will be returned in the Location header. For paginated collections, the
response will contain the following additional parameters besides the actual list of events:
• startIndex — The index of the first result returned in this response, relative to the starting
index of all results that would be returned if no startIndex had been requested. In general, this
will be equal to the value requested by the startIndex, or 0 if no specific startIndex was
requested.
• itemsPerPage — The number of results returned per page in this response. In general, this will
be equal to the count query parameter, but could be less if there are less number of events
than requested left to return when starting at the current startIndex.
• totalResults — The total number of items that would be returned if there were no startIndex or
count specified. This value tells the user how many total results to expect, regardless of the
pagination in use, but taking into account the current filtering options in the request.
The HTTP status code for a successful execution of a pagination request will be 206 (Partial
Content) if there are more pages to be retrieved. In addition to returning the page of results, the
HTTP response Location header will be populated with the URI for the next page of the response
for a given request. Users may use this URI to navigate to the next page of response.
Limitations
• Multiple events are not duplicated but stored in the database as a single event with the
property eventCount indicating the number of occurrences of the event and first and last
occurrence times. These events will be returned as is.
• By default, the results are paginated. The user can use the URI of the next page, returned in
the Location header, to navigate to the next page. However, if the user changes the
parameters of that returned URI of the next page, then the results of the next page may not
match up with that of the previous page.
Zoning
The Zoning API provides GET and POST requests for zone monitoring and administration.
When using this API, you must specify the HTTP request header “Accept” to indicate the content
type of the response payload. For POST requests, you must also specify the header “Content-type”
(for more information, refer to “Specifying content type”).
In addition to the Accept and Content-type headers, you must also specify the HTTP request
header “WSToken,” which contains the session token sent back in response to the login request
(for more information, refer to “Logging in and out”).
• “Zone DBs”
• “Zones”
• “Zone aliases”
• “Zone sets”
• “Zone transactions”
• “Zone transaction management”
• “Zoning object creation”
• “Zoning object deletion”
• “Zoning object updating”
• “Zone set activation”
Zone DBs
Retrieves active and defined zone database information on any specific fabric.
GET URIs
URI Description
Path parameters
Name Description
Query parameters
Name Description
active Optional The zone database of interest. The complete database can be read in one
call and additional URIs showing the containment of the zoning objects are
also supported. The URIs support retrieval of LSAN zones as well.
This parameter is optional and if not specified, both the active and defined
zone configurations are returned in a ZoneDbsResponse.
To retrieve the active configuration, set this parameter to true.
To retrieve the defined configuration, set this parameter to false.
Response parameters
Name Description
Notes
• The response schema is ZoneDbsResponse.
Zones
Returns the active and defined zones of a fabric. The query parameter “active” is optional and if
not specified, both the active and defined zones are returned in a ZonesResponse.
In order to retrieve the active zones, “active” should be set to “true”. If a value other than true is
specified, then that value will be mapped to Boolean (false) and defined zones will be returned.
Zones may also be retrieved based on ZoneType.
The query parameter type can be used to specify the ZoneType required. If not specified, then both
standard and LSAN zones are returned. If an invalid value is specified, then this will map to
ZoneType.STANDARD and standard zones will be returned.
GET URIs
URI Description
Path parameters
Name Description
Query parameters
Name Description
active Optional Zone status (active or defined). If not specified, both active and defined
zones are returned in the response (ZonesResponse).
To retrieve active zones, set this parameter to true.
To retrieve defined zones, set this parameter to false.
type Optional ZoneType. If not specified, then both standard and LSAN zones are
returned. If an invalid value is specified, standard zones
(ZoneType.STANDARD) are returned.
Response parameters
Name Description
Name Description
Notes
• The response schema is ZonesResponse.
Zone aliases
Returns the zone aliases in the given zone.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Name Description
Notes
• The response schema is ZoneAliasesResponse.
Zone sets
Returns the active and defined zone sets in the given fabric. The query parameter “active” is
optional and if not specified, both the active and defined zone sets are returned in a
ZoneSetsResponse. In order to retrieve the active zone set, “active” should be set to “true”.
GET URIs
URI Description
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/zon Returns the active and defined zone sets in the given
esets?active=<value> fabric.
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/zon Returns the details of the given zone set.
esets/zskey
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/zon Returns the zones in the given zone set.
esets/zskey/zones
Path parameters
Name Description
Response parameters
Name Description
Query parameters
Name Description
active Optional ZoneSet status (active or defined). If not specified, both active and defined
zonesets are returned in the response (ZoneSetsResponse).
To retrieve active zonesets, set this parameter to true.
To retrieve defined zonesets, set this parameter to false.
Notes
• The response schema is ZoneSetsResponse.
Zone transactions
Returns the details of a zone transaction on a specific FC fabric.
GET URIs
URI Description
Path parameters
Name Description
Response parameters
Name Description
Notes
• The response schema is ZoneTransactionResponse.
POST URIs
URI Description
Path parameters
Name Description
Request parameters
Name Description
lsanZoning Whether to carry out LSAN zoning (case-sensitive, use either true or false).
action The action to perform (START, ABORT or COMMIT). Refer to TransactionAction under
ControlZoneTransactionRequest.
Note
• You must create a request instance of type ControlZoneTransactionRequest and send it
through the POST request.
• If you are carrying out LSAN zoning, you must set the lsanZoning parameter to true. It is false
by default.
• LSAN zoning is supported only in the context of a backbone fabric.
• The Boolean properties in the input are case-sensitive. Only a value of “true” in the input
converts to a Boolean true. All other values are interpreted as Boolean false.
• The request schema is ControlZoneTransactionRequest.
POST URIs
URI Description
Path parameters
Name Description
Request parameters
Name Description
zones The zones to be created. Only name, type, aliasNames, and memberNames within the
zone are considered.
zoneAliases The zonealiases to be created. Only name and memberNames within the zonealias are
considered.
zoneSets The zonesets to be created. Only name and zoneNames within the zoneset are
considered.
edgeFabricWwns The principal WWNs of the edge fabrics to which the LSAN zones must
be propagated. This parameter is applicable to LSAN zone creation only.
Notes
• Only the following properties in the request object are considered when creating zoning
objects:
- zones: name, type, aliasNames, and memberNames.
- zoneSets: name and zoneNames.
- zoneAliases: name and memberNames.
- edgeFabricWwns: The principal WWNs of the edge fabrics to which the LSAN zones must
be propagated. This parameter is applicable for LSAN zone creation only.
NOTE
The name of the object in the input is mandatory. In the event that zoning object names or
member names contain white spaces, the spaces are removed and the operation proceeds as
usual.
GET URIs
URI Description
Path parameters
Name Description
Request parameters
Name Description
Notes
• The request schema is DeleteZoningObjectRequest.
POST URIs
URI Description
Path parameters
Name Description
Request parameters
Name Description
Notes
Only the following properties in the request object are considered for an update operation.
• zones: name, type, aliasNames and memberNames.
• zoneSets: name and zoneNames.
• zoneAliases: name and memberNames.
POST URIs
URI Description
Path parameters
Name Description
Notes
• Activation or deactivation of a zone set is only supported outside the context of a zoning
transaction.
POST URIs
URI Description
Path parameters
Name Description
Request parameters
Name Description
lsanZoning Whether this is an LSAN operation (case-sensitive, use either true or false).
zoneNamePrefix This parameter is by default NARestZone unless specified. For LSAN zoning, the prefix is
fixed as LSAN. All LSAN zone names start with LSAN_.
initiator The WWN of the initiator.
targets The WWN of the targets.
activate Whether to activate the zoneset (case-sensitive, use either true or false).
edgeFabricWwns The principal WWNs of the edge fabrics to which the LSAN zones must be propagated. This
parameter is applicable for LSAN zoning only.
Notes
• The InitiatorTargetsRequest instance must be formed and sent through the POST request.
• This URI supports single initiator to single target and single initiator to multiple target zoning.
• The initiator and targets must be WWNs.
• The active zone set name will be “NARestZoneSet.”
• In the case of single initiator – single target zoning, the zone name is
<zoneNamePrefix>_<no colon initiator WWN>_<no colon target WWN>.
• In the case of single initiator – multiple target zoning, the zone name will be
<zoneNamePrefix>_<no colon initiator WWN>.
• At least one initiator and one target in the input are mandatory.
• In the event that initiator or targets contain white spaces, they will be removed and the
operation will proceed as usual.
• You can control whether to activate the zone set using the activate property (applicable for
Standard zoning only).
• LSAN zoning is supported only in the context of a backbone fabric.
• The Boolean properties in the input are case-sensitive. Only a value of “true” in the input
converts to a Boolean true. All else is Boolean false.
• Attach means engaging an initiator with targets by activating the zone. Attach is meaningful
when the activate flag is true. Using the activate flag as false is a convenience operation to
create the zone for later attach use. When activate is false, there is no actual attach but only
that of creation. Similarly, detach means disengaging an initiator from targets by deactivating
the zone. If nothing is active, then there is nothing to detach. If a zone containing the initiator
and targets exists, it will not be deleted, but will be retained in the defined configuration for
later use.
• The request schema is InitiatorTargetsRequest.
duration (expressed in seconds) (takes precedence over long 3600 seconds (1 hour)
start and end dates)
startdate (date expressed as a long milliseconds value) long N/A
enddate (date expressed as a long milliseconds value) long N/A
granularity TimeSeriesGranularity GRANULARITY_MINIMUM
• If all the parameters (duration, start date and end date) are provided, duration takes
precedence.
• If the duration is less than or equal to 0, then it will default to 3600 seconds unless the start
and end dates are specified.
• The start and end dates are long values.
• The response schema is PerformanceDataResponse
TABLE 9 Mapping of the port-related performance data URIs to the specific measures
Measure Type URI
C3 Discards RX TO FC timeseriesc3discardsrxto
C3 Discards Unreachable FC timeseriesc3discardsunreachable
C3 Discards Other FC timeseriesc3discardsother
Encode Error Out FC timeseriesencodeerrorout
SFP Power FC timeseriessfppower
SFP Voltage FC timeseriessfpvoltage
SFP Current FC timeseriessfpcurrent
SFP Temperature FC timeseriessfptemperature
Invalid Ordered Sets FC timeseriesinvalidorderedsets
BB Credit Zero FC timeseriesbbcreditzero
Truncated Frames FC timeseriestruncatedframes
Cumulative Compression Ratio FCIP timeseriescompressionratio
Latency FCIP timeserieslatency
Dropped Packets FCIP timeseriesdroppedpackets
Link Retransmits FCIP timeserieslinkretransmits
Timeout Retransmits FCIP timeseriestimeoutretransmits
Fast Retransmits FCIP timeseriesfastretransmits
Duplicate Ack Received FCIP timeseriesdupackrecvd
Window Size RTT FCIP timeserieswindowsizertt
TCP Out Of Order FCIP timeseriestcpooosegments
SlowStart Status Errors FCIP timeseriesslowstartstatuserrors
Current Compression Ratio FCIP timeseriesrealtimecompressionratio
Limitations
• There is an imposed limit of 100 ports. The number of ports within the chosen resource group,
fabric, or switch must not exceed 100.
• For GRANULARITY_MINIMUM, the duration or the start-to-end date range cannot exceed 1
day.
• For GRANULARITY_30MIN, the duration or the start-to-end date range cannot exceed 5 days.
• For GRANULARITY_2HOUR, the duration or the start-to-end date range cannot exceed 20
days.
• For GRANULARITY_1DAY, the duration or the start-to-end date range cannot exceed 200 days.
Notes
• The port-related performance data URIs are applicable for ports only.
<BASE_URI>/resourcegroups/rgkey/timeseriesc3discards?granularity=<value>&startdate=<value>&enddate=<va
lue>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesc3discards?granularity=<value
>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesc3discards?granularity=<value>&startdate=<va
lue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesc3discardstxto?granularity=<value>&startdate=<value>&enddate=
<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesc3discardstxto?granularity=<va
lue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesc3discardstxto?granularity=<value>&startdate=
<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesc3discardsrxto?granularity=<value>&startdate=<value>&enddate
=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesc3discardsrxto?granularity=<va
lue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesc3discardsrxto?granularity=<value>&startdate=
<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesc3discardsunreachable?granularity=<value>&startdate=<value>&
enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesc3discardsunreachable?granul
arity=<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesc3discardsunreachable?granularity=<value>&st
artdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesc3discardsother?granularity=<value>&startdate=<value>&enddat
e=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesc3discardsother?granularity=<v
alue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesc3discardsother?granularity=<value>&startdate
=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesencodeerrorout?granularity=<value>&startdate=<value>&enddate
=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesencodeerrorout?granularity=<v
alue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesencodeerrorout?granularity=<value>&startdate
=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriessfppower?granularity=<value>&startdate=<value>&enddate=<val
ue>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriessfppower?granularity=<value>
&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriessfppower?granularity=<value>&startdate=<valu
e>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriessfpvoltage?granularity=<value>&startdate=<value>&enddate=<val
ue>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriessfpvoltage?granularity=<value>
&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriessfpvoltage?granularity=<value>&startdate=<val
ue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriessfpcurrent?granularity=<value>&startdate=<value>&enddate=<val
ue>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriessfpcurrent?granularity=<value>
&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriessfpcurrent?granularity=<value>&startdate=<val
ue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriessfptemperature?granularity=<value>&startdate=<value>&enddate
=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriessfptemperature?granularity=<v
alue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriessfptemperature?granularity=<value>&startdate
=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesinvalidorderedsets?granularity=<value>&startdate=<value>&endd
ate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesinvalidorderedsets?granularity=
<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesinvalidorderedsets?granularity=<value>&startda
te=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesbbcreditzero?granularity=<value>&startdate=<value>&enddate=<
value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesbbcreditzero?granularity=<valu
e>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesbbcreditzero?granularity=<value>&startdate=<v
alue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriestruncatedframes?granularity=<value>&startdate=<value>&enddat
e=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriestruncatedframes?granularity=<
value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriestruncatedframes?granularity=<value>&startdat
e=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesfastretransmits?granularity=<value>&startdate=<value>&enddate
=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesfastretransmits?granularity=<v
alue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesfastretransmits?granularity=<value>&startdate
=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesdupackrecvd?granularity=<value>&startdate=<value>&enddate=<
value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesdupackrecvd?granularity=<valu
e>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesdupackrecvd?granularity=<value>&startdate=<
value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeserieswindowsizertt?granularity=<value>&startdate=<value>&enddate=
<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeserieswindowsizertt?granularity=<val
ue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeserieswindowsizertt?granularity=<value>&startdate=<
value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriestcpooosegments?granularity=<value>&startdate=<value>&enddat
e=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriestcpooosegments?granularity=<
value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriestcpooosegments?granularity=<value>&startdat
e=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesslowstartstatuserrors?granularity=<value>&startdate=<value>&en
ddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesslowstartstatuserrors?granulari
ty=<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesslowstartstatuserrors?granularity=<value>&star
tdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesrealtimecompressionratio?granularity=<value>&startdate=<value>
&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesrealtimecompressionratio?gran
ularity=<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesrealtimecompressionratio?granularity=<value>&
startdate=<value>&enddate=<value>&duration=<value>
Limitations
• There is an imposed limit of 100 switches. The number of switches within the chosen scope
must not exceed 100.
• For GRANULARITY_MINIMUM, the duration or the start-to-end date range cannot exceed 1
day.
• For GRANULARITY_30MIN, the duration or the start-to-end date range cannot exceed 5 days.
• For GRANULARITY_2HOUR, the duration or the start-to-end date range cannot exceed 20
days.
• For GRANULARITY_1DAY, the duration or the start-to-end date range cannot exceed 200 days.
Product-related performance data URIs
The following URIs are applicable for FC switches only.
<BASE_URI>/resourcegroups/rgkey/timeseriesmemoryutilpercentage?granularity=<value>&startdate=<value>&e
nddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriesmemoryutilpercentage?granularity=<value>&start
date=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriescpuutilpercentage?granularity=<value>&startdate=<value>&endd
ate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriescpuutilpercentage?granularity=<value>&startdate
=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriestemperature?granularity=<value>&startdate=<value>&enddate=<
value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriestemperature?granularity=<value>&startdate=<val
ue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesfanspeed?granularity=<value>&startdate=<value>&enddate=<val
ue>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriesfanspeed?granularity=<value>&startdate=<value
>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesresponsetime?granularity=<value>&startdate=<value>&enddate=
<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriesresponsetime?granularity=<value>&startdate=<va
lue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriessystemuptime?granularity=<value>&startdate=<value>&enddate=
<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriessystemuptime?granularity=<value>&startdate=<v
alue>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/timeseriesportsnotinuse?granularity=<value>&startdate=<value>&enddate=
<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/timeseriesportsnotinuse?granularity=<value>&startdate=<v
alue>&enddate=<value>&duration=<value>
TABLE 11 Mapping of the traffic flow-related performance data URIs to the specific measures
Measure Type URI
Limitations
• There is an imposed limit of 100 flows. The number of flows within the chosen switch must not
exceed 100.
• For GRANULARITY_MINIMUM, the duration or the start-to-end date range cannot exceed 1
day.
• For GRANULARITY_30MIN, the duration or the start-to-end date range cannot exceed 5 days.
• For GRANULARITY_2HOUR, the duration or the start-to-end date range cannot exceed 20
days.
• For GRANULARITY_1DAY, the duration or the start-to-end date range cannot exceed 200 days.
The following URIs are applicable for traffic flows only. They are supported at the context of a
specific switch.
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsiwriteframecount?granularity=<value>&start
date=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesscsireadframerate?granularity=
<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsireadframerate?granularity=<value>&startda
te=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesscsiwriteframerate?granularity=
<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsiwriteframerate?granularity=<value>&startd
ate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesscsireaddata?granularity=<valu
e>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsireaddata?granularity=<value>&startdate=<
value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesscsiwritedata?granularity=<valu
e>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsiwritedata?granularity=<value>&startdate=<
value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesscsireaddatarate?granularity=<
value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsireaddatarate?granularity=<value>&startdat
e=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesscsiwritedatarate?granularity=<
value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesscsiwritedatarate?granularity=<value>&startdat
e=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesrxthroughput?granularity=<valu
e>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesrxthroughput?granularity=<value>&startdate=<
value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesavgtxframesize?granularity=<va
lue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesavgtxframesize?granularity=<value>&startdate=
<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesavgrxframesize?granularity=<va
lue>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesavgrxframesize?granularity=<value>&startdate=
<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesgeneratortxframecount?granula
rity=<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesgeneratortxframecount?granularity=<value>&st
artdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesgeneratorrxframecount?granula
rity=<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesgeneratorrxframecount?granularity=<value>&st
artdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesmirroredframescount?granulari
ty=<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesmirroredframescount?granularity=<value>&star
tdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesmirroredtxframes?granularity=<
value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesmirroredtxframes?granularity=<value>&startdat
e=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcfabrics/fcfkey/fcswitches/fcskey/timeseriesmirroredrxframes?granularity=
<value>&startdate=<value>&enddate=<value>&duration=<value>
<BASE_URI>/resourcegroups/rgkey/fcswitches/fcskey/timeseriesmirroredrxframes?granularity=<value>&startdat
e=<value>&enddate=<value>&duration=<value>
Login
Logs in to a Network Advisor Server REST API session.
POST URIs
URI Description
WStoken The session token to be used for all subsequent REST requests. If no request is made
for 10 minutes or more, the session expires and you must log in again.
Response parameters
Name Description
Logout
Logs out from the Network Advisor server.
POST URIs
URI Description
Notes
• The logout operation does not have a return value and thus there is no must specify the
content type.
• Successful completion of the request results in the deletion of the client session. An HTTP
status code of 204 (No Content) is returned upon success.
In this chapter
• Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
• SAN fabric discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
• Summary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
• Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
• Zoning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
• Historical performance data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
• Authentication and session management . . . . . . . . . . . . . . . . . . . . . . . . . . 175
This appendix lists the request and response schemas of the Network Advisor REST API.
Topology
ResourceGroupsResponse
<xs:simpleType name="ResourceGroupType">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL"/>
<xs:enumeration value="FC_FABRIC"/>
<xs:enumeration value="PRODUCT_GROUP"/>
<xs:enumeration value="PORT_GROUP"/>
<xs:enumeration value="USER_DEFINED"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ResourceGroup">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="type" type="tns:ResourceGroupType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResourceGroupsResponse">
<xs:sequence>
<xs:element name="resourceGroups" type="ns1:ResourceGroup" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
FcFabricsResponse
<xs:<xs:complexType name="FcFabric">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="seedSwitchWwn" type="xs:string"/>
<xs:element name="name" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="secure" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="adEnvironment" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="contact" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="location" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="description" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="principalSwitchWwn" type="xs:string"/>
<xs:element name="fabricName" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="virtualFabricId" type="xs:short" nillable="true" minOccurs="0"/>
<xs:element name="seedSwitchIpAddress" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:<xs:complexType name="FcFabricsResponse">
<xs:sequence>
<xs:element name="fcFabrics" type="ns1:FcFabric" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
FcSwitchesResponse
<xs:complexType name="FcSwitch">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="type" type="xs:short"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="wwn" type="xs:string"/>
<xs:element name="virtualFabricId" type="xs:short" nillable="true" minOccurs="0"/>
<xs:element name="domainId" type="xs:short"/>
<xs:element name="baseSwitch" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="role" type="tns:RoleType" nillable="true" minOccurs="0"/>
<xs:element name="fcsRole" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="adCapable" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="operationalStatus" type="tns:OperStatusType" nillable="true"
minOccurs="0"/>
<xs:element name="state" type="tns:StateType" nillable="true" minOccurs="0"/>
<xs:element name="statusReason" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="lfEnabled" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="defaultLogicalSwitch" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="fmsMode" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="dynamicLoadSharingCapable" type="xs:boolean" nillable="true"
minOccurs="0"/>
<xs:element name="portBasedRoutingPresent" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="inOrderDeliveryCapable" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="persistentDidEnabled" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="autoSnmpEnabled" type="xs:boolean" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="RoleType">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="PRINCIPAL"/>
<xs:enumeration value="SUBORDINATE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OperStatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="HEALTHY"/>
<xs:enumeration value="DOWN"/>
<xs:enumeration value="NOT_REACHABLE"/>
<xs:enumeration value="MARGINAL"/>
<xs:enumeration value="CRITICAL"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StateType">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="ONLINE"/>
<xs:enumeration value="OFFLINE"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="FcSwitchesResponse">
<xs:sequence>
<xs:element name="fcSwitches" type="ns1:FcSwitch" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
PhysicalSwitchesResponse
<xs:complexType name="PhysicalSwitch">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="wwn" type="xs:string"/>
<xs:element name="ipAddress" type="xs:string"/>
<xs:element name="userId" type="xs:string"/>
<xs:element name="firmwareVersion" type="xs:string"/>
<xs:element name="vendor" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="supplierSerialNumber" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="partNumber" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="modelNumber" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="manufacturer" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="switchSerialNumber" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="vendorVersion" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="vendorPartNumber" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="snmpInformsEnabled" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="contact" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="location" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="description" type="xs:string" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PhysicalSwitchesResponse">
<xs:sequence>
<xs:element name="physicalSwitches" type="ns1:PhysicalSwitch" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
AccessGatewaysResponse
<xs:complexType name="AccessGateway">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="wwn" type="xs:string"/>
<xs:element name="operationalStatus" type="tns:OperStatusType"/>
<xs:element name="state" type="tns:StateType"/>
<xs:element name="statusReason" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="firmwareVersion" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AccessGatewaysResponse">
<xs:sequence>
<xs:element name="accessGateways" type="ns1:AccessGateway" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
FcPortsResponse
<xs:complexType name="FcPort">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="wwn" type="xs:string"/>
<xs:element name="name" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="slotNumber" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="portNumber" type="xs:short"/>
<xs:element name="userPortNumber" type="xs:short"/>
<xs:element name="portId" type="xs:string"/>
<xs:element name="portIndex" type="xs:short"/>
<xs:element name="areaId" type="xs:short"/>
<xs:element name="type" type="tns:PortType"/>
<xs:element name="status" type="tns:PortStatusType"/>
<xs:element name="statusMessage" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="lockedPortType" type="tns:PortType" nillable="true" minOccurs="0"/>
<xs:element name="speed" type="xs:string"/>
<xs:element name="speedsSupported" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="maxPortSpeed" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="desiredCredits" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="bufferAllocated" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="estimatedDistance" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="actualDistance" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="longDistanceSetting" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="remoteNodeWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="remotePortWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="licensed" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="swapped" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="trunked" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="trunkMaster" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="persistentlyDisabled" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="ficonSupported" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="blocked" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="prohibitPortNumbers" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="prohibitPortCount" type="xs:short" nillable="true" minOccurs="0"/>
<xs:element name="npivCapable" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:simpleType name="PortType">
<xs:restriction base="xs:string">
<xs:enumeration value="U_PORT"/>
<xs:enumeration value="E_PORT"/>
<xs:enumeration value="VE_PORT"/>
<xs:enumeration value="VEX_PORT"/>
<xs:enumeration value="EX_PORT"/>
<xs:enumeration value="F_PORT"/>
<xs:enumeration value="G_PORT"/>
<xs:enumeration value="L_PORT"/>
<xs:enumeration value="LB_PORT"/>
<xs:enumeration value="N_PORT"/>
<xs:enumeration value="N"/>
<xs:enumeration value="NL_PORT"/>
<xs:enumeration value="NL"/>
<xs:enumeration value="INITIATOR"/>
<xs:enumeration value="TARGET"/>
<xs:enumeration value="INITIATOR_TARGET"/>
<xs:enumeration value="INITIATOR_OR_TARGET"/>
<xs:enumeration value="GIGE_PORT"/>
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="UNKNOWN_PORT"/>
<xs:enumeration value="LOOPBACK"/>
<xs:enumeration value="FL_PORT"/>
<xs:enumeration value="GX_PORT"/>
<xs:enumeration value="FX_PORT"/>
<xs:enumeration value="FCOE_HOST_PORT"/>
<xs:enumeration value="TE_PORT"/>
<xs:enumeration value="ETHER_PORT"/>
<xs:enumeration value="VIRTUAL_FCOE_PORT"/>
<xs:enumeration value="CNA_PORT"/>
<xs:enumeration value="PHYSICAL_NIC_PORT"/>
<xs:enumeration value="IP_DEVICE_PORT"/>
<xs:enumeration value="IP_STORAGE_PORT"/>
<xs:enumeration value="SAN_STORAGE_PORT"/>
<xs:enumeration value="L2_DUMMY_PORT"/>
<xs:enumeration value="VM_FC_HBA_PORT"/>
<xs:enumeration value="D_PORT"/>
<xs:enumeration value="FE_PORT"/>
<xs:enumeration value="NIC_PORT"/>
<xs:enumeration value="SIM_PORT"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PortStatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="ONLINE"/>
<xs:enumeration value="IN_SYNC"/>
<xs:enumeration value="NO_SYNC"/>
<xs:enumeration value="NO_MODULE"/>
<xs:enumeration value="NO_LIGHT"/>
<xs:enumeration value="ENABLED"/>
<xs:enumeration value="DISABLED"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StateType">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="ONLINE"/>
<xs:enumeration value="OFFLINE"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="FcPortsResponse">
<xs:complexContent>
<xs:extension base="ns2:PaginatedResponse">
<xs:sequence>
<xs:element name="fcPorts" type="ns1:FcPort" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GigePort">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="portNumber" type="xs:int"/>
<xs:element name="slotNumber" type="xs:int"/>
<xs:element name="enabled" type="xs:boolean" minOccurs="0"/>
<xs:element name="speed" type="xs:long" nillable="true" minOccurs="0"/>
<xs:element name="maxSpeed" type="xs:long" nillable="true" minOccurs="0"/>
<xs:element name="macAddress" type="xs:string"/>
<xs:element name="portName" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="operationalStatus" type="tns:PortStatusType"/>
<xs:element name="ledState" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="speedLedState" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="portType" type="xs:string"/>
<xs:element name="persistentlyDisabled" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="remoteMacAddress" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="userPortNumber" type="xs:short"/>
<xs:element name="portIndex" type="xs:short"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GigePortsResponse">
<xs:sequence>
<xs:element name="gigePorts" type="ns1:GigePort" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
EndDevicePortsResponse
<xs:complexType name="EndDevicePort">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="domainId" type="xs:int"/>
<xs:element name="wwn" type="xs:string"/>
<xs:element name="deviceNodeWwn" type="xs:string"/>
<xs:element name="switchPortWwn" type="xs:string" minOccurs="0"/>
<xs:element name="number" type="xs:short"/>
<xs:element name="portId" type="xs:string"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="symbolicName" type="xs:string" minOccurs="0"/>
<xs:element name="fc4Type" type="xs:string" minOccurs="0"/>
<xs:element name="cos" type="xs:string" minOccurs="0"/>
<xs:element name="hardwareAddress" type="xs:string" minOccurs="0"/>
<xs:element name="npvPhysical" type="xs:boolean" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EndDevicePortsResponse">
<xs:complexContent>
<xs:extension base="ns2:PaginatedResponse">
<xs:sequence>
<xs:element name="endDevicePorts" type="ns1:EndDevicePort" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
TrunksResponse
<xs:complexType name="Trunk">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="switchWwn" type="xs:string"/>
<xs:element name="masterPortWwn" type="xs:string"/>
<xs:element name="memberPortWwns" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TrunksResponse">
<xs:sequence>
<xs:element name="trunks" type="ns1:Trunk" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
IslsResponse
<xs:complexType name="Isl">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="fabricWwn" type="xs:string"/>
<xs:element name="sourceSwitchWwn" type="xs:string"/>
<xs:element name="sourcePortWwn" type="xs:string"/>
<xs:element name="destSwitchWwn" type="xs:string"/>
<xs:element name="destSwitchPortWwn" type="xs:string"/>
<xs:element name="cost" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="trunked" type="xs:boolean" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IslsResponse">
<xs:sequence>
<xs:element name="isls" type="ns1:Isl" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
IflsResponse
<xs:complexType name="Ifl">
<xs:complexContent>
<xs:extension base="ifl">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="edgeFabricName" type="xs:string"/>
<xs:element name="edgeSwitchName" type="xs:string"/>
<xs:element name="edgeSwitchIPAddress" type="xs:string"/>
<xs:element name="edgeSwitchWwn" type="xs:string"/>
<xs:element name="edgeSwitchPortWwn" type="xs:string"/>
<xs:element name="backboneFabricName" type="xs:string"/>
<xs:element name="backboneSwitchName" type="xs:string"/>
<xs:element name="backboneSwitchIPAddress" type="xs:string"/>
<xs:element name="backboneSwitchWwn" type="xs:string"/>
<xs:element name="backboneSwitchPortWwn" type="xs:string"/>
<xs:element name="trunkingEnabled" type="xs:boolean" nillable="true"/>
<xs:element name="speed" type="xs:int" nillable="true"/>
<xs:element name="speedConfigured" type="xs:int" nillable="true"/>
<xs:element name="longDistanceMode" type="xs:int" nillable="true"/>
<xs:element name="desiredDistance" type="xs:int" nillable="true"/>
<xs:element name="linkCost" type="xs:int" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IflsResponse">
<xs:sequence>
<xs:element name="ifls" type="ns1:Ifl" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
EndDeviceConnectionsResponse
<xs:complexType name="EndDeviceConnection">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="fabricWwn" type="xs:string"/>
<xs:element name="deviceWwn" type="xs:string"/>
<xs:element name="devicePortWwn" type="xs:string"/>
<xs:element name="switchWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="switchPortWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="agWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="agPortWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="logical" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EndDeviceConnectionsResponse">
<xs:complexContent>
<xs:extension base="ns2:PaginatedResponse">
<xs:sequence>
<xs:element name="endDeviceConnections" type="ns1:EndDeviceConnection" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
AgConnectionsResponse
<xs:complexType name="AgConnection">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="sourceSwitchWwn" type="xs:string"/>
<xs:element name="sourcePortWwn" type="xs:string"/>
<xs:element name="sourceUserPortNumber" type="xs:short"/>
<xs:element name="sourcePortType" type="tns:PortType"/>
<xs:element name="destinationSwitchWwn" type="xs:string"/>
<xs:element name="destinationPortWwn" type="xs:string"/>
<xs:element name="destinationUserPortNumber" type="xs:short"/>
<xs:element name="destinationPortType" type="tns:PortType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AgConnectionsResponse">
<xs:sequence>
<xs:element name="agConnections" type="ns1:AgConnection" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
EndDevicesResponse
<xs:complexType name="EndDevice">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="wwn" type="xs:string"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="deviceType" type="tns:DeviceType"/>
<xs:element name="symbolicName" type="xs:string" minOccurs="0"/>
<xs:element name="fdmiHostName" type="xs:string" minOccurs="0"/>
<xs:element name="vendor" type="xs:string" minOccurs="0"/>
<xs:element name="capability" type="xs:string" minOccurs="0"/>
<xs:element name="proxyDevice" type="xs:boolean" minOccurs="0"/>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="ipAddress" type="xs:string" minOccurs="0"/>
<xs:element name="contact" type="xs:string" minOccurs="0"/>
<xs:element name="location" type="xs:string" minOccurs="0"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:element name="fabricWwn" type="xs:string" minOccurs="0"/>
<xs:element name="fdmiSerialNumber" type="xs:string" minOccurs="0"/>
<xs:element name="fdmiFirmwareVersion" type="xs:string" minOccurs="0"/>
<xs:element name="fdmiDriverVersion" type="xs:string" minOccurs="0"/>
<xs:element name="fdmiManufacturer" type="xs:string" minOccurs="0"/>
<xs:element name="fdmiModel" type="xs:string" minOccurs="0"/>
<xs:simpleType name="DeviceType">
<xs:restriction base="xs:string">
<xs:enumeration value="PHYSICAL"/>
<xs:enumeration value="VIRTUAL"/>
<xs:enumeration value="NPIV"/>
<xs:enumeration value="ISCSI"/>
<xs:enumeration value="PHYSICAL_VIRTUAL"/>
<xs:enumeration value="UNKNOWN"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="EndDevicesResponse">
<xs:complexContent>
<xs:extension base="ns2:PaginatedResponse">
<xs:sequence>
<xs:element name="endDevices" type="ns1:EndDevice" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="SnmpVersionType">
<xs:restriction base="xs:string">
<xs:enumeration value="V1"/>
<xs:enumeration value="V3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AuthorizationProtocolType">
<xs:restriction base="xs:int">
<xs:enumeration value="HMAC_MDS"/>
<xs:enumeration value="HMAC_SHA"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PrivacyProtocolType">
<xs:restriction base="xs:int">
<xs:enumeration value="CBC_DES"/>
<xs:enumeration value="CFB_AES_128"/>
</xs:restriction>
</xs:simpleType>
DiscoverFabricResponse
<xs:complexType name="DiscoverFabricResponse">
<xs:sequence>
<xs:element name="virtualFabricIds" type="xs:int" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
UpdateCredentialsRequest
<xs:complexType name="UpdateCredentialsRequest">
<xs:sequence>
<xs:element name="userName" type="xs:string" default="admin" minOccurs="0"/>
<xs:element name="password" type="xs:string" default="password" minOccurs="0"/>
<xs:element name="snmpVersion" type="ns1:SnmpVersionType" nillable="true" default="v3"
minOccurs="0"/>
<xs:element name="snmpTimeout" type="xs:int" default="5" minOccurs="0"/>
<xs:element name="snmpRetries" type="xs:int" default="3" minOccurs="0"/>
<xs:element name="snmpReadCommunityString" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="snmpWriteCommunityString" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="snmpUserName" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="snmpContextName" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="snmpAuthorizationProtocol" type="ns1:AuthorizationProtocolType"
nillable="true" minOccurs="0"/>
<xs:element name="snmpAuthorizationPassword" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="snmpPrivacyProtocol" type="ns1:PrivacyProtocolType" nillable="true"
minOccurs="0"/>
<xs:element name="snmpPrivacyPassword" type="xs:string" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SnmpVersionType">
<xs:restriction base="xs:string">
<xs:enumeration value="V1"/>
<xs:enumeration value="V3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AuthorizationProtocolType">
<xs:restriction base="xs:int">
<xs:enumeration value="HMAC_MDS"/>
<xs:enumeration value="HMAC_SHA"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PrivacyProtocolType">
<xs:restriction base="xs:int">
<xs:enumeration value="CBC_DES"/>
<xs:enumeration value="CFB_AES_128"/>
</xs:restriction>
</xs:simpleType>
FlowDefinitionsResponse
<xs:complexType name="FlowDefinitionsResponse">
<xs:sequence>
<xs:element name="flowDefinitions" type="ns1:FlowDefinition" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FlowDefinition">
<xs:sequence>
<xs:element name="key" type="xs:string"/> '
<xs:element name="name" type="xs:string"/>
<xs:element name="switchWwn" type="xs:string"/>
<xs:element name="srcDevicePorts" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="destDevicePorts" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="srcSwitchPort" type="xs:string"/>
<xs:element name="destSwitchPort" type="xs:string"/>
<xs:element name="bidirectional" type="xs:boolean" default="false"/>
<xs:element name="srcFabricId" type="xs:string" minOccurs="0"/>
<xs:element name="destFabricId" type="xs:string" minOccurs="0"/>
<xs:element name="lunIds" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="optionType" type="tns:FlowOptionType" default="INACTIVE"/>
<xs:element name="scsicmd" type="xs:string" minOccurs="0"/>
<xs:element name="frameOffset" type="xs:string" minOccurs="0"/>
<xs:element name="frameSize" type="xs:int" minOccurs="0"/>
<xs:element name="framePattern" type="xs:string" minOccurs="0"/>
<xs:element name="monitorFeatureState" type="tns:FlowFeatureState" default="DESELECTED"
minOccurs="0"/>
<xs:element name="generatorFeatureState" type="tns:FlowFeatureState" default="DESELECTED"
minOccurs="0"/>
<xs:element name="mirrorFeatureState" type="tns:FlowFeatureState" default="DESELECTED"
minOccurs="0"/>
<xs:element name="preDefined" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="mirrorPort" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:simpleType name="FlowOptionType">
<xs:restriction base="xs:string">
<xs:enumeration value="INACTIVE"/> ' flow definition not activated.
<xs:enumeration value="NO_CONFIG"/> ' Configuration not persisted on reboots
<xs:enumeration value="NO_ZONE_CHECK"/> ' Ignore zones in case of generator flow
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FlowFeatureState">
<xs:restriction base="xs:string">
<xs:enumeration value="DESELECTED"/>
<xs:enumeration value="DEACTIVATED"/>
<xs:enumeration value="ACTIVATED"/>
</xs:restriction>
</xs:simpleType>
FlowsResponse
<xs:complexType name="FlowsResponse">
<xs:sequence>
<xs:element name="flows" type="ns1:Flow" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Flow">
<xs:sequence>
<xs:element name="key" type="xs:string"/> ' the format is fldbid-<database id>
<xs:element name="flowDefinitionName" type="xs:string"/>
<xs:element name="featureType" type="tns:FlowFeatureType" default="MONITOR"/>
<xs:element name="srcDevicePorts" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="destDevicePorts" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="srcSwitchPort" type="xs:string"/>
<xs:element name="destSwitchPort" type="xs:string"/>
<xs:element name="bidirectional" type="xs:boolean" default="false"/>
<xs:element name="sfid" type="xs:string" minOccurs="0"/>
<xs:element name="dfid" type="xs:string" minOccurs="0"/>
<xs:element name="lunIds" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="frameSize" type="xs:int" minOccurs="0"/>
<xs:element name="framePattern" type="xs:string" minOccurs="0"/>
<xs:element name="subFlowMd5hash" type="xs:string" minOccurs="0"/>
<xs:element name="mirrorPort" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="FlowFeatureType">
<xs:restriction base="xs:string">
<xs:enumeration value="MONITOR"/>
<xs:enumeration value="GENERATOR"/>
<xs:enumeration value="MIRROR"/>
</xs:restriction>
</xs:simpleType>
Summary data
SummaryResponse
<xs:complexType name="SummaryResponse">
<xs:sequence>
<xs:element name="summary" type="xs:anyType"/>
<xs:element name="summaryName" type="xs:string"/>
<xs:element name="timeLine" type="xs:long" nillable="true" minOccurs="0"/>
<xs:element name="timeScope" type="ns1:TimeScope" nillable="true" minOccurs="0"/>
<xs:element name="limit" type="xs:short" nillable="true" minOccurs="0"/>
<xs:element name="portScope" type="ns1:MonitorPortType" nillable="true" minOccurs="0"/>
<xs:element name="descending" type="xs:boolean" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="MonitorPortType">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL"/>
<xs:enumeration value="ISL"/>
<xs:enumeration value="HOST"/>
<xs:enumeration value="STORAGE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TimeScope">
<xs:restriction base="xs:string">
<xs:enumeration value="THIRTY_MINUTES"/>
<xs:enumeration value="ONE_HOUR"/>
<xs:enumeration value="SIX_HOURS"/>
<xs:enumeration value="TWELVE_HOURS"/>
<xs:enumeration value="ONE_DAY"/>
<xs:enumeration value="THREE_DAYS"/>
<xs:enumeration value="ONE_WEEK"/>
<xs:enumeration value="ONE_MONTH"/>
</xs:restriction>
</xs:simpleType>
StatusSummary
<xs:complexType name="StatusSummary">
<xs:sequence>
<xs:element name="statusCounts" type="tns:RESTAdaptedStatusMap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAdaptedStatusMap">
<xs:sequence>
<xs:element name="entryList" type="tns:RESTStatusMapEntry" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTStatusMapEntry">
<xs:sequence>
<xs:element name="key" type="tns:Status"/>
<xs:element name="value" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Status">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="MARGINAL"/>
<xs:enumeration value="DOWN"/>
<xs:enumeration value="HEALTHY"/>
<xs:enumeration value="REACHABLE"/>
<xs:enumeration value="UNREACHABLE"/>
<xs:enumeration value="PARTIALLY_REACHABLE"/>
<xs:enumeration value="UNHEALTHY"/>
</xs:restriction>
</xs:simpleType>
AssetClassificationSummary
<xs:complexType name="AssetClassificationSummary">
<xs:sequence>
<xs:element name="classificationCounts"
type="tns:RESTAdaptedAssetClassificationContainerMap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAdaptedAssetClassificationContainerMap">
<xs:sequence>
<xs:element name="entryList" type="tns:RESTAssetClassificationContainerMapEntry"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAssetClassificationContainerMapEntry">
<xs:sequence>
<xs:element name="key" type="tns:ClassificationCategory"/>
<xs:element name="value" type="tns:AssetClassification"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ClassificationCategory">
<xs:restriction base="xs:string">
<xs:enumeration value="CLASS"/>
<xs:enumeration value="FIRMWARE_VERSION"/>
<xs:enumeration value="MODEL"/>
<xs:enumeration value="DEVICE_TYPE"/>
<xs:enumeration value="BUILD_LABEL"/>
<xs:enumeration value="LOCATION"/>
<xs:enumeration value="CONTACT"/>
<xs:enumeration value="DRIVER"/>
<xs:enumeration value="BIOS"/>
<xs:enumeration value="OS_TYPE"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AssetClassification">
<xs:sequence>
<xs:element name="counts" type="tns:RESTAdaptedAssetClassificationMap"/>
<xs:element name="category" type="tns:ClassificationCategory"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAdaptedAssetClassificationMap">
<xs:sequence>
<xs:element name="entryList" type="tns:RESTAssetClassificationMapEntry"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAssetClassificationMapEntry">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="value" type="tns:AssetClassificationCount"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AssetClassificationCount">
<xs:sequence>
<xs:element name="category" type="xs:string"/>
<xs:element name="count" type="tns:StatusSummary"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StatusSummary">
<xs:sequence>
<xs:element name="statusCounts" type="tns:RESTAdaptedStatusMap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAdaptedStatusMap">
<xs:sequence>
<xs:element name="entryList" type="tns:RESTStatusMapEntry" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTStatusMapEntry">
<xs:sequence>
<xs:element name="key" type="tns:Status"/>
<xs:element name="value" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Status">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="MARGINAL"/>
<xs:enumeration value="DOWN"/>
<xs:enumeration value="HEALTHY"/>
<xs:enumeration value="REACHABLE"/>
<xs:enumeration value="UNREACHABLE"/>
<xs:enumeration value="PARTIALLY_REACHABLE"/>
<xs:enumeration value="UNHEALTHY"/>
</xs:restriction>
</xs:simpleType>
NetworkObjectCountSummary
<xs:complexType name=" NetworkObjectCountSummary ">
<xs:sequence>
<xs:element name="fcFabricCount" type="xs:int"/>
<xs:element name="fcSwitchCount" type="xs:int"/>
<xs:element name="hostCount" type="xs:int"/>
<xs:element name="ethernetSwitchCount" type="xs:int"/>
<xs:element name="ethernetFabricCount" type="xs:int"/>
</xs:sequence>
</xs:complexType>
EventsSummary
<xs:complexType name="EventsSummary">
<xs:sequence>
<xs:element name="eventsSeverityCounter" type="tns:EventsSeverityCounter"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EventsSeverityCounter">
<xs:sequence>
<xs:element name="emergencyCount" type="tns:EventsTypeCounter"/>
<xs:element name="alertCount" type="tns:EventsTypeCounter"/>
<xs:element name="criticalCount" type="tns:EventsTypeCounter"/>
<xs:element name="errorCount" type="tns:EventsTypeCounter"/>
<xs:element name="warningCount" type="tns:EventsTypeCounter"/>
<xs:element name="noticeCount" type="tns:EventsTypeCounter"/>
<xs:element name="infoCount" type="tns:EventsTypeCounter"/>
<xs:element name="debugCount" type="tns:EventsTypeCounter"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EventsTypeCounter">
<xs:sequence>
<xs:element name="trapCount" type="xs:int"/>
<xs:element name="inmEventCount" type="xs:int"/>
<xs:element name="securityCount" type="xs:int"/>
<xs:element name="syslogCount" type="xs:int"/>
</xs:sequence>
</xs:complexType>
BottleneckViolationsSummary
<xs:complexType name="BottleneckViolationsSummary">
<xs:sequence>
<xs:element name="bottleneckViolationsCounters"
type="tns:RESTAdaptedMapsBottleneckViolationsMap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAdaptedMapsBottleneckViolationsMap">
<xs:sequence>
<xs:element name="entryList" type="tns:RESTMapsBottleneckViolationsMapEntry"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTMapsBottleneckViolationsMapEntry">
<xs:sequence>
<xs:element name="key" type="tns:PortCategory"/>
<xs:element name="value" type="tns:BottleneckViolationsCounter" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BottleneckViolationsCounter">
<xs:sequence>
<xs:element name="violationsPort" type="tns:ViolationsPort"/>
<xs:element name="bottleneckViolationsCount" type="xs:int"/>
<xs:element name="bottleneckLatencyCount" type="xs:int"/>
<xs:element name="bottleneckCongestionCount" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PortCategory">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL"/>
<xs:enumeration value="FC_SWITH_PORT_ISL"/>
<xs:enumeration value="FC_SWITH_PORT_HOST"/>
<xs:enumeration value="FC_SWITH_PORT_STORAGE"/>
<xs:enumeration value="FC_DEVICE_HOST"/>
<xs:enumeration value="FC_DEVICE_STORAGE"/>
<xs:enumeration value="IPPORT"/>
<xs:enumeration value="FC_SWITH_PORT_UNOCCUPIED"/>
<xs:enumeration value="UNKNOWN"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ViolationsPort">
<xs:sequence>
<xs:element name="portWwn" type="xs:string"/>
</xs:sequence>
</xs:complexType>
OutOfRangeViolationsSummary
<xs:complexType name="OutOfRangeViolationsSummary">
<xs:sequence>
<xs:element name="outOfRangeViolationsCounters" type="tns:OutOfRangeViolationsCounter"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OutOfRangeViolationsCounter">
<xs:sequence>
<xs:element name="category" type="tns:ViolationsCategory"/>
<xs:element name="violationsCount" type="xs:int" default="0"/>
<xs:element name="networkObjectCount" type="xs:int" default="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ViolationsCategory">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="PORT_HEALTH"/>
<xs:enumeration value="TRAF_PERF"/>
<xs:enumeration value="FCIP_HEALTH"/>
<xs:enumeration value="FABRIC_HEALTH"/>
<xs:enumeration value="SW_RESOURCES"/>
<xs:enumeration value="SW_POLICY_STATUS"/>
<xs:enumeration value="FRU_HEALTH"/>
<xs:enumeration value="SEC_VIOLATIONS"/>
<xs:enumeration value="VM_VIOLATIONS"/>
</xs:restriction>
</xs:simpleType>
PortHealthViolationsSummary
<xs:complexType name="PortHealthViolationsSummary">
<xs:sequence>
<xs:element name="portHealthViolationsCounters"
type="tns:RESTAdaptedMapsPortHealthViolationsMap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTAdaptedMapsPortHealthViolationsMap">
<xs:sequence>
<xs:element name="entryList" type="tns:RESTMapsPortHealthViolationsMapEntry"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RESTMapsPortHealthViolationsMapEntry">
<xs:sequence>
<xs:element name="key" type="tns:PortCategory"/>
<xs:element name="value" type="tns:PortHealthViolationsCounter" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PortHealthViolationsCounter">
<xs:sequence>
<xs:element name="violationsPort" type="tns:ViolationsPort"/>
<xs:element name="crcErrorsCount" type="xs:int" default="0"/>
<xs:element name="invalidTxWordsCount" type="xs:int" default="0"/>
<xs:element name="lossOfSyncCount" type="xs:int" default="0"/>
<xs:element name="linkFailureCount" type="xs:int" default="0"/>
<xs:element name="lossOfSignalsCount" type="xs:int" default="0"/>
<xs:element name="protocolErrorsCount" type="xs:int" default="0"/>
<xs:element name="linkResetCount" type="xs:int" default="0"/>
<xs:element name="c3TimeoutsCount" type="xs:int" default="0"/>
<xs:element name="stateChangesCount" type="xs:int" default="0"/>
<xs:element name="sfpCurrentCount" type="xs:int" default="0"/>
<xs:element name="sfpRxPowerCount" type="xs:int" default="0"/>
<xs:element name="sfpTxPowerCount" type="xs:int" default="0"/>
<xs:element name="sfpVoltageCount" type="xs:int" default="0"/>
<xs:element name="sfpTemperatureCount" type="xs:int" default="0"/>
<xs:element name="sfpPowerOnHoursCount" type="xs:int" default="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ViolationsPort">
<xs:sequence>
<xs:element name="portWwn" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PortCategory">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL"/>
<xs:enumeration value="FC_SWITH_PORT_ISL"/>
<xs:enumeration value="FC_SWITH_PORT_HOST"/>
<xs:enumeration value="FC_SWITH_PORT_STORAGE"/>
<xs:enumeration value="FC_DEVICE_HOST"/>
<xs:enumeration value="FC_DEVICE_STORAGE"/>
<xs:enumeration value="IPPORT"/>
<xs:enumeration value="FC_SWITH_PORT_UNOCCUPIED"/>
<xs:enumeration value="UNKNOWN"/>
</xs:restriction>
</xs:simpleType>
VmViolationsSummary
<xs:complexType name="VmViolationsSummary">
<xs:sequence>
<xs:complexType name="VmViolationsCounter">
<xs:sequence>
<xs:element name="violationsVm" type="tns:ViolationsVm"/>
<xs:element name="usageViolationsCount" type="xs:int"/>
<xs:element name="resetViolationsCount" type="xs:int"/>
<xs:element name="abortViolationsCount" type="xs:int"/>
<xs:element name="latencyViolationsCount" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ViolationsVm">
<xs:sequence>
<xs:element name="hostName" type="xs:string" default=""/>
<xs:element name="hostIpAddress" type="xs:string" default=""/>
<xs:element name="vmIpAddress" type="xs:string" default=""/>
<xs:element name="vmName" type="xs:string" default=""/>
</xs:sequence>
</xs:complexType>
SummariesResponse
<xs:complexType name="SummariesResponse">
<xs:sequence>
<xs:element name="summaries" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
PortsMonitorSummaryData
<xs:complexType name="PortsMonitorSummaryData">
<xs:sequence>
<xs:element name="summaryData" type="tns:PortPerformanceData" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PortPerformanceData">
<xs:sequence>
<xs:element name="targetKey" type="xs:string"/>
<xs:element name="targetType" type="tns:TargetType"/>
<xs:element name="direction" type="tns:PortDirectionType" default="-1" minOccurs="0"/>
<xs:element name="inValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="outValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="inSumValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="outSumValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="inMinValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="inMaxValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="outMinValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="outMaxValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="value" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="sumValue" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="value1" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="sumValue1" type="xs:double" nillable="true" minOccurs="0"/>
<xs:element name="value2" type="xs:double" nillable="true" minOccurs="0"/>
<xs:simpleType name="PortDirectionType">
<xs:restriction base="xs:string">
<xs:enumeration value="BOTH"/>
<xs:enumeration value="NONE"/>
<xs:enumeration value="RX"/>
<xs:enumeration value="TX"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TargetType">
<xs:restriction base="xs:string">
<xs:enumeration value="FC_SWITCH"/>
<xs:enumeration value="FC_PORT"/>
<xs:enumeration value="GIGE_PORT"/>
<xs:enumeration value="HBA_PORT"/>
<xs:enumeration value="FLOW"/>
</xs:restriction>
</xs:simpleType>
MonitorDistributionData
<xs:complexType name="MonitorDistributionData">
<xs:sequence>
<xs:element name="distributionCount" type="xs:int" maxOccurs="unbounded"/>
<xs:element name="maxvalue" type="xs:double" default="0.0"/>
<xs:element name="minvalue" type="xs:double" default="0.0"/>
<xs:element name="startTimeinSec" type="xs:long" default="0"/>
<xs:element name="endTimeinSec" type="xs:long" default="0"/>
</xs:sequence>
</xs:complexType>
ProductsMonitorSummaryData
<xs:complexType name="ProductsMonitorSummaryData">
<xs:sequence>
<xs:element name="summaryData" type="tns:ProductPerformanceData" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ProductPerformanceData">
<xs:sequence>
<xs:element name="targetKey" type="xs:string"/>
<xs:element name="targetType" type="tns:TargetType"/>
<xs:element name="value" type="xs:double"/>
<xs:element name="minValue" type="xs:double"/>
<xs:element name="maxValue" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TargetType">
<xs:restriction base="xs:string">
<xs:enumeration value="FC_SWITCH"/>
<xs:enumeration value="FC_PORT"/>
<xs:enumeration value="GIGE_PORT"/>
<xs:enumeration value="HBA_PORT"/>
<xs:enumeration value="FLOW"/>
</xs:restriction>
</xs:simpleType>
FlowMonitorSummaryData
<xs:complexType name="FlowMonitorSummaryData">
<xs:sequence>
<xs:element name="summaryData" type="tns:FlowMonitorData" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FlowMonitorData">
<xs:sequence>
<xs:element name="targetKey" type="xs:string"/>
<xs:element name="targetType" type="tns:TargetType"/>
<xs:element name="value" type="xs:double"/>
<xs:element name="minValue" type="xs:double"/>
<xs:element name="maxValue" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TargetType">
<xs:restriction base="xs:string">
<xs:enumeration value="FC_SWITCH"/>
<xs:enumeration value="FC_PORT"/>
<xs:enumeration value="GIGE_PORT"/>
<xs:enumeration value="HBA_PORT"/>
<xs:enumeration value="FLOW"/>
</xs:restriction>
</xs:simpleType>
Events
EventsResponse
<xs:complexType name="EventsResponse">
<xs:complexContent>
<xs:extension base="ns2:PaginatedResponse">
<xs:sequence>
<xs:element name="events" type="ns1:Event" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Event">
<xs:sequence>
<xs:element name="key" type="xs:string"/> ' the format is edbid-<database id>
<xs:element name="severity" type="tns:Severity" nillable="true" minOccurs="0"/>
<xs:element name="acknowledged" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="sourceName" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="sourceAddr" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="lastOccurrenceHostTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
<xs:element name="firstOccurrenceHostTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
<xs:element name="eventCount" type="xs:int" nillable="true" minOccurs="0"/>
<xs:element name="specialEvent" type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="origin" type="tns:Origin" nillable="true" minOccurs="0"/>
<xs:element name="eventCategory" type="tns:Category" nillable="true" minOccurs="0"/>
<xs:element name="description" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="module" type="tns:Module" nillable="true" minOccurs="0"/>
<xs:element name="productAddress" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="contributors" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="nodeWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="portWwn" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="operationalStatus" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="firstOccurrenceSwitchTime" type="xs:dateTime" nillable="true"
minOccurs="0"/>
<xs:element name="lastOccurrenceSwitchTime" type="xs:dateTime" nillable="true"
minOccurs="0"/>
<xs:element name="virtualFabricId" type="xs:short" nillable="true" minOccurs="0"/>
<xs:element name="macAddress" type="xs:string" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Severity">
<xs:restriction base="xs:string">
<xs:enumeration value="EMERGENCY"/>
<xs:enumeration value="ALERT"/>
<xs:enumeration value="CRITICAL"/>
<xs:enumeration value="ERROR"/>
<xs:enumeration value="WARNING"/>
<xs:enumeration value="NOTICE"/>
<xs:enumeration value="INFO"/>
<xs:enumeration value="DEBUG"/>
<xs:enumeration value="UNKNOWN"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Origin">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="TRAP"/>
<xs:enumeration value="SYSLOG"/>
<xs:enumeration value="SNORT"/>
<xs:enumeration value="PSEUDOEVENT"/>
<xs:enumeration value="APPLICATION_EVENTS"/>
<xs:enumeration value="OTHERS"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Category">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="PRODUCT_EVENT"/>
<xs:enumeration value="LINK_INCIDENT_EVENT"/>
<xs:enumeration value="PRODUCT_AUDIT_EVENT"/>
<xs:enumeration value="PRODUCT_STATUS_EVENT"/>
<xs:enumeration value="SECURITY_EVENT"/>
<xs:enumeration value="USER_ACTION_EVENT"/>
<xs:enumeration value="MANAGEMENT_SERVER_EVENT"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Module">
<xs:restriction base="xs:string">
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="PRODUCT"/>
<xs:enumeration value="OPEN_TRUNKING"/>
<xs:enumeration value="CALL_HOME"/>
<xs:enumeration value="ETHERNET"/>
<xs:enumeration value="THRESHOLD_EXCEEDED"/>
<xs:enumeration value="LINK_INCIDENT"/>
<xs:enumeration value="PRODUCT_AUDIT"/>
<xs:enumeration value="DEVICE_STATUS"/>
<xs:enumeration value="SECURITY"/>
<xs:enumeration value="SCC_DCC"/>
<xs:enumeration value="SOFTWARE_EXCEPTION"/>
<xs:enumeration value="CLIENT_SERVER"/>
<xs:enumeration value="FAULT_MANAGEMENT"/>
<xs:enumeration value="ZONING"/>
<xs:enumeration value="CONFIG_MANAGEMENT"/>
<xs:enumeration value="TECH_SUPPORT"/>
<xs:enumeration value="NAMES"/>
<xs:enumeration value="DATA_ENCRYPTION"/>
<xs:enumeration value="FCIP"/>
<xs:enumeration value="CEE"/>
<xs:enumeration value="USER_MANAGEMENT"/>
<xs:enumeration value="FICON"/>
<xs:enumeration value="PORT_FENCING_MODULE"/>
<xs:enumeration value="HOST_MANAGEMENT"/>
<xs:enumeration value="FC_SECURITY_PROTOCOL"/>
<xs:enumeration value="HOST_PORT_MAPPING"/>
<xs:enumeration value="AUTHENTICATION"/>
<xs:enumeration value="SYSTEM_MONITOR"/>
<xs:enumeration value="BACKUP"/>
<xs:enumeration value="ACTIVE_SESSION_MANAGEMENT"/>
<xs:enumeration value="MANAGEMENT_SERVER_LICENSE"/>
<xs:enumeration value="STORAGE_PORT_MAPPING"/>
<xs:enumeration value="FCS"/>
<xs:enumeration value="ROUTER"/>
<xs:enumeration value="PERFORMANCE_MANAGEMENT"/>
<xs:enumeration value="TRACKING"/>
<xs:enumeration value="FABRIC_TRACKING"/>
<xs:enumeration value="PREFERENCES"/>
<xs:enumeration value="PORT_GROUPS"/>
<xs:enumeration value="HBA"/>
<xs:enumeration value="LAYOUT_MAP"/>
<xs:enumeration value="VM_PLUGIN"/>
<xs:enumeration value="CONFIGURATION_DEPLOYMENT"/>
<xs:enumeration value="CONFIGURATION_RETRIEVAL"/>
<xs:enumeration value="EVENT_ACTION"/>
<xs:enumeration value="BOOT_IMAGE_MANAGEMENT"/>
<xs:enumeration value="PERFORMANCE_MONITOR"/>
<xs:enumeration value="FIRMWARE_MANAGEMENT"/>
<xs:enumeration value="SCOM_PLUGIN"/>
<xs:enumeration value="VIRTUAL_FABRICS"/>
<xs:enumeration value="SFLOW_MONITORING"/>
<xs:enumeration value="PROPERTIES"/>
<xs:enumeration value="POWER_CENTER"/>
<xs:enumeration value="VIRTUAL_PORT_WWN"/>
<xs:enumeration value="VLAN_MANAGEMENT"/>
<xs:enumeration value="LOOPBACK_TEST"/>
</xs:restriction>
</xs:simpleType>
CountResponse
<xs:complexType name="CountResponse">
<xs:sequence>
<xs:element name="_return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
Zoning
ZoneDbsResponse
<xs:complexType name="ZoneDb">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="active" type="xs:boolean" default="false"/>
<xs:element name="checksum" type="xs:long" default="0"/>
<xs:element name="zones" type="tns:Zone" maxOccurs="unbounded"/>
<xs:element name="zonealiases" type="tns:ZoneAlias" maxOccurs="unbounded"/>
<xs:element name="zonesets" type="tns:ZoneSet" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ZoneDbsResponse">
<xs:sequence>
<xs:element name="zonedbs" type="ns1:ZoneDb" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Zone">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="type" type="tns:ZoneType"/>
<xs:element name="active" type="xs:boolean"/>
<xs:element name="aliasNames" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="memberNames" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ZoneType">
<xs:restriction base="xs:string">
<xs:enumeration value="STANDARD"/>
<xs:enumeration value="LSAN"/>
<xs:enumeration value="UNKNOWN"/>
</xs:restriction>
</xs:simpleType>
ZonesResponse
<xs:complexType name="ZonesResponse">
<xs:sequence>
<xs:element name="zones" type="ns1:Zone" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
ZoneAliasesResponse
<xs:complexType name="ZoneAlias">
<xs:sequence>
<xs:element name="key" type="xs:string"/
<xs:element name="name" type="xs:string"/>
<xs:element name="memberNames" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ZoneAliasesResponse">
<xs:sequence>
<xs:element name="zoneAliases" type="ns1:ZoneAlias" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
ZoneSetsResponse
<xs:complexType name="ZoneSet">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="active" type="xs:boolean"/>
<xs:element name="zoneNames" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ZoneSetsResponse">
<xs:sequence>
<xs:element name="zonesets" type="ns1:ZoneSet" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
ZoneTransactionResponse
<xs:complexType name="ZoneTransaction">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="lsanZoning" type="xs:boolean"/>
<xs:element name="active" type="xs:boolean"/>
<xs:element name="timeout" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ZoneTransactionResponse">
<xs:sequence>
<xs:element name="zoneTransaction" type="ns1:ZoneTransaction"/>
</xs:sequence>
</xs:complexType>
ControlZoneTransactionRequest
<xs:complexType name="ControlZoneTransactionRequest">
<xs:sequence>
<xs:element name="lsanZoning" type="xs:boolean" default="false"/> ' case sensitive, use either
true or false
<xs:element name="action" type="tns:TransactionAction"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TransactionAction">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE"/>
<xs:enumeration value="START"/>
<xs:enumeration value="ABORT"/>
<xs:enumeration value="COMMIT"/>
</xs:restriction>
</xs:simpleType>
CreateZoningObjectRequest
<xs:complexType name="CreateZoningObjectRequest">
<xs:sequence>
<xs:element name="zones" type="ns1:Zone" maxOccurs="unbounded"/>
<xs:element name="zoneAliases" type="ns1:ZoneAlias" maxOccurs="unbounded"/>
<xs:element name="zoneSets" type="ns1:ZoneSet" maxOccurs="unbounded"/>
<xs:element name="edgeFabricWwns" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
DeleteZoningObjectRequest
<xs:complexType name="DeleteZoningObjectRequest">
<xs:sequence>
<xs:element name="zoneNames" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="zoneAliasNames" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="zoneSetNames" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
UpdateZoningObjectRequest
<xs:complexType name="UpdateZoningObjectRequest">
<xs:sequence>
<xs:element name="action" type="tns:UpdateAction"/>
<xs:element name="zones" type="ns1:Zone" maxOccurs="unbounded"/>
<xs:simpleType name="UpdateAction">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE"/>
<xs:enumeration value="ADD"/>
<xs:enumeration value="REMOVE"/>
</xs:restriction>
</xs:simpleType>
InitiatorTargetsRequest
<xs:complexType name="InitiatorTargetsRequest">
<xs:sequence>
<xs:element name="lsanZoning" type="xs:boolean" default="false"/> ' case sensitive, use either
true or false
<xs:element name="zoneNamePrefix" type="xs:string" minOccurs="0"/>
<xs:element name="initiator" type="xs:string"/>
<xs:element name="targets" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="activate" type="xs:boolean" default="false"/> ' case sensitive, use either
true or false
<xs:element name="edgeFabricWwns" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PerformanceData">
<xs:sequence>
<xs:element name="targetKey" type="xs:string"/>
<xs:element name="targetType" type="tns:TargetType"/>
<xs:element name="timeSeriesDatas" type="tns:TimeSeriesData" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TimeSeriesData">
<xs:sequence>
<xs:element name="timeInSeconds" type="xs:int"/>
<xs:element name="value" type="xs:double"/>
<xs:simpleType name="TargetType">
<xs:restriction base="xs:string">
<xs:enumeration value="FC_SWITCH"/>
<xs:enumeration value="FC_PORT"/>
<xs:enumeration value="GIGE_PORT"/>
<xs:enumeration value="HBA_PORT"/>
<xs:enumeration value="FLOW"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TimeSeriesGranularity">
<xs:restriction base="xs:string">
<xs:enumeration value="GRANULARITY_MINIMUM"/>
<xs:enumeration value="GRANULARITY_30MIN"/>
<xs:enumeration value="GRANULARITY_2HOUR"/>
<xs:enumeration value="GRANULARITY_1DAY"/>
</xs:restriction>
</xs:simpleType>