Skip navigation links

Package com.quantum.dxi.rest

This package and subpackages implement the REST Web Services for monitoring and managing Quantum systems.

See: Description

Package com.quantum.dxi.rest Description

This package and subpackages implement the REST Web Services for monitoring and managing Quantum systems. Subpackages organize the services by functional area. The interface is supported by HTTP methods (GET/POST/PUT/DELETE) and request and response entities formatted in XML and JSON unless otherwise specified.

Versioning

This is revision 1.2.11 of the REST Web Service API for DXi 5.3.0 and later. Previous supported revisions are:

Versioning is supported by the REST Web Service API via content type negotiation. Web service requests MUST specify an API version as described below. Specifying standard mime types such as application/json may result in a successful web service call, but is not supported and may result in routing to the "wrong" version of the request.

When performing a GET, specify the version of the API in the Accept header of your request.

When performing a PUT, specify the version of the API in the Content-Type and Accept headers of your request.

When performing a POST operation that creates a new entity, specify the version of the API in the Content-Type and Accept headers of your request.

When performing a POST operation that executes a procedure (e.g., reboot the system) rather than creating an entity, specify the version of the API in the Accept headers of your request, even though the POST response may have no content.

When performing a DELETE, specify the version of the API in the Accept headers of your request, even though the DELETE response will have no content.

Acceptable media types for Accept and Content-Type headers are defined in DXiRESTMediaType. The media types specify the version as well as the content format of the request and/or response entities as appropriate. Please note that APIs revision x.y.z use the same media types as APIs version x.y. For example: When using an API documented as "@since 1.2.x", use the media types defined for 1.2. Media types are defined for versions 1.0, 1.1, and 1.2.

Access

In order to use the APIs, authentication is needed. Any user/password combination that can access the GUI can be used for authentication. The intial API to call is:

/rest/DXi/authenticate

This call will return a JSESSION cookie in the response. This cookie is then used for future API requests.

Table Entity Paging, Sorting, and Filtering

System REST Web Services support URL query parameters for paging, sorting, and filtering for entities that return lists of items, referred to as Tables. The following query parameters are all optional; if paging and filtering are not specified, the entire table is returned.

Paging is supported by the start and count query parameters. The start parameter indicates the (0-based) index of the first element to be returned, and count indicates the maximum number of elements to return.

Examples:

Sorting is supported by the sort and dir query parameters. The latter has no effect if sort is not specified. The sort parameter indicates which column to sort on. dir must be ASC (the default) or DESC, indicating whether the lexicographical sort on the specified column values should be ascending or descending.

Example: ?sort=Name&dir=DESC

Filtering is supported by the filter query parameter. Filters are defined by column names and filtering operations. Filters may be combined using the AND operator. The supported filter operations are:

Example: ?filter=Protocol(EQ)NFS(AND)Name(EQ)myShare

Common Data Types

 
 <xs:element name="Scalar" type="ScalarType"/>

 <xs:complexType name="ScalarType">
     <xs:sequence>
         <xs:element name="Name" type="xs:string"/>
     </xs:sequence>
 </xs:complexType>

 <xs:element name="Scalars">
     <xs:complexType>
         <xs:sequence>
             <xs:element ref="Scalar" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>

 <xs:element name="NumericScalar" type="NumericScalarType"/>

 <xs:complexType name="NumericScalarType">
     <xs:complexContent>
         <xs:extension base="ScalarType">
             <xs:sequence>
                 <xs:element name="Value" type="xs:long"/>
             </xs:sequence>
         </xs:extension>
     </xs:complexContent>
 </xs:complexType>

 <xs:element name="StringScalar" type="StringScalarType"/>

 <xs:complexType name="StringScalarType">
     <xs:complexContent>
         <xs:extension base="ScalarType">
             <xs:sequence>
                 <xs:element name="Value" type="xs:string"/>
             </xs:sequence>
         </xs:extension>
     </xs:complexContent>
 </xs:complexType>

 <xs:element name="StringListScalar" type="StringListScalarType"/>

 <xs:complexType name="StringListScalarType">
     <xs:complexContent>
         <xs:extension base="ScalarType">
             <xs:sequence>
                 <xs:element name="Value" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
             </xs:sequence>
         </xs:extension>
     </xs:complexContent>
 </xs:complexType>

 <xs:element name="FloatScalar" type="FloatScalarType"/>

 <xs:complexType name="FloatScalarType">
     <xs:complexContent>
         <xs:extension base="ScalarType">
             <xs:sequence>
                 <xs:element name="Value" type="xs:float"/>
             </xs:sequence>
         </xs:extension>
     </xs:complexContent>
 </xs:complexType>

 <xs:element name="BooleanScalar" type="BooleanScalarType"/>

 <xs:complexType name="BooleanScalarType">
     <xs:complexContent>
         <xs:extension base="ScalarType">
             <xs:sequence>
                 <xs:element name="Value" type="xs:boolean"/>
             </xs:sequence>
         </xs:extension>
     </xs:complexContent>
 </xs:complexType>

 <xs:element name="TimedLongs">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="T" type="xs:long">
                 <xs:annotation>
                     <xs:documentation>Offset from Base Time</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="V1" type="xs:long">
                 <xs:annotation>
                     <xs:documentation>Value for Id 1</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="V2" type="xs:long" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>Value for Id 2</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="V3" type="xs:long" minOccurs="0"/>
             <xs:element name="V4" type="xs:long" minOccurs="0"/>
             <xs:element name="V5" type="xs:long" minOccurs="0"/>
             <xs:element name="V6" type="xs:long" minOccurs="0"/>
             <xs:element name="V7" type="xs:long" minOccurs="0"/>
             <xs:element name="V8" type="xs:long" minOccurs="0"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>

 <xs:element name="TimedFloats">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="T" type="xs:long">
                 <xs:annotation>
                     <xs:documentation>Offset from Base Time</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="V1" type="xs:float">
                 <xs:annotation>
                     <xs:documentation>Value for Id 1</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="V2" type="xs:float" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>Value for Id 2</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="V3" type="xs:float" minOccurs="0"/>
             <xs:element name="V4" type="xs:float" minOccurs="0"/>
             <xs:element name="V5" type="xs:float" minOccurs="0"/>
             <xs:element name="V6" type="xs:float" minOccurs="0"/>
             <xs:element name="V7" type="xs:float" minOccurs="0"/>
             <xs:element name="V8" type="xs:float" minOccurs="0"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>

 <xs:element name="LongSeries">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="IdentifierList" type="xs:string">
                 <xs:annotation>
                     <xs:documentation>Comma seperated list of Ids</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="TotalCount" type="xs:long"/>
             <xs:element name="BaseTime" type="xs:long"/>
             <xs:element ref="TimedLongs" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>

 <xs:element name="FloatSeries">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="IndentifierList" type="xs:string">
                 <xs:annotation>
                     <xs:documentation>Comma seperated list of Ids</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="TotalCount" type="xs:long"/>
             <xs:element name="BaseTime" type="xs:long"/>
             <xs:element ref="TimedFloats" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

