If you encounter any installation or operational issues with your product, check the pertinent section of
this manual to see if the issue can be resolved by following outlined procedures. Visit
https://www.VertivCo.com/en-us/support/ for additional assistance.
Page 3
TABLE OF CONTENTS
1 Overview1
1.1 Base URL1
1.2 Methods1
1.3 Body1
1.4 Query Parameters1
1.5 Response Codes2
1.5.1 Error information2
1.5.2 Ignored keys2
1.6 Authentication3
1.6.1 JSON Web Token (JWT)3
1.6.2 Basic authentication3
1.7 Document Conventions3
1.7.1 Abbreviated URLs3
1.7.2 Examples3
2 API Resources and Methods5
2.1 Sessions6
2.1.1 /sessions/login6
2.1.2 /sessions/logout7
2.2 System8
2.2.1 /system/info8
2.2.2 /system/reboot9
2.2.3 /system/shutdown9
2.2.4 /system/factoryDefault10
2.2.5 /system/firmware/version11
2.2.6 /system/firmware/download11
2.2.7 /system/firmware/install13
2.2.8 /system/firmware/downloaded13
2.2.9 /system/config/save14
2.2.10 /system/config/restore15
2.2.11 /system/dateAndTime17
2.2.12 /system/dateAndTime/timezones18
2.2.13 /system/general19
2.3 Security Profile20
2.3.1 /security20
2.4 Network24
2.4.1 /network/settings24
2.4.2 /network/devices[/<INT>]25
2.5 Serial Ports27
2.5.1 /serialPorts[/<PORT#>]27
2.6 Pluggable Devices30
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |iii
Page 4
2.6.1 /pluggableDevices[/<NAME>]30
2.6.2 /pluggableDevices/<NAME>/setConsole32
2.6.3 /pluggableDevices/<NAME>/eject33
2.6.4 /pluggableDevices/<NAME>/delete34
2.7 Authentication34
2.7.1 /authentication34
2.7.2 /authentication/ldap35
2.7.3 /authentication/radius36
2.7.4 /authentication/tacacs37
2.8 Users38
2.8.1 /users[/<NAME>]38
2.9 Resources40
2.9.1 /resources40
Appendices45
Appendix A: cURL45
Appendix B: Python46
Appendix C: Helper Script47
Appendix D: Certificate Verification48
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |iv
Page 5
1 OVERVIEW
This document explains the external (remote web) Application Programming Interface (API) services and
schema for the Avocent® ACS800/8000 Advanced Console System.
Remote web API services allow any third-party software system to integrate with the console system
software. This integration enables your applications, tools and systems to manage information in the
console system software and provides support for accessing information, performing unit control and
adding events to the event log.
1.1 Base URL
The base URL format is: https://<IP_ADDRESS>:<PORT_NUMBER>/api/v1/
NOTE: The version number is mandatory to allow for future enhancements and expansion.
The HTTPS port number is 48048 by default. HTTP may also be used with a default port number of 8080
but this is completely insecure. By default, HTTP access is disabled and only HTTPS access is enabled. An
admin can enable or disable HTTP and HTTPS access as well as change their respective port numbers.
NOTE: Changes to these settings will restart the RESTful API server and disconnect any existing
RESTful sessions.
1.2 Methods
The following basic HTTP methods are supported.
Table 1.1 Supported HTTP Methods
METHODDESCRIPTION
Used tocreate a new resource (s pecifiedin the JSON body) underneaththe resource specified by the URL. The resource created is
POST
GETRequests a representation of the specified r esource. This has no other effects other than reading and returning the data.
PUT
PATCH
DEL ETEThis method deletes the resource specified by the URL.
returned in the body or enough informationis returnedto find the new resource (an ID or URL).
Also used to initiate actions.
This method is used to modify an existing resource (specified by the URL) with the data pres ent in the JSON body. Only the items
present in the body ar e modifiedand the rest are left unchanged. The response code is typically 204 (S tatus No Content) withno
content in the body unless otherwise requested by a specific parameter.
This method is similar tothe PUT method, but is typically intended only for modifying a portion of the specified r esource. PUT in this A PI
is also allowed to only modify a portion of a r esource, so PATCH is included just for those applications that already use it.
1.3 Body
The body for GET/POST/PUT/PATCH requests uses JSON syntax. This means that the "Content-Type"
and "Accept" headers should be set to application/json. All parameters and values are case sensitive.
Parameters that are string types must have their value enclosed in quotes even if the content is
numerical, as is the case with some of the parameters that have a dropdown menu in the WebUI. All
parameters are string type unless otherwise specified to be integer, array or something else.
1.4 Query Parameters
The fields query parameter is supported for many resources to enable the user to limit the fields that are
returned. For example:GET /serialPorts?fields=pinout,speed.
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |1
Page 6
This example above would return an array of all the serial ports with only the speed and pinout fields of
each.
Sub-fields such as speed which is under the "physical" portion of a serialPort are unique and may be
specified without any reference to the parent (physical in this example).
1.5 Response Codes
The API utilizes standard HTTP response codes where appropriate. The following table lists the response
codes supported and typical usage.
Table 1.2 Response Code Descriptions
RESPONS E
CODE
200 OKSuccessReturnedfor successful request. Response may include a JSON body with res ults.
201 CreatedCreatedReturned for successful r equest that has resulted in the cr eationof a new resource.
204 No
Content
400 Bad
Request
401
Unauthorized
404 Not
Found
MEANINGDESC RIPTION
SuccessReturnedfor successful request. Response does NOT include a JSON body with results.
Failure
Authorization
Failure
APInotactive
Returnedon failed request. Response includes a JSON encodedlist of err ors for one or more of the problematic
parameters. May also indicate other s ystem errors.
Returnedfor request where the resource is not found. Response typically includes a JSON encoded error structure
withmore error detail.
1.5.1 Error information
In addition to returning a failing response code, error information is returned in the response body
providing more detail to the user. This response is in JSON format as follows:
NOTE: Not all error information responses will include the detail field.
1.5.2 Ignored keys
If unknown keys are sent as part of the JSON body of a PUT or PATCH request, then they will be ignored
by the API. This is part of the RESTful way of supporting different devices and different versions of API
implementation. If a device doesn't understand or support something, it is permitted to ignore it.
Rather than ignoring mis-spellings and leaving the caller to wonder why a parameter didn't get set, the
API will return a response body along with the 200 response code that contains a successful response
message along with a list of keys that were ignored. This permits the caller to look for this information if so
desired.
{
"status": "success", "ignoredKeys": [
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |2
Page 7
"datea", "timee"
]
}
If a parent key is ignored, then all children below it are ignored but are not processed and listed as ignored
keys.
Even if all keys are ignored, success will still be returned because the command didn't fail to write
anything that it attempted.
1.6 Authentication
The ACS RESTful API supports two different methods of authentication: JSON Web Token (JWT) and
basic authentication.
1.6.1 JSON Web Token (JWT)
The JWT method allows for the user to login and authenticate using the /sessions/login resource, passing
it a valid appliance username and password in the JSON body of the request. If successful, the appliance
returns a JWT that must be included in the header of all subsequent requests as the "Authorization" key
with a value of "Bearer <JWT>".
This minimizes some of the appliance authentication overhead on each individual RESTful API call. The
JWT remains valid for 60 minutes. A GET on the /sessions/refresh resource can be done before the token
expires to refresh and provide a new token.
NOTE: The username and password are transmitted unencrypted as plain text in the original
/sessions/login request body, so it is recommended to use HTTPS for RESTful communications.
1.6.2 Basic authentication
Basic authentication takes a username/password pair and encodes it using base64. This resulting base64
value must then be included in every request header as the "Authorization" key with a value of "Basic
<BASE64_VALUE>". Each such request is then authenticated by the appliance, the request is executed,
and the session terminated.
NOTE: The username/password pair are transmitted unencrypted (base64 is NOT secure encryption)
in every request, so it is recommended to use HTTPS for RESTful communications.
1.7 Document Conventions
1.7.1 Abbreviated URLs
Throughout this document, the URLs in the examples will generally be abbreviated to just show the
portion of the URL after the /v1. This is only to make the document more readable. The full URL is
necessary when using the API. For example:
/system/info is shown instead of https://10.20.30.40:48048/api/v1/system/info
1.7.2 Examples
In the RESTful examples throughout the document, what is sent in the request is shown in bold type
including both URL components and message body. The response body is shown in normal type. For
example:
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |3
Page 8
POST /sessions/login {"username": "admin", "password": "avocent"}
{
"token":"eyJhbGciOiJIUzI1NiIsInR…fVzCM"
}
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |4
Page 9
2 API RESOURCES AND METHODS
The following table is an outline of the URLs that the API provides in this release.
Table 2.1 URL Descriptions
URLMETHODDESC RIPTION
Sessions
/ses sions/loginPOST
/ses sions/logoutPOSTExit and cleanup the curr ent session.
/ses sions/r efres hGET
System
/sys tem/infoGETRead basic system info such as serial number andtype.
/sys tem/rebootPOSTReboots the appliance. Returns immediately.
/sys tem/shutdownPOSTShutdown the appliance. Returns immediately.
/sys tem/factoryDefaultPOSTReset the appliance to the factory defaults and reboot.
/sys tem/firmware/ver sionGETReturns versioninformation of firmware, bootcode, and date of build.
/sys tem/firmware/downloadPOSTDownloada firmware image file to the appliance usingftp, s ftp or scp.
/sys tem/firmware/installPOSTInstalls a previously downloaded firmware image file.
/sys tem/firmware/downloadedGETReturns the version informationof a previously downloaded firmware file.
/sys tem/config/savePOSTSave the appliance configuration to a file.
/sys tem/config/restorePOSTRestore the appliance configuration from a saved file.
/sys tem/dateAndTime
/sys tem/dateAndTime/timezonesGETReturn a list of all recognized timezones.
/sys tem/general
Security
/security
Network
/network/settings
/network/devices
/network/devices/<ETH#>
Ports
/ser ialPortsGET
/ser ialPorts/<PORT#>
Pluggable
/pluggableDevices
/pluggableDevices/<NA ME>
/pluggableDevices/<NA ME>/ejectPOSTEject the specified device s o that it is safe to remove.
GET
PUT
PATCH
GET
PUT
PATCH
GET
PUT
PATCH
GET
PUT
PATCH
GET
PUT
PATCH
GET
PUT
PATCH
GET
Login with username and pass word, creatingan API s ess ion, and returning a
tokenin JSON body.
Using the token provided, obtaina new refreshed token which is returned in the
JSON body r esponse.
Read and configure system time parameters.
Read and configure general system parameters including onlineHelp, language,
banner, etc.
Read and configure various security profile parameters .
Read and configure various appliance specific network parameters.
Read and configure network device specific parameters : method (dhcpor static),
IP address , netmask, gateway, etc.
Read and configure various serial port parameters : status, pinout, parity, profile,
etc.
Return a list of attachedpluggable devices andtheir details or return details on the
named pluggable device.
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |5
Page 10
URLMETHODDESC RIPTION
/pluggableDevices/<NA ME>/deletePOSTDelete the specified device after havingunpluggedit.
/pluggableDevices/<NA ME>/setConsolePOSTSetup the specified pluggable device as a console port.
/res ourcesGETReturn a list of available API resources .
GET
PUT
PATCH
GET
PUT
PATCH
GET
PUT
PATCH
POST
DEL ETE
Read and configure general appliance authentication parameters.
Read and configure authentication parameters specific to eachtype of
authenticationserver.
Read and configure user specific parameters, including listingall user s, adding a
user, and editing existingusers .
2.1 Sessions
2.1.1 /sessions/login
This action establishes a connection given username and password provided in the JSON body using the
configured authentication of the appliance.
A web token is returned that is to be sent in the header of ALL subsequent requests as the
"Authorization" key with a value of "Bearer <TOKEN>".
An alternative to this login session is to send a base64 encoded username/password pair in every API
request using an "Authorization" key with a value of "Basic <BASE64_VALUE>" as detailed in section 1.6.
Methods
POST
Parameters
PARAMETERDESCRIPTION
usernameValid username of an account on the appliance. (root, admin, etc.)
passwordValid pass word for the specified username.
Query
None
Response Body
JSON object
Response Codes
200OK
401Not Authorized
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |6
Page 11
40xFailure
Examples
POST /sessions/login {"username": "admin", "password": "avocent"}
{
"token":"eyJhbGciOiJIUzI1NiIsInR…fVzCM"
}
POST /sessions/login {"username": "bad", "password": "bad"}
This action invalidates the web token accompanied with it in the header and removes the associated API
session from the appliance. Subsequent use of the web token will be unsuccessful.
Methods
POST
Parameters
None
Query
None
Response Body
JSONobject
Response Codes
200OK
40xFailure
Examples
POST /sessions/logout
{
"logout": "OK",
"username": "root"
}
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |7
Page 12
2.2 System
2.2.1 /system/info
This resource provides access to read only system information about the appliance’s identity, versions,
power and CPU information.
Methods
GET
Parameters
PARAMETERDESC RIPTION
serialNumberSerial number assignedto the appliance at the factory.
type
bootcode
firmware
firmwareDate
bootedFromIdentifies whether the appliance is currently bootedfrom hardware (internal Flash) or network.
powerSupply1Status of power supply 1: on/off
powerSupply2Status of power supply 2, if pres ent: on/off
cpuDescription of the cpu: ARMv7 Processor rev 0 (v71)
coresNumber ofcores in the cpu: integer 2
Description of the type of unitincluding modelnumber withport count, power supplies, and modem presence.
Example: ACS8048 with single power supply
Version number of the installedbootcode.
Example: 1.17
Fullver sion number of the installed firmware.
Example: 1.3.75.2779+551+28+11
Date of the installed firmwar e.
Example: Sep 1 2016 – 04:07:14
Query
Fields are supported for all parameters
Response Body
JSONobject
Response Codes
200OK
400Bad request
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |8
This action causes the appliance to download the firmware file specified in preparation for subsequent
firmware updating. The action does not return until the file download has completed or fails. Depending
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |11
Page 16
on the network speed, this could take a couple minutes.
Methods
POST
Parameters
PARAMETERDESCRIPTION
protocolSpecifies the protocol to use to downloadfile: ftp/scp/sftp.
ipAddressThe IP address of the r emote s erver from which to downloadthe file.
usernameThe username toaccess the remote ser ver.
passwordThe pass word to access the remote server.
directoryThe directory path on the remote s erver , typically relative to the ftp root directory.
filenameThe filename of the firmwar e file onthe remote server.
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |12
Page 17
2.2.7 /system/firmware/install
This action causes the appliance to install a previously downloaded firmware image into flash memory.
This request does not return until the installation is complete, which may take up to two minutes.
Fullver sion number of the firmware file.
Example: 1.2.9.2449+540+23+11
Date of the buildof the firmware file.
Example: 03/01/1 7
2.2.9 /system/config/save
This action saves the system configuration of the appliance.
This command does not return until the save is complete, which may take several minutes depending
upon the format.
NOTE: XML format is not supported in the API.
Methods
POST
Parameters
PARAMETERDESC RIPTION
formatFormat to save the configuration in. Default is cli if nothing is specified. Otherwise choose from: cli/compressed
whereWhere tosave the file, either to local appliance file system or a remote server: local/remote.
protocolProtocol used to transfer the file to a remote server : ftp/scp/sftp.
ipAddressIP A ddress of the remote ser ver.
usernameUsername of the accountto use on the r emote s erver .
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |14
Page 19
PARAMETERDESC RIPTION
passwordPass word for the specified username on the remote server. Defaults to"anonymous" if none is provided.
directory
filenameFilename to use for the saved configurationfile.
Directory where the file is to be written. If the directory starts with "/", then it is considered anabsolute path. Otherwise the
directory is relative to /mnt/hdUser /backup for local, which is the defaultlocation of local configuration files, or r elative to the
specifiedprotocol's configured base directory on the r emote s erver.
Response is:
{
"status": "backup configuration saved as cli config filename:
pub/myconfig.cli"
}
2.2.10 /system/config/restore
Restores the appliance configuration from a specified file.
NOTE: XML format is not supported in the API.
Methods
POST
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |15
Page 20
Parameters
PARAMETERDESC RIPTION
whereWhere the configuration file is located: local/remote.
protocolProtocol used to retrieve remote file: ftp/scp/sftp.
ipAddressIP A ddress of the remote ser ver.
usernameUsername of the accountto use on the r emote s erver .
passwordPass word for the specified username on the remote server. Defaults to"anonymous" if none is provided.
directory
filenameName of the configuration file to restore.
Directory where the file is located. If the directory starts with "/", then it is considered an absolute path. Otherwise the directory is
relative to /mnt/hdUser/backup for local, which is the defaultlocation of local configuration files, or relative to the ftp/scp/sftp
configured base directory on the r emote s erver.
Response is:
{
"status": "backup configuration restored from cli config filename:
pub/myconfig.cli"
}
The following command restores from the local file /mnt/hdUser/backup/myconfig.cli, which is sitting in
the default local directory for backup configuration files. The directory parameter is not actually needed
in this case, as it is assumed to be blank if not provided.
POST /system/config/restore
{
"where": "local",
"directory": "",
"filename": "myconfig.cli"
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |16
Page 21
}
Response is:
{
"status": "backup configuration restored from cli config filename:
myconfig.cli"
}
2.2.11 /system/dateAndTime
Gets and sets parameters related to the system’s date and time.
NOTE: Setting the time and date is not permitted when NTP is enabled and will result in an error.
languageLanguage used for ssh, telnet and console port sessions tothe appliance. english/chinese/french/german/japanese/spanish.
onlineHelp
bannerControls whether a login banner is displayed. enabled/disabled.
bannerText
viewerThe type of viewer to use when opening serial or appliance sessions. html5/jnlp.
URL for the online help productdocumentation.
Default: http://global.avocent.com/us/olh/acs8x/en/index.html.
Text of the login banner to display. It may include specialcharacters for formatting including\t for tabs and\n for newlines. Only
shown in the full r eturn body when banner is enabled.
Query
Fields are supported for all parameters.
Response Body
JSONobject
Response Codes
200OK
204OK No Content (for a PUT or PATCH)
400Bad Request
Examples
GET /system/general
{
"language": "english",
"onlineHelp": "http://global.avocent.com/us/olh/acs8x/en/index.html",
"banner": "enabled",
"bannerT ext":
"===================================================================
=======\n WARNING! The use of this system is restricted to
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |19
Page 24
authorized users. \n \n All information and communications on
this system are subject \n to review, monitoring and recording at
any time, without notice\n or permission. Users should have no
expectation of
privacy.\n==========================================================
================\n",
"viewer": "html5"
}
PUT /system/general {"bannerText":"==========\n Multiple\n Line\n
Banner\n==========\n"}
PUT /system/general {"language":"german","banner":"disabled","viewer":"j nlp"}
2.3 Security Profile
2.3.1 /security
Gets and sets parameters in the security profile of the appliance.
Methods
GET, PUT, PATCH
Parameters
PARAMETERDESCRIPTION
idleTimeout
Session idle timeout in seconds: integer. 0 disables the timeout
entirely, otherwise 90 seconds is the minimum accepted value.
PUT /security {"customProfile": {"httpsSettings": {"httpsPort": 444,
"redirectHttp": "disabled"}}}
2.4 Network
2.4.1 /network/settings
Get and set various network parameter settings of the console system.
NOTE: When configuring failoverSettings, the primary and secondary interface cannot be set to the
same value, so when swapping them the changes need to be made in one PUT command rather than
separately.
Methods
GET, PUT, PATCH
Parameters
PARAMETERDESCRIPTION
hostnameUser definedname of the appliance on the network. Defaults toformat of "ACS80xx-<serialNumber>"
primaryDnsIP address of the primary DNS server.
secondaryDnsIP address of the s econdary DNS server .
domainDomain address. Default: corp.avocent.com
searchSearch address. Default: corp.avocent.com
lldpLink L ayer Discovery Protocol: enabled/disabled
ipv6IPv6 support: enabled/disabled
ipv6Settings (only valid when ipv6 is enabled)
dhcpv6DnsGet the IPv6 D NS ser ver address from DHCPv6: enabled/disabled
dhcpv6DomainGet the IPv6 D omain name from DHCPv6: enabled/disabled
multipleRouting
failoverSettings ( only valid when multipleRoutingis enable_network_failover)
Get parameters for one or all serial ports. Set various serial port parameters for one serial port.
Methods
GET, PUT, PATCH
Parameters
PARAMETERDESCRIPTION
portRead-only port number
profile
deviceNameRead-only device name assigned by operatingsystem. E xamples: ttyS1, ttyUSB0, ttyACM0
statusPort status: enabled/disabled
physical (only valid when profile is cas, power or s ocket_client
pinoutSerial port pinout: auto/cisco/cyclades/rs422/rs485
speedSerial port s peed: integer 1200/2400/4800/9600/19200/38400/57600/115200/230400
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |27
Port profile: cas /power/dial_in/dial_out/socket_client/unconfigured
Note: dial_inand dial_out ar e not s upported at this time, and unconfigured is a readonly s tate that cannot be s et.
speedAutoDetectionEnable speed auto detection to try todiscover the s peed of the s erial port: enabled/disabled
protocol
authentication
textHotKey
powerHotKey
restfulHotKey
telnetAliasPortTCP port used to connect directly to a ser ial port using Telnet protocol. Default: 7000+port number
sshAliasPortTCP port used to connect directly to a serial port using SSH protocol. Default: "" ( not configured)
rawModeAliasPortTCP port used to connect directly to a ser ial port using r aw socket for connection. Default: "" (notconfigured)
ipv4AliasAddressIPv4 address used to connect directly to a serial port.
ipv4AliasInterfaceInterface as sociated with the ipv4AliasAddres s. eth#
ipv6AliasAddressIPv6 address used to connect directly to a ser ial port.
ipv6AliasInterfaceInterface associatedwith the ipv6AliasAddress. eth#
dcdSensitivityAllow s ess ion only if DCD is on. enabled/disabled
autoAnswer
dtrMode
dtrOffIntervalInterval used by DTR Mode off_interval in milliseconds: integer, Default: 100.
linefeedSuppress ionEnables the suppression ofthe linefeedcharacter after the carriage r eturn character. enabled/disabled
nullAfterCrSuppression E nables the suppression of the NU LL character after the carriage return character. enabled/disabled
transmissionIntervalThe interval the port waits to senddata to a remote client in milliseconds: integer
breakSequence
breakIntervalInterval for the break signalin milliseconds: integer, Default: 500
multiSess ionMenu
loginNotificationEnables the notificationto multi-sess ion user s when a new user logs inor a user logs out. enabled/disabled
infoNotificationDisplays an informationmessage when a target s ess ion is opened. enabled/disabled
cas/dataBuffering (only valid when profile is cas)
bufferingStatusEnables or disables data buffering. enabled/disabled
bufferingType
User as signed or default name for port. Defaultis the last half ofthe appliance mac address followedby "- p-"
and the port number. Example: 10-2c-3d-p-1
Enable auto discovery. The target name will be discovered and will be associatedwiththis serial port. If it fails,
the default port name willbe used. enabled/disabled
The protocol that will be used by authorized users toaccess the serial port or target: ssh / telnet/ raw_mode /
telnet|ssh / telnet|raw_mode / ssh|raw_mode / telnet|ssh|raw_mode
Authentication type that will be used to authenticate the user during target s ess ion: none / dsview_down_local /
dsview / dsview|local / ldap_down_local / ldap / ldap|local/ local / local|radius / local|tacacs+ / otp / otp|local /
radius_down_local / radius / radius|local / tacacs+_down_local / tacacs+ / tacacs+|local
Hotkey to suspendthe target session and return to the cliprompt. Notavailable for Raw. Default: "^Z" which is
Ctrl-Z
Hotkey to suspendthe target session and display the Power ManagementMenu to control the outlets merged to
the target. Not available for Raw. Default: "^P" which is Ctrl-P
Hotkey to suspendthe target session and display the RESTfulClient Menu, which is used to send user-defined
RESTful actions to a RES Tful ser ver. Default: "" (notconfigured)
Enables processing of inputdata so that when the inputdata matches one input stringconfigured in Auto
Answer , the configured output string willbe transmitted to the serial port. enabled/disabled
DTR Mode canbe set to the following:
always_on –DTR status willalways be on.
normal –This is the default. The DTR status willdepend on the existence of a CAS ses sion.
off_interval - when the a CAS session is closed, the DTR will stay down duringthis interval.
An administrator can configure the control key as the break sequence, entering ^ before the letter. Default:
~break
Enables the multi-sess ion menu whenconnectingto a port thatis already beingaccessed by another user.
enabled/disabled
Controls the type of data buffering:
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |28
Page 33
PARAMETERDESCRIPTION
local – stores the data bufferingfile on the appliances local file system
nfs –stores the data bufferingfile on anNFS server
syslog– sends the data to the s yslog s erver
dsview –sends the data to the DSView server .
localDevice
timeStampWhen enabled, adds the time stampto the data bufferingline for a local or NFS server. enabled/disabled
loginMessageIncludes special notification for logins andlogouts indata buffering. enabled/disabled
sessionLoggingControls when data is stored. enabled/disabled
power (only valid when profile is power)
speedAutoDetect
pollingRateThe interval in seconds to update information from the PDU: integer, Default: 20
deviceTypeThe type of power device connectedto the s erial port. pdu/ups
pduType
powerCycleIntervalThe interval in seconds between Off and Onactions for the power cycle command: integer, Default: 15
syslogWhenenabled, the PDU will sendsyslogmess ages tothe appliance. enabled/disabled
buzzerEnables or disables the PDU's buzzer. enabled/disabled
overcurrentProtectionWhen enabled, the software's overcurrent protection is on. enabled/disabled
upsTypeD efines the type or vendor of the UPS connected to the serial port. gxt4
socketClient (only valid when profile is socket_client)
remoteServerIPv4 or IPv6 address of the remote ser ver.
remoteTcpPortTCP port to be used to establish a connection with a remote s erver .
establishConnectionConfigure the event thatwill trigger the establishmentof the connection. dcd/always
Whenthe bufferingType is s et to local, this fieldspecifies where on the local system the data bufferingfiles are
stored. Options are the built-in memory (mmcblk0) or a connectedUSB storage or S D card location.
Enable speed auto detect for power device. Tries to discover the speedof the attached power device.
enabled/disabled
Defines the type or vendor of the PD U connected to the serial port.
auto/cyclades/enp/spc/servertech/raritan/apc/eaton
Query
Fields are supported for all parameters.
Response Body
JSONobject
Response Codes
200OK
204OK No Content (for a PUT or PATCH)
400Bad Request
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |29
Setup the specified pluggable device as a console port. This adds the device to the list of serial ports by
adding a new serial port number. The serial port must then be configured appropriately. This can only be
done for devices which show a deviceType of "console".
Methods
POST
Parameters
None
Query
None
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |32
Page 37
Response Body
JSONobject
Response Codes
200OK
400Bad Request
Examples
POST /pluggableDevices/ttyUSB0/setConsole
{
"status": "success. ttyUSB0 set to console, port 49"
}
2.6.3 /pluggableDevices/<NAME>/eject
Eject the specified pluggable device so that it can be physically removed without causing loss of data. For
a storage device, this makes sure the device is not busy.
Methods
POST
Parameters
None
Query
None
Response Body
JSONobject
Response Codes
200OK
400Bad Request
Examples
POST /pluggableDevices/sda1/eject
{
"status": "It is now saf e to physically unplug the sda1 device"
}
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |33
Page 38
2.6.4 /pluggableDevices/<NAME>/delete
Delete the specified pluggable device after it has been safely ejected and physically unplugged.
Methods
POST
Parameters
None
Query
None
Response Body
JSONobject
Response Codes
200OK
400Bad Request
Examples
POST /pluggableDevices/ttyUSB1/delete
{
"status": "success. ttyUSB1 deleted"
}
2.7 Authentication
2.7.1 /authentication
Get and set various appliance authentication parameters.
Methods
GET, PUT, PATCH
Parameters
PARAMETERDESCRIPTION
applianceAuthType
singleSignOn
singleSignOnAuthType
Type of authentication to use for granting access to the appliance: dsview_down_local / dsview / dsview|local / ldap_down_
local / ldap/ ldap|local / local / local|radius / local|tacacs+ / otp / otp|local / radius_down_local / radius / radius|local /
tacacs+_down_local/ tacacs+ / tacacs+|local
Enabling single s ign-onuses the specified single sign-on authentication and no further authentication is needed when
access ing a port: enabled/disabled
Authentication to use for single sign-on: unconfigured / dsview_down_local / dsview / dsview|local / ldap_down_local / ldap /
ldap|local / local / local|radius / local|tacacs+ / otp / otp|local / radius_down_local / radius / radius|local / tacacs+_down_
local / tacacs+ / tacacs+|local
Query
Fields are supported for all parameters.
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |34
{
"serialNumber": "0012345678",
"type": "ACS8048 with single power supply",
"bootcode": "1.17",
"firmwar e": "1.3.77.2909+551+28+11",
"bootedFrom": "hardware",
"powerSupply1": "on",
"cpu": "ARMv7 Processor rev 0 (v7l)",
"cores": 2
}
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |45
Page 50
Appendix B: Python
Python examples are included for both http and https that demonstrate how python can be used to
communicate with the RESTful API. These examples run on Python versions 2.7 and 3.5. They require the
python "requests" module be installed on the system running python.
An example can be run as follows:
$ python acsapi_example_http.py
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |46
Page 51
Appendix C: Helper Script
A bash shell helper script is provided in the ACS8000 root filesystem under /usr/share/restapi/restapihelper.sh.
This helper script modifies the environment of the running shell to add GET/PUT/POST/PATCH/DELETE
shell functions. These functions provide a simple command line interface to demonstrate the API. The
shell functions utilize the 'curl' program, which must be installed on the system.
From a bash shell, the script must be "sourced" in order to make the necessary changes to the shell
environment which are shown as SETUP parameters and functions.
When sourcing the script, the last parameter is the IPv4 address of the ACS8000. In the example below,
10.20.30.40 is the ACS IP address.
$. restapi-helper.sh 10.20.30.40
Token for Basic Authentication saved in /home/root/.acsrestapi/Basictoken-127.0.0.1
SETUP parameters:
ACSHOST127.0.0.1
ACSPROTOCOL httphttp
NOTE:A special means for using the helper script is provided when logged into the appliance as a user in
the admin group. The command useapi allows subsequent GET and PUT commands to the logged in
appliance.
ACSPORT8180
ACSTOKENDIR/home/root/.acsrestapi
ACSTOKENTYPBasic (Basic Authentication)
ACSURL/api/v1
ACSDEBUGno
Change your ACSHOST parameter to the ACS IP Address. For example:ACSHOST=192.168.161.10
GET /resource
Example:
GET /serialPorts/2
PUT /resource '{...json parameters...}'
Example:
PUT /serialPorts/2 '{"physical":{"speed":38400}}'
PATCH /resource '{...json parameters...}'
Example:
PATCH /security '{"idleTimeout":0}'
Vertiv | Avocent® ACS800/8000 Advanced Console System APIGuide |47
Page 52
POST /resource '{...json parameters...}'
Example:
POST /sessions/login
'{"username":"admin","password":"avocent"}'
DELETE /resource
Note: These functions automatically prepend
'/acs/v1' to the /resource
After running the helper script, the current shell environment can now execute POST, GET and the other
commands mentioned above:
$ GET /system/info
{
"serialNumber": "001234567",
"type": "ACS8048 with single power supply",
"bootcode": "1.17",
"firmwar e": "1.3.77.2909+551+28+11",
"firmwar eDate": "Sep 20 2017 – 08:03:39",
"bootedFrom": "Hardware",
"powerSupply1": "On",
"cpu": "ARMv7 Processor rev 0 (v7l)",
"cores": 2
}
Appendix D: Certificate Verification
When using HTTPS, in order to avoid certificate verification warnings, the client should be set to ignore
SSL certificate verification.
With the python requests package, this is done by adding "verify=False" to the requests command:
>>> requests.get(URL, verify=False)
With cURL the "-k" option is used to disable certificate verification: