AXP 1.6 Developer Guide
AXP SysInfo API
Downloads: This chapterpdf (PDF - 251.0KB) The complete bookPDF (PDF - 9.62MB) | Feedback

AXP SysInfo API

Table Of Contents

AXP SysInfo API

Overview

Data Model

SysInfoRequest

SysInfoResponse

Description

Java

Java Signatures

Class and Methods

SysInfoRequest

SysInfoResponse

ErrorInfo

ParamListList

ParamList

Param

Java Example

C/C++

C/C++ Signatures

C/C++ Class and Methods

SysInfoRequest

SysInfoResponse

ErrorInfo

ParamListList

ParamList

Param

C/C++ Example

Python

Python Signatures

Class and Static Methods

SysInfoRequest

SysInfoResponse

ErrorInfo

Param

ParamList

ParamListList

Python Examples

Perl

Perl Signatures

Class and Static Methods

ParamList

ParamListList

Perl Example


AXP SysInfo API


Overview

Data Model

Description

Java

C/C++

Python

Perl

Overview

Use the AXP SysInfo API to run selected commands on the router, using an application running in the AXP Reference OS or AXPUDL. For selected commands, see the "Description" section.

Interfaces for Java, C/C++, Perl, and Python are listed below and are similar for both of the System APIs: AXP SysInfo API, and AXP SysOp API. (Both of these APIs share the APIs for Param, ParamList, ParamListList, and ErrorInfo.)

Data Model

The following data is used by the AXP SysInfo API:

SysInfoRequest

SysInfoResponse

SysInfoRequest

The following diagram shows some of the XML data elements that are used by the SysInfo API. Also, refer to the "Appendix I: API Schemas" section on page 340.

Figure 10 SysInfoRequest Data

For further information on the data schemas, refer to the "Appendix I: API Schemas" section on page 340.

Table 59 SysInfoRequest Data

Element
Description

serviceInfo

This element is included in all requests and provides the information common to any type of service

serviceType

Determines if service request is for IOS or AXP. For SysInfoRequest, AXP is the only valid value

serviceRequestor

Name of the virtual interface, set by the system

serviceAddress

IP/hostname of the Cisco IOS router, which is used for IOS serviceType. For AXP 1.5 or higher, the serviceAddress cannot be set

genericSysInfoReq

Details of the response

reqName

Requested service. For example, "swapStatistics", "routerInfo"

subName

Optional further information for service

paramList

Name value pairs (param) holding data for the requested command

param

Name-value pair information—query data for obtaining system information


SysInfoResponse

The following diagram shows a selection of XML data elements that are used by the SysInfo API.
For further information on the data schemas, refer to the "Appendix I: API Schemas" section on page 340.

Figure 11 SysInfoResponse Data

Table 60 SysInfoResponse Elements

Element
Description

errorInfo

errorCode and errorMessage—data is only present when a request is unsuccessful

errorCode

Code representing the cause of failure of the request

errorMessage

Describes the cause of failure of the request

genericSysInfoResp

Details of the response

paramList

List of params (name-value pairs) in the response

param

Name-value pair within the paramList


Description

Use the AXP SysInfo API to obtain the following AXP system information:

Request for routerInfo

Request for swapStatistics

The method of obtaining system information is to first send request information using a SysInfoRequest object. (For example, a request to show the swap statistics.) Then a response is returned in a SysInfoResponse object, which contains values in the paramList.

The following two requests can be made using SysInfoRequest objects: routerInfo (obtain IP address of the router), and swapStatistics (equivalent to the swap statistics CLI command).

Request for routerInfo

Submit a request with reqName = "routerInfo".

The response contains a paramList—one param containing a name-value of "ipAddress" and the
<ip address of the router>.

Request for swapStatistics

Submit a request with reqName = "swapStatistics". The response contains a paramList—three params with name-value amounts of swap space shown in Table 61.

Table 61 paramList values

Name
Value

swapTotal

Total swap space allocated, in KB

swapUsed

Currently used swap space, in KB

swapFree

Available swap space, in KB


Example

The following example, in pseudocode, describes a process that uses the AXP SysInfo API to request "swap statistics".


	get SysInfoRequest
	set request name to 'swapStatistics'
	execute request
	if the response is successful
		get the parameter list of lists
		get the list
		if the list exists
			get the value of the 'swapFree' parameter
			print the value

Java

Java Signatures

Java Example

Java Signatures

Class and Methods

SysInfoRequest

SysInfoResponse

ErrorInfo

ParamListList

ParamList

Param

Class and Methods

Table 62 Java SysInfo API Class and Methods

Method
Description

static SysInfoRequest getSysInfoRequest ()

Returns an instance of the SysInfoRequest object, which is used to perform operation(s) supported by the object for a particular service type.


SysInfoRequest

Table 63 Java SysInfoRequest Methods

Method
Description

SysInfoRequest()

Constructor

void setReqName(String Key)

Sets the requested name from a key string, showing the system request to be executed

Key: swapStatistics—realtime swap statistics of the virtual instance

Key: routerInfo—request router information

void setSubName (SysInfoRequest* sysInfo, char* name)

Sets the optional sub request name for further identification of the request

String getReqName( )

Returns the request name key

String getSubName( )

Returns the sub request name

SysInfoResponse execute( )

Executes the request with a key string specified by setReqName()

Returns instance of SysInfoResponse with data results

Throws ErrorInfo exception

void clrParamListList( )

Clears the current system information in ParamListList

String toString( )

Returns the string representation, in XML format, of the SysInfoRequest object

ParamListList getParamListList( )

Returns a list of ParamLists


SysInfoResponse

Table 64 Java SysInfoResponse Methods

Method
Description

boolean isSuccess( )

Returns:
true—if request successful (SysInfoRequest execute() method)
false—if request unsuccessful (SysInfoRequest execute() method)

ParamListList getParamListList( )

Returns a list of ParamLists

ErrorInfo getErrorInfo ()

Returns error information (sysInfo-response.errorInfo)

String toString( )

Returns the string representation, in XML format, of the SysInfoResponse object


ErrorInfo

ErrorInfo provides access methods for an error structure. The structure is generic across different languages of the AXP SysInfo API.

Table 65 Java ErrorInfo Methods

Method
Description

String getErrorCode()

Returns error code from ErrorInfo

String getErrorMessage()

Returns error message(errorInfo.errorMessage) from ErrorInfo


ParamListList

The following table contains instances of ParamList, and access methods for obtaining a ParamList using an index or key.

Table 66 Java ParamListList Methods

Method
Description

public ParamList newParamList(String sequence)

Creates a ParamList, if one does not already exist, or returns the current ParamList

The ParamList includes a "sequence" (optional), a key for the ParamList

If only one ParamList is required, specify null as the sequence key value

ParamList getParamListAt(int indx)

Returns the ParamList at a position given by an index

ParamList getParamListKey(String sequence)

Returns the ParamList at a position given by a key. If the key is null, returns only one ParamList

int getSize()

Returns an integer giving the number of ParamLists in ParamListList

String toString()

Returns an XML string representation of the ParamListList instance


ParamList

ParamList object contains a list of Param objects. ParamList provides access methods for Param using name as the key.

Table 67 Java ParamList Methods

Method
Description

ParamList(String sequence);

Constructor. The ParamList object contains a list of Param objects. sequence is a key to the ParamList

setSequence(String sequence)

Sets the sequence (key) of the ParamList. If no sequence is required, pass null as the argument

getSequence()

Returns the sequence of the ParamList

void setParam(String name, String value)

Creates an instance of Param if one does not already exist. The Param has name and value, where name is a unique key. (Two Params with the same name are not allowed.)

Param newParam(String name, String value)

Creates an instance of the Param object, consisting of a name and value

String getParamValue(String name)

Returns a Param using name (key)

Param getParamAt(int index)

Returns a Param at the given index position

int getSize()

Returns the number of Param instances in this ParamList

String toString()

Returns an XML string representation of the ParamList


Param

Table 68 Java Param Methods

Method
Description

Param(String name)

Constructor. name is a key

Param(String name, String value)

Constructor. name is a key

String getName()

Returns name of Param

String getValue()

Returns value of Param

void setValue(String val)

Sets value of Param


Java Example


// ---------------------------------------------------------------------
// Get Router IP Address and Swap Statistics and then copy tech support
// files to the specified URL.
//
// Compile application:
// javac -classpath localsocket.jar:axpsystemapi.jar:xercesImpl.jar:. 
SystemInfoExample.java 
//
// Run application:
// java -cp /usr/lib/java/localsocket.jar:
// /usr/lib/java/axpsystemapi.jar:/usr/lib/java/xercesImpl.jar:. SystemInfoExample
//
// ---------------------------------------------------------------------


import com.cisco.aesop.apphosting.serviceapi.*;
import com.cisco.aesop.apphosting.serviceapi.axpsystemapi.*;
import java.io.IOException;

public class SystemInfoExample {

   public static void main(String args[]) {

       //Static call to get SysInfoRequest object.
      SysInfoRequest sysInfo = AxpSystemAPI.getSysInfoRequest();


      /* -----------------------
       * get swap information
       * -----------------------
       */

      try {
	//Get the swap space information
         sysInfo.setReqName("swapStatistics");
	
         SysInfoResponse resp = sysInfo.execute();
	 //Get the list of lists.
         ParamListList listlist = resp.getParamListList();
	 //Get the parameter list for the recent key.
         ParamList list = listlist.getParamListKey(null);
	 //Get the swap data for each supported key.
         String payloadSF = list.getParamValue("swapFree");
         String payloadST = list.getParamValue("swapTotal");
         String payloadSU = list.getParamValue("swapUsed");
         System.out.println("swapFree  is " + payloadSF);
         System.out.println("swapTotal is " + payloadST);
         System.out.println("swapUsed  is " + payloadSU);
      } catch (ErrorInfo err) {
         System.out.println("ErrorInfo.errorCode=" + err.getErrorCode());
         System.out.println("ErrorInfo.errorMsg=" + err.getErrorMessage());
      }


      /* -----------------------
       * get router IP address
       * -----------------------
       */

      try {
         sysInfo.setReqName("routerInfo");
         SysInfoResponse resp = sysInfo.execute();
         ParamListList listlist = resp.getParamListList();
         ParamList list = listlist.getParamListKey(null);
         String ip = list.getParamValue("ipAddress");
         System.out.println("IP Address of the router is " + ip);
      } catch (ErrorInfo err) {
         System.out.println("ErrorInfo.errorCode=" + err.getErrorCode());
         System.out.println("ErrorInfo.errorMsg=" + err.getErrorMessage());
      }

   }
}

C/C++

C/C++ Signatures

C/C++ Example

C/C++ Signatures

C/C++ Class and Methods

SysInfoRequest

SysInfoResponse

ErrorInfo

ParamListList

ParamList

Param

C/C++ Class and Methods

Constants

#define AXP_API_OK              0
#define AXP_API_FAIL            1

Table 69 C/C++ Class Methods

Method
Description

int getSysInfoRequest(SysInfoRequest **sysInfo);

Gets SysInfoRequest object and AXP_API_OK if success. Returns NULL and AXP_API_FAIL if failure


SysInfoRequest

Table 70 C/C++ SysInfoRequest Methods

Method
Description

void setReqName (SysInfoRequest* sysInfo, char* name)

Sets the name (reqName) for the SysInfoRequest. name is a key. name = "swapStatistics" returns real time swap statistics of the virtual instance. name= "routerInfo" returns router's IP address

void setSubName (SysInfoRequest* sysInfo, char* name)

Sets the (optional) name (subName) of the sub request, of this SysInfoRequest

void setSubName (String name)

Sets the (optional) name (subName) of the sub request, of this SysInfoRequest

char* getReqName(SysInfoRequest* sysInfo)

Gets the name (reqName) of the SysInfoRequest

char* getSubName(SysInfoRequest* sysInfo)

Gets the name (subName) of the SysInfoRequest

ParamListList* getParamListList(SysInfoRequest* sysInfo)

Gets the (optional) ParamListList, a list of sysInfo ParamList instances.

void clrParamListList(SysInfoRequest* sysInfo)

Clears the ParamListList

char* toString(SysInfoRequest* sysInfo)

Returns the XML representation of sysInfo (SysInfoRequest)

int execute(SysInfoRequest* req, SysInfoResponse **resp)

Send request, given by req (SysInfoRequest) object, to host. Returns resp (SysInfoResponse)

void destroy(SysInfoRequest* req)

Delete request, given by req(SysInfoRequest) object


SysInfoResponse

Table 71 C/C++ SysInfoResponse Methods

Method
Description

int isSuccess (SysInfoResponse* resp)