Error Handling

Authentication Error

In reponse to a request that requires authentication; this error is returned along with an HTTP 401 (Unauthorized) Status Code.

 
 <xs:element name="AuthenticationError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element name="Reason" type="xs:string" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>"Not Authenticated"</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="ErrorCode" type="xs:string" minOccurs="0"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

Duplicate Name Error

In response to a POST request where a client tries add a resource that already exists; this error is returned along with an HTTP 400 (Bad Request) Status Code.

 
 <xs:element name="DuplicateNameError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element name="PropertyName" type="xs:string"/>
             <xs:element name="Name" type="xs:string">
                 <xs:annotation>
                     <xs:documentation>
                         Name of the resource.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

No Such Name Error

In response to a request for a resource that does not exist; this error is returned along with an HTTP 404 (Not Found) Status Code.

 
 <xs:element name="NoSuchNameError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element name="PropertyName" type="xs:string"/>
             <xs:element name="Name" type="xs:string">
                 <xs:annotation>
                     <xs:documentation>
                         Name of the resource.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

Operation Failed

In response to a request that can't be completed due to some server condition; this error is returned along with an HTTP 500 (Internal Server Error) status code.

 
 <xs:element name="OperationFailedError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element name="Reason" type="xs:string" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>
                         Description of the error.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="ErrorCode" type="xs:int" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>
                         Implementation defined error code.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

Table Full Error

In reponse to a POST request attempted on a table that has already reached capacity; this error is returned along with an HTTP 400 (Bad Request) Status Code.

 
 <xs:element name="TableFullError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element name="TableName" type="xs:string"/>
                 <xs:annotation>
                     <xs:documentation>
                         Name of the table.
                     </xs:documentation>
                 </xs:annotation>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

Timeout Error

In reponse to a request where the implementation does not complete in an allotted time; this error is returned along with an HTTP 500 (Internal Server Error) Status Code.

 
 <xs:element name="TimeoutError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element name="Reason" type="xs:string" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>Name of the method that timed out.</xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="ErrorCode" type="xs:int" minOccurs="0"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 

Validation Error

In response to POST or PUT request if one or more of the properties is invalid due to length, value, or bad characters; this error is returned along with an HTTP 400 (Bad Request) Status Code.

 
 <xs:element name="ValidationError">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="PropertyName" type="xs:string">
                 <xs:annotation>
                     <xs:documentation>
                         The Schema defined name of the property that is invalid.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="ErrorCode" type="xs:long" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>
                         Error code as defined by the implementation.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="Reason" type="xs:string" minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>
                        Description of the error.
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
         </xs:sequence>
     </xs:complexType>
 </xs:element>

 <xs:element name="ValidationErrors">
     <xs:complexType>
         <xs:sequence>
             <xs:element name="ExceptionType" type="xs:string"/>
             <xs:element ref="ValidationError" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 </xs:element>
 
 
Skip navigation links

Copyright © 2011-2026 Quantum Corporation. All Rights Reserved.