Returns:
1—if request successful
0—if request unsuccessful

ParamListList* getParamListList (SysInfoResponse* resp

Returns a list of ParamLists

ErrorInfo* getErrorInfo (SysInfoResponse* resp)

Returns error information (sysInfo-response.errorInfo)

char* toString(SysInfoResponse* resp)

Returns the string representation, in XML format, of the SysInfoResponse object


ErrorInfo

Generic error structure containing an enum code and a detailed text description of the error.


    typedef struct ErrorInfo_ {
        char errorCode[MAX_ERROR_CODE];
        char errorMessage[MAX_ERROR_MESSAGE];
    } ErrorInfo;

ParamListList

Contains a list of ParamList instances and access methods used to obtain a ParamList using an index or key.

Table 72 C/C++ ParamListList Methods

Method
Description

ParamList* newParamList(ParamListList* pll, char* sequence)

Creates a ParamList, if one does not exist. Returns the current ParamList if one already exists.

The ParamList includes a "sequence"(optional), a key for the ParamList

If only one ParamList is required from ParamListList, specify null as the sequence key value

ParamList* getParamListAt(ParamListList* pll, int indx)

Gets the ParamList at a position given by an index

ParamList* getParamListKey(ParamListList* pll, char* sequence)

Gets the ParamList at a position given by a key. If the key is null, returns only one ParamList

int getSize(ParamListList* pll)

Gets the number of ParamLists in ParamListList

char* toString(ParamListList* pll)

Returns a string representation of the ParamListList instance


ParamList

Table 73 C/C++ ParamList Methods

Method
Description

Param* newParam(ParamList* pl, char* name, char* value)

Creates a ParamList object that contains a list of Param objects
name is a key to ParamList

void setParam(ParamList* pl, char* name, char* value)

Creates a Param object, if one does not already exist
name: is a unique key
Two Params with the same name are not allowed

void setSequence(ParamList* pl, char* sequence)

Sets the sequence (key) of ParamList. If no sequence is required, pass null as the argument

char* getSequence(ParamList* pl)

Gets the sequence of ParamList

char* getParamValue(ParamList* pl, char* name);

Gets a Param using name (key)

Param* getParamAt(ParamList* pl, int index)

Gets a Param at a specified index position

int getSize(ParamList* pl)

Gets the number of Param instances in this ParamList

char* toString(ParamList* pl)

Returns a string representation of the ParamList


Param

Table 74 C/C++ Param Methods

Method
Description

char* getName(Param* _param)

Gets name

char* getValue(Param* _param)

Gets value (optional data)


C/C++ Example

In the following example, the SysInfo API is used to obtain swap statistics and the IP address of the router.


// ---------------------------------------------------------------------
// Get Swap Space Info and Router IP Address
//
// Compile:
// gcc -Xlinker -hash-style=sysv -Wall -I/axp-sdk.1.5.0/include -L/axp-sd//k.1.5.0/lib -g 
-ldl -lc -lpthread -lutilserviceapi -llocal_socket -lax//psystemapi -lxerces-c -o 
SystemInfoExample SystemInfoExample.c
//
// Usage:
// Assure library location is known.
// ./SystemInfoExample
// ---------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

#include "AxpServiceAPI.h"
#include "utilServiceAPI.h"

int main (int argc, char *argv[])
{
    SysInfoRequest  *sysInfo = NULL;
    SysInfoResponse *sysResp = NULL;

    //Get SysInfo pointer
    getSysInfoRequest(&sysInfo);


    // ----------------------------------------------
    // Get Swap Space Info
    // ----------------------------------------------

    //Request swap information
    sysInfo->setReqName(sysInfo, "swapStatistics");

    //Execute request
    if (sysInfo->execute(sysInfo, &sysResp) == AXP_API_OK) {

         //Get list containing parameter lists.
         ParamListList *listlist = sysResp->getParamListList(sysResp);

         //Get recently filled parameter list
         ParamList *list = listlist->getParamListKey(listlist, NULL);

         //Get and print value for each parameter.
         printf("swapFree  = %s \n", list->getParamValue(list, "swapFree"));
         printf("swapTotal = %s \n", list->getParamValue(list, "swapTotal"));
         printf("swapUsed  = %s \n", list->getParamValue(list, "swapUsed"));

         //Free memory
         sysResp->destroy(sysResp);
    }


    // ----------------------------------------------
    // Get Router Info.
    // ----------------------------------------------

    sysInfo->setReqName(sysInfo, "routerInfo");

    if (sysInfo->execute(sysInfo, &sysResp) == AXP_API_OK) {
         ParamListList *listlist = sysResp->getParamListList(sysResp);
         ParamList *list = listlist->getParamListKey(listlist, NULL);
         printf("Router IP Address = %s \n", list->getParamValue(list, "ipAddress"));
         sysResp->destroy(sysResp);
    }
    return 0;
}


Python

Python Signatures

Python Examples

Python Signatures

Class and Static Methods

SysInfoRequest

SysInfoResponse

ErrorInfo

Param

ParamList

ParamListList

Class and Static Methods

Table 75 Python Class and Static Methods

Method
Description

def getSysInfoRequest()

Gets SysInfoRequest instance. The SysInfoRequest is used to retrieve AXP system information.


SysInfoRequest

Table 76 Python SysInfoRequest Methods

Method
Description

setReqName (self, reqName)

Sets the name (reqName) for the SysInfoRequest

reqName = "swapStatistics" returns realtime swap statistics of the virtual instance

reqName = "routerInfo" returns router's IP address

setSubName(self, subName)

Sets the (optional) subName—name of the sub request of this SysInfoRequest

getReqName(self)

Gets the reqName of the SysInfoRequest

getSubName(self)

Gets the subName of the SysInfoRequest

getParamListList(self)

Gets the (optional) ParamListList, a list of sysInfo ParamList instances

clrParamListList(self)

Clears the ParamListList

toString(self)

Returns XML representation of sysInfo (SysInfoRequest)

execute(self)

Send request, given by self (instance of SysInfoRequest), to host
Returns SysInfoResponse and ErrorInfo with value = ErrorInfo.errorCode:ErrorInfo.errorMsg


SysInfoResponse

Table 77 Python SysInfoResponse Methods

Method
Description

isSuccess (self)

Gets SysInfoResponse success: 1 success, 0 fail

toString (self)

Gets the XML representation of the SysInfoResponse

getErrorInfo (self)

Gets ErrorInfo


ErrorInfo

ErrorInfo contains an enum code and a detailed text description of the error.

Table 78 Python ErrorInfo Methods

Method
Description

def getErrorCode(self)

Gets an enum error code

def getErrorMessage(self)

Gets a text description of the error


Param

Table 79 Python Param Methods

Method
Description

def getName()

Gets name

def getValue()

Gets value (optional data)


ParamList

Table 80 Python ParamList Methods

Method
Description

newParam(self, name, value)

Creates a Param object with name-value pair

setParam(self, name, value)

Creates a Param object, if one does not already exist

setSequence(self, sequence)

Sets sequence (key)
If no key is needed, pass null as argument

getSequence(self)

Gets sequence (key).

getParamValue(self, name)

Gets param with matching name (key)

getParamAt(self, index)

Gets a Param at the given index position

getSize(self)

Returns an integer giving the number of Param instances in ParamList

toString(self)

Returns an XML representation of the ParamList instance



ParamListList

Contains list of ParamList instances, and access methods used to obtain a ParamList using an index or key.

Table 81 Python ParamListList Methods

Method
Description

newParamList(self, sequence)

Creates a ParamList, if one does not already exist, or returns the current ParamList

The ParamList includes a "sequence" (optional), a key for the ParamList

If only one ParamList is required, specify null as the sequence key value

getParamListAt(self, indx)

Returns the ParamList at a position given by an index

getParamListKey(self, sequence)

Returns the ParamList at a position given by specified sequence (key)
If the specified sequence is null, returns only one ParamList

getSize(self)

Returns an integer giving the number of ParamLists in ParamListList

toString(self)

Returns an XML string representation of ParamListList


Python Examples


#!/usr/bin/env python
#
# ---------------------------------------------------------------------
# Get Swap Space Info and Router IP Address
# ---------------------------------------------------------------------

import __builtin__

import sys
sys.path.append('/usr/lib/python2.4/serviceapi')
sys.path.append('/usr/lib/python2.4/serviceapi/axpsystemapi/')

import AxpSystemAPI
import SysInfoRequest
import SysInfoResponse
import SysOpRequest
import SysOpResponse
import ParamList
import ParamListList

#------------------------------------------
# Get Swap Space Info
#------------------------------------------

sysInfo = AxpSystemAPI.getSysInfoRequest()

sysInfo.setReqName("swapStatistics")
resp = sysInfo.execute()
listlist = resp.getParamListList()
list = listlist.getParamListKey(None)
print "swapFree  is "  + list.getParamValue("swapFree")
print "swapTotal is "  + list.getParamValue("swapTotal")
print "swapUsed  is "  + list.getParamValue("swapUsed")

#------------------------------------------
# Get Router IP address
#------------------------------------------

sysInfo.setReqName("routerInfo");
resp = sysInfo.execute()
listlist = resp.getParamListList()
list = listlist.getParamListKey(None)
print "IP Address is "  + list.getParamValue("ipAddress")


Perl

Information on using the Perl SysInfo API is contained in the following sections.


Note For Perl, the following softlink is required for the AXP SysInfo API:
ln -s libexpat.so libexpat.so.0


Perl Signatures

Perl Example

Perl Signatures

Class and Static Methods

ParamList

ParamListList

Class and Static Methods

Table 82 Perl Class and Static Methods

Method
Description

SysInfoRequest getSysInfoRequest()

Gets SysInfoRequest, or 0 if failure


ParamList

Table 83 Perl ParamList Methods

Method
Description

void setParam(name, value)

Creates Param instance with name-value pair

void setSequence(sequence)

Sets sequence (key). If no key is needed, pass null as argument

void setParam(name, value)

Creates Param, if one does not exist

sequence getSequence()

Gets sequence (key)

value getParamValue(name)

Gets value matching name(key)

Param getParamAt(index)

Gets a Param at the given index position

size getSize()

Gets an integer giving the number of Param instances in ParamList

xmldoc toString()

Gets an XML representation of the ParamList instance


ParamListList

Contains list of ParamList instances, and access methods used to obtain a ParamList using an index or key.

Table 84 Perl ParamListList Methods

Method
Description

newParamList(sequence)

Creates a ParamList, if one does not already exist, or returns the current ParamList

The ParamList includes a "sequence"(optional), a key for the ParamList

If only one ParamList is required, specify null as the sequence key value

getParamListAt(index)

Returns the ParamList at a position given by an index

getParamListKey(sequence)

Returns the ParamList at a position given by specified sequence (key)

getSize()

Returns an integer giving the number of ParamLists in ParamListList

toString()

Returns an XML string representation of ParamListList



Perl Example


#!/usr/bin/perl
#
# ---------------------------------------------------------------------
# Get Swap Space Info and Router IP Address
# ---------------------------------------------------------------------

use serviceapi::ParamList;
use serviceapi::ParamListList;

use serviceapi::axpsystemapi::AxpSystemAPI;
use serviceapi::axpsystemapi::SysInfoRequest;
use serviceapi::axpsystemapi::SysInfoResponse;

use Error qw(:try);

BEGIN {
push @INC, '/usr/lib/perl5/5.8.8/serviceapi/';
push @INC, '/usr/lib/perl5/5.8.8/serviceapi/axpsystemapi/';

#-----------------------------------------------------
# Get Swap Space Information.
#-----------------------------------------------------

my $sysInfo;
$sysInfo = serviceapi::axpsystemapi::AxpSystemAPI->getSysInfoRequest();
$sysInfo->setReqName("swapStatistics");

my $resp = $sysInfo->execute();
my $listlist = $resp->getParamListList();
my $list = $listlist->getParamListKey(undef);
my $payloadSF = $list->getParamValue('swapFree');
my $payloadST = $list->getParamValue('swapTotal');
my $payloadSU = $list->getParamValue('swapUsed');
print "swapFree  = $payloadSF \n";
print "swapTotal = $payloadST \n";
print "swapUsed  = $payloadSU \n";

#-----------------------------------------------------
# Get Router Info.
#-----------------------------------------------------

$sysInfo = serviceapi::axpsystemapi::AxpSystemAPI->getSysInfoRequest();
$sysInfo->setReqName("routerInfo");

my $resp = $sysInfo->execute();
my $listlist = $resp->getParamListList();
my $list = $listlist->getParamListKey(undef);
my $payload = $list->getParamValue('ipAddress');
print "IP Address is $payload \n\n";
}