revert changes
authorTony Mack <tmack@cs.princeton.edu>
Tue, 13 Nov 2007 22:20:53 +0000 (22:20 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Tue, 13 Nov 2007 22:20:53 +0000 (22:20 +0000)
doc/PLCAPI.html

index e69de29..27390a9 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>PlanetLab Central API Documentation</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
+><BODY
+CLASS="book"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="BOOK"
+><A
+NAME="AEN1"
+></A
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="title"
+><A
+NAME="AEN2"
+>PlanetLab Central API Documentation</A
+></H1
+><HR></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+>1. <A
+HREF="#Introduction"
+>Introduction</A
+></DT
+><DD
+><DL
+><DT
+>1.1. <A
+HREF="#Authentication"
+>Authentication</A
+></DT
+><DT
+>1.2. <A
+HREF="#Roles"
+>Roles</A
+></DT
+><DT
+>1.3. <A
+HREF="#Filters"
+>Filters</A
+></DT
+><DT
+>1.4. <A
+HREF="#AEN91"
+>PlanetLab shell</A
+></DT
+></DL
+></DD
+><DT
+>2. <A
+HREF="#Methods"
+>PlanetLab API Methods</A
+></DT
+><DD
+><DL
+><DT
+>2.1. <A
+HREF="#AddAddressType"
+>AddAddressType</A
+></DT
+><DT
+>2.2. <A
+HREF="#AddAddressTypeToAddress"
+>AddAddressTypeToAddress</A
+></DT
+><DT
+>2.3. <A
+HREF="#AddBootState"
+>AddBootState</A
+></DT
+><DT
+>2.4. <A
+HREF="#AddConfFile"
+>AddConfFile</A
+></DT
+><DT
+>2.5. <A
+HREF="#AddConfFileToNodeGroup"
+>AddConfFileToNodeGroup</A
+></DT
+><DT
+>2.6. <A
+HREF="#AddConfFileToNode"
+>AddConfFileToNode</A
+></DT
+><DT
+>2.7. <A
+HREF="#AddKeyType"
+>AddKeyType</A
+></DT
+><DT
+>2.8. <A
+HREF="#AddMessage"
+>AddMessage</A
+></DT
+><DT
+>2.9. <A
+HREF="#AddNetworkMethod"
+>AddNetworkMethod</A
+></DT
+><DT
+>2.10. <A
+HREF="#AddNetworkType"
+>AddNetworkType</A
+></DT
+><DT
+>2.11. <A
+HREF="#AddNodeGroup"
+>AddNodeGroup</A
+></DT
+><DT
+>2.12. <A
+HREF="#AddNodeNetwork"
+>AddNodeNetwork</A
+></DT
+><DT
+>2.13. <A
+HREF="#AddNode"
+>AddNode</A
+></DT
+><DT
+>2.14. <A
+HREF="#AddNodeToNodeGroup"
+>AddNodeToNodeGroup</A
+></DT
+><DT
+>2.15. <A
+HREF="#AddNodeToPCU"
+>AddNodeToPCU</A
+></DT
+><DT
+>2.16. <A
+HREF="#AddPCU"
+>AddPCU</A
+></DT
+><DT
+>2.17. <A
+HREF="#AddPeer"
+>AddPeer</A
+></DT
+><DT
+>2.18. <A
+HREF="#AddPersonKey"
+>AddPersonKey</A
+></DT
+><DT
+>2.19. <A
+HREF="#AddPerson"
+>AddPerson</A
+></DT
+><DT
+>2.20. <A
+HREF="#AddPersonToSite"
+>AddPersonToSite</A
+></DT
+><DT
+>2.21. <A
+HREF="#AddPersonToSlice"
+>AddPersonToSlice</A
+></DT
+><DT
+>2.22. <A
+HREF="#AddRole"
+>AddRole</A
+></DT
+><DT
+>2.23. <A
+HREF="#AddRoleToPerson"
+>AddRoleToPerson</A
+></DT
+><DT
+>2.24. <A
+HREF="#AddSiteAddress"
+>AddSiteAddress</A
+></DT
+><DT
+>2.25. <A
+HREF="#AddSite"
+>AddSite</A
+></DT
+><DT
+>2.26. <A
+HREF="#AddSliceAttribute"
+>AddSliceAttribute</A
+></DT
+><DT
+>2.27. <A
+HREF="#AddSliceAttributeType"
+>AddSliceAttributeType</A
+></DT
+><DT
+>2.28. <A
+HREF="#AddSliceInstantiation"
+>AddSliceInstantiation</A
+></DT
+><DT
+>2.29. <A
+HREF="#AddSlice"
+>AddSlice</A
+></DT
+><DT
+>2.30. <A
+HREF="#AddSliceToNodes"
+>AddSliceToNodes</A
+></DT
+><DT
+>2.31. <A
+HREF="#AuthCheck"
+>AuthCheck</A
+></DT
+><DT
+>2.32. <A
+HREF="#BlacklistKey"
+>BlacklistKey</A
+></DT
+><DT
+>2.33. <A
+HREF="#BootGetNodeDetails"
+>BootGetNodeDetails</A
+></DT
+><DT
+>2.34. <A
+HREF="#BootNotifyOwners"
+>BootNotifyOwners</A
+></DT
+><DT
+>2.35. <A
+HREF="#BootUpdateNode"
+>BootUpdateNode</A
+></DT
+><DT
+>2.36. <A
+HREF="#DeleteAddress"
+>DeleteAddress</A
+></DT
+><DT
+>2.37. <A
+HREF="#DeleteAddressTypeFromAddress"
+>DeleteAddressTypeFromAddress</A
+></DT
+><DT
+>2.38. <A
+HREF="#DeleteAddressType"
+>DeleteAddressType</A
+></DT
+><DT
+>2.39. <A
+HREF="#DeleteBootState"
+>DeleteBootState</A
+></DT
+><DT
+>2.40. <A
+HREF="#DeleteConfFileFromNodeGroup"
+>DeleteConfFileFromNodeGroup</A
+></DT
+><DT
+>2.41. <A
+HREF="#DeleteConfFileFromNode"
+>DeleteConfFileFromNode</A
+></DT
+><DT
+>2.42. <A
+HREF="#DeleteConfFile"
+>DeleteConfFile</A
+></DT
+><DT
+>2.43. <A
+HREF="#DeleteKey"
+>DeleteKey</A
+></DT
+><DT
+>2.44. <A
+HREF="#DeleteKeyType"
+>DeleteKeyType</A
+></DT
+><DT
+>2.45. <A
+HREF="#DeleteMessage"
+>DeleteMessage</A
+></DT
+><DT
+>2.46. <A
+HREF="#DeleteNetworkMethod"
+>DeleteNetworkMethod</A
+></DT
+><DT
+>2.47. <A
+HREF="#DeleteNetworkType"
+>DeleteNetworkType</A
+></DT
+><DT
+>2.48. <A
+HREF="#DeleteNodeFromNodeGroup"
+>DeleteNodeFromNodeGroup</A
+></DT
+><DT
+>2.49. <A
+HREF="#DeleteNodeFromPCU"
+>DeleteNodeFromPCU</A
+></DT
+><DT
+>2.50. <A
+HREF="#DeleteNodeGroup"
+>DeleteNodeGroup</A
+></DT
+><DT
+>2.51. <A
+HREF="#DeleteNodeNetwork"
+>DeleteNodeNetwork</A
+></DT
+><DT
+>2.52. <A
+HREF="#DeleteNode"
+>DeleteNode</A
+></DT
+><DT
+>2.53. <A
+HREF="#DeletePCU"
+>DeletePCU</A
+></DT
+><DT
+>2.54. <A
+HREF="#DeletePeer"
+>DeletePeer</A
+></DT
+><DT
+>2.55. <A
+HREF="#DeletePersonFromSite"
+>DeletePersonFromSite</A
+></DT
+><DT
+>2.56. <A
+HREF="#DeletePersonFromSlice"
+>DeletePersonFromSlice</A
+></DT
+><DT
+>2.57. <A
+HREF="#DeletePerson"
+>DeletePerson</A
+></DT
+><DT
+>2.58. <A
+HREF="#DeleteRoleFromPerson"
+>DeleteRoleFromPerson</A
+></DT
+><DT
+>2.59. <A
+HREF="#DeleteRole"
+>DeleteRole</A
+></DT
+><DT
+>2.60. <A
+HREF="#DeleteSession"
+>DeleteSession</A
+></DT
+><DT
+>2.61. <A
+HREF="#DeleteSite"
+>DeleteSite</A
+></DT
+><DT
+>2.62. <A
+HREF="#DeleteSliceAttribute"
+>DeleteSliceAttribute</A
+></DT
+><DT
+>2.63. <A
+HREF="#DeleteSliceAttributeType"
+>DeleteSliceAttributeType</A
+></DT
+><DT
+>2.64. <A
+HREF="#DeleteSliceFromNodes"
+>DeleteSliceFromNodes</A
+></DT
+><DT
+>2.65. <A
+HREF="#DeleteSliceInstantiation"
+>DeleteSliceInstantiation</A
+></DT
+><DT
+>2.66. <A
+HREF="#DeleteSlice"
+>DeleteSlice</A
+></DT
+><DT
+>2.67. <A
+HREF="#GetAddresses"
+>GetAddresses</A
+></DT
+><DT
+>2.68. <A
+HREF="#GetAddressTypes"
+>GetAddressTypes</A
+></DT
+><DT
+>2.69. <A
+HREF="#GetBootStates"
+>GetBootStates</A
+></DT
+><DT
+>2.70. <A
+HREF="#GetConfFiles"
+>GetConfFiles</A
+></DT
+><DT
+>2.71. <A
+HREF="#GetEvents"
+>GetEvents</A
+></DT
+><DT
+>2.72. <A
+HREF="#GetKeys"
+>GetKeys</A
+></DT
+><DT
+>2.73. <A
+HREF="#GetKeyTypes"
+>GetKeyTypes</A
+></DT
+><DT
+>2.74. <A
+HREF="#GetMessages"
+>GetMessages</A
+></DT
+><DT
+>2.75. <A
+HREF="#GetNetworkMethods"
+>GetNetworkMethods</A
+></DT
+><DT
+>2.76. <A
+HREF="#GetNetworkTypes"
+>GetNetworkTypes</A
+></DT
+><DT
+>2.77. <A
+HREF="#GetNodeGroups"
+>GetNodeGroups</A
+></DT
+><DT
+>2.78. <A
+HREF="#GetNodeNetworks"
+>GetNodeNetworks</A
+></DT
+><DT
+>2.79. <A
+HREF="#GetNodes"
+>GetNodes</A
+></DT
+><DT
+>2.80. <A
+HREF="#GetPCUs"
+>GetPCUs</A
+></DT
+><DT
+>2.81. <A
+HREF="#GetPeerData"
+>GetPeerData</A
+></DT
+><DT
+>2.82. <A
+HREF="#GetPeerName"
+>GetPeerName</A
+></DT
+><DT
+>2.83. <A
+HREF="#GetPeers"
+>GetPeers</A
+></DT
+><DT
+>2.84. <A
+HREF="#GetPersons"
+>GetPersons</A
+></DT
+><DT
+>2.85. <A
+HREF="#GetRoles"
+>GetRoles</A
+></DT
+><DT
+>2.86. <A
+HREF="#GetSession"
+>GetSession</A
+></DT
+><DT
+>2.87. <A
+HREF="#GetSites"
+>GetSites</A
+></DT
+><DT
+>2.88. <A
+HREF="#GetSliceAttributes"
+>GetSliceAttributes</A
+></DT
+><DT
+>2.89. <A
+HREF="#GetSliceAttributeTypes"
+>GetSliceAttributeTypes</A
+></DT
+><DT
+>2.90. <A
+HREF="#GetSliceInstantiations"
+>GetSliceInstantiations</A
+></DT
+><DT
+>2.91. <A
+HREF="#GetSlices"
+>GetSlices</A
+></DT
+><DT
+>2.92. <A
+HREF="#GetSliceTicket"
+>GetSliceTicket</A
+></DT
+><DT
+>2.93. <A
+HREF="#GetSlivers"
+>GetSlivers</A
+></DT
+><DT
+>2.94. <A
+HREF="#NotifyPersons"
+>NotifyPersons</A
+></DT
+><DT
+>2.95. <A
+HREF="#RebootNode"
+>RebootNode</A
+></DT
+><DT
+>2.96. <A
+HREF="#RefreshPeer"
+>RefreshPeer</A
+></DT
+><DT
+>2.97. <A
+HREF="#ResetPassword"
+>ResetPassword</A
+></DT
+><DT
+>2.98. <A
+HREF="#SetPersonPrimarySite"
+>SetPersonPrimarySite</A
+></DT
+><DT
+>2.99. <A
+HREF="#UpdateAddress"
+>UpdateAddress</A
+></DT
+><DT
+>2.100. <A
+HREF="#UpdateAddressType"
+>UpdateAddressType</A
+></DT
+><DT
+>2.101. <A
+HREF="#UpdateConfFile"
+>UpdateConfFile</A
+></DT
+><DT
+>2.102. <A
+HREF="#UpdateKey"
+>UpdateKey</A
+></DT
+><DT
+>2.103. <A
+HREF="#UpdateMessage"
+>UpdateMessage</A
+></DT
+><DT
+>2.104. <A
+HREF="#UpdateNodeGroup"
+>UpdateNodeGroup</A
+></DT
+><DT
+>2.105. <A
+HREF="#UpdateNodeNetwork"
+>UpdateNodeNetwork</A
+></DT
+><DT
+>2.106. <A
+HREF="#UpdateNode"
+>UpdateNode</A
+></DT
+><DT
+>2.107. <A
+HREF="#UpdatePCU"
+>UpdatePCU</A
+></DT
+><DT
+>2.108. <A
+HREF="#UpdatePeer"
+>UpdatePeer</A
+></DT
+><DT
+>2.109. <A
+HREF="#UpdatePerson"
+>UpdatePerson</A
+></DT
+><DT
+>2.110. <A
+HREF="#UpdateSite"
+>UpdateSite</A
+></DT
+><DT
+>2.111. <A
+HREF="#UpdateSliceAttribute"
+>UpdateSliceAttribute</A
+></DT
+><DT
+>2.112. <A
+HREF="#UpdateSliceAttributeType"
+>UpdateSliceAttributeType</A
+></DT
+><DT
+>2.113. <A
+HREF="#UpdateSlice"
+>UpdateSlice</A
+></DT
+><DT
+>2.114. <A
+HREF="#VerifyPerson"
+>VerifyPerson</A
+></DT
+><DT
+>2.115. <A
+HREF="#system.listMethods"
+>system.listMethods</A
+></DT
+><DT
+>2.116. <A
+HREF="#system.methodHelp"
+>system.methodHelp</A
+></DT
+><DT
+>2.117. <A
+HREF="#system.methodSignature"
+>system.methodSignature</A
+></DT
+><DT
+>2.118. <A
+HREF="#system.multicall"
+>system.multicall</A
+></DT
+></DL
+></DD
+></DL
+></DIV
+><DIV
+CLASS="chapter"
+><HR><H1
+><A
+NAME="Introduction"
+></A
+>Chapter 1. Introduction</H1
+><P
+>The PlanetLab Central API (PLCAPI) is the interface through
+    which the PlanetLab Central database should be accessed and
+    maintained. The API is used by the website, by nodes, by automated
+    scripts, and by users to access and update information about
+    users, nodes, sites, slices, and other entities maintained by the
+    database.</P
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="Authentication"
+>1.1. Authentication</A
+></H2
+><P
+>The API should be accessed via XML-RPC over HTTPS. The API
+      supports the standard introspection calls <A
+HREF="#system.listMethods"
+>system.listMethods</A
+>, <A
+HREF="#system.methodSignature"
+>system.methodSignature</A
+>,
+      and <A
+HREF="#system.methodHelp"
+>system.methodHelp</A
+>,
+      and the standard batching call <A
+HREF="#system.multicall"
+>system.multicall</A
+>. With the
+      exception of these calls, all PLCAPI calls take an
+      authentication structure as their first argument. All
+      authentication structures require the specification of
+      <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>. If the documentation for a
+      call does not further specify the authentication structure, then
+      any of (but only) the following authentication structures may be
+      used:</P
+><P
+></P
+><UL
+><LI
+><P
+>Session authentication. User sessions are typically
+         valid for 24 hours. Node sessions are valid until the next
+         reboot. Obtain a session key with <A
+HREF="#GetSession"
+>GetSession</A
+> using another form of
+         authentication, such as password or GnuPG
+         authentication.</P
+><DIV
+CLASS="informaltable"
+><P
+></P
+><A
+NAME="AEN19"
+></A
+><TABLE
+BORDER="0"
+FRAME="void"
+CLASS="CALSTABLE"
+><COL><COL><COL><TBODY
+><TR
+><TD
+>AuthMethod</TD
+><TD
+><TT
+CLASS="literal"
+>session</TT
+></TD
+><TD
+>&nbsp;</TD
+></TR
+><TR
+><TD
+>session</TD
+><TD
+>Session key</TD
+><TD
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></LI
+><LI
+><P
+>Password authentication.</P
+><DIV
+CLASS="informaltable"
+><P
+></P
+><A
+NAME="AEN31"
+></A
+><TABLE
+BORDER="0"
+FRAME="void"
+CLASS="CALSTABLE"
+><COL><COL><COL><TBODY
+><TR
+><TD
+>AuthMethod</TD
+><TD
+><TT
+CLASS="literal"
+>password</TT
+></TD
+><TD
+>&nbsp;</TD
+></TR
+><TR
+><TD
+>Username</TD
+><TD
+>Username, typically an e-mail address</TD
+><TD
+>&nbsp;</TD
+></TR
+><TR
+><TD
+>AuthString</TD
+><TD
+>Authentication string, typically a password</TD
+><TD
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></LI
+><LI
+><P
+>GnuPG authentication. Users may upload a GPG public key
+         using <A
+HREF="#AddPersonKey"
+>AddPersonKey</A
+>. Peer
+         GPG keys should be added with <A
+HREF="#AddPeer"
+>AddPeer</A
+> or <A
+HREF="#UpdatePeer"
+>UpdatePeer</A
+>.
+         </P
+><DIV
+CLASS="informaltable"
+><P
+></P
+><A
+NAME="AEN49"
+></A
+><TABLE
+BORDER="0"
+FRAME="void"
+CLASS="CALSTABLE"
+><COL><COL><COL><TBODY
+><TR
+><TD
+>AuthMethod</TD
+><TD
+><TT
+CLASS="literal"
+>gpg</TT
+></TD
+><TD
+>&nbsp;</TD
+></TR
+><TR
+><TD
+>name</TD
+><TD
+>Peer or user name</TD
+><TD
+>&nbsp;</TD
+></TR
+><TR
+><TD
+>signature</TD
+><TD
+>GnuPG signature of
+               the <A
+HREF="http://www.w3.org/TR/xml-c14n"
+TARGET="_top"
+>canonicalized</A
+>
+               <A
+HREF="http://www.xmlrpc.com/spec"
+TARGET="_top"
+>XML-RPC</A
+>
+               representation of the rest of the arguments to the
+               call.</TD
+><TD
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></LI
+><LI
+><P
+>Anonymous authentication.</P
+><DIV
+CLASS="informaltable"
+><P
+></P
+><A
+NAME="AEN66"
+></A
+><TABLE
+BORDER="0"
+FRAME="void"
+CLASS="CALSTABLE"
+><COL><COL><COL><TBODY
+><TR
+><TD
+>AuthMethod</TD
+><TD
+><TT
+CLASS="literal"
+>anonymous</TT
+></TD
+><TD
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="Roles"
+>1.2. Roles</A
+></H2
+><P
+>Some functions may only be called by users with certain
+      roles (see <A
+HREF="#GetRoles"
+>GetRoles</A
+>), and others
+      may return different information to different callers depending
+      on the role(s) of the caller.</P
+><P
+>The <TT
+CLASS="literal"
+>node</TT
+> and
+      <TT
+CLASS="literal"
+>anonymous</TT
+> roles are pseudo-roles. A function
+      that allows the <TT
+CLASS="literal"
+>node</TT
+> role may be called by
+      automated scripts running on a node, such as the Boot and Node
+      Managers. A function that allows the
+      <TT
+CLASS="literal"
+>anonymous</TT
+> role may be called by anyone; an
+      API authentication structure must still be specified (see <A
+HREF="#Authentication"
+>Section 1.1</A
+>).</P
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="Filters"
+>1.3. Filters</A
+></H2
+><P
+>Most of the <CODE
+CLASS="function"
+>Get</CODE
+> functions take a
+      filter argument. Filters may be arrays of integer (and sometimes
+      string) identifiers, or a struct representing a filter on the
+      attributes of the entities being queried. For example,</P
+><PRE
+CLASS="programlisting"
+>&#13;# plcsh code fragment (see below)
+GetNodes([1,2,3])
+GetNodes({'node_id': [1,2,3]})
+GetNodes({'node_id': 1}) + GetNodes({'node_id': 2}) + GetNodes({'node_id': 3})
+</PRE
+><P
+>Would all be equivalent queries. Attributes that are
+      themselves arrays (such as <TT
+CLASS="literal"
+>nodenetwork_ids</TT
+>
+      and <TT
+CLASS="literal"
+>slice_ids</TT
+> for nodes) cannot be used in
+      filters.</P
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AEN91"
+>1.4. PlanetLab shell</A
+></H2
+><P
+>A command-line program called <B
+CLASS="command"
+>plcsh</B
+>
+      simplifies authentication structure handling, and is useful for
+      scripting. This program is distributed as a Linux RPM called
+      PLCAPI and requires Python &#8805;2.4.</P
+><PRE
+CLASS="programlisting"
+>&#13;usage: plcsh [options]
+
+options:
+  -f CONFIG, --config=CONFIG
+                        PLC configuration file
+  -h URL, --url=URL     API URL
+  -c CACERT, --cacert=CACERT
+                        API SSL certificate
+  -k INSECURE, --insecure=INSECURE
+                        Do not check SSL certificate
+  -m METHOD, --method=METHOD
+                        API authentication method
+  -s SESSION, --session=SESSION
+                        API session key
+  -u USER, --user=USER  API user name
+  -p PASSWORD, --password=PASSWORD
+                        API password
+  -r ROLE, --role=ROLE  API role
+  -x, --xmlrpc          Use XML-RPC interface
+  --help                show this help message and exit
+      </PRE
+><P
+>Specify at least the API URL and your user name:</P
+><PRE
+CLASS="programlisting"
+>&#13;plcsh --url https://www.planet-lab.org/PLCAPI/ -u user@site.edu
+      </PRE
+><P
+>You will be presented with a prompt. From here, you can
+      invoke API calls and omit the authentication structure, as it will
+      be filled in automatically.</P
+><PRE
+CLASS="programlisting"
+>&#13;user@site.edu connected using password authentication
+Type "system.listMethods()" or "help(method)" for more information.
+[user@site.edu]&#62;&#62;&#62; AuthCheck()
+1
+[user@site.edu]&#62;&#62;&#62; GetNodes([121], ['node_id', 'hostname'])
+[{'node_id': 121, 'hostname': 'planetlab-1.cs.princeton.edu'}]
+      </PRE
+><P
+>As this program is actually a Python interpreter, you may
+      create variables, execute for loops, import other packages, etc.,
+      directly on the command line as you would using the regular Python
+      shell.</P
+><P
+>To use <B
+CLASS="command"
+>plcsh</B
+> programmatically, import
+      the <CODE
+CLASS="function"
+>PLC.Shell</CODE
+> module:</P
+><PRE
+CLASS="programlisting"
+>&#13;#!/usr/bin/python
+
+import sys
+
+# Default location that the PLCAPI RPM installs the PLC class
+sys.path.append('/usr/share/plc_api')
+
+# Initialize shell environment. Shell() will define all PLCAPI methods
+# in the specified namespace (specifying globals() will define them
+# globally).
+from PLC.Shell import Shell
+plc = Shell(globals(),
+            url = "https://www.planet-lab.org/PLCAPI/",
+            user = "user@site.edu",
+            password = "password")
+
+# Both are equivalent
+nodes = GetNodes([121], ['node_id', 'hostname'])
+nodes = plc.GetNodes([121], ['node_id', 'hostname'])
+      </PRE
+></DIV
+></DIV
+><DIV
+CLASS="chapter"
+><HR><H1
+><A
+NAME="Methods"
+></A
+>Chapter 2. PlanetLab API Methods</H1
+><P
+></P
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddAddressType"
+>2.1. AddAddressType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN111"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddAddressType (auth, address_type_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN114"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new address type. Fields specified in address_type_fields
+are used.</P
+><P
+>Returns the new address_type_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN118"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Address type                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Address type description                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New address_type_id (&#62; 0) if successful                 </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddAddressTypeToAddress"
+>2.2. AddAddressTypeToAddress</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN146"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddAddressTypeToAddress (auth, address_type_id_or_name, address_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN149"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds an address type to the specified address.</P
+><P
+>PIs may only update addresses of their own sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN154"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Address type                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_id</CODE
+>
+: int, Address identifier                      </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddBootState"
+>2.3. AddBootState</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN183"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddBootState (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN186"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new node boot state.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN190"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Boot state                   </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddConfFile"
+>2.4. AddConfFile</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN211"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddConfFile (auth, conf_file_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN214"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new node configuration file. Any fields specified in
+conf_file_fields are used, otherwise defaults are used.</P
+><P
+>Returns the new conf_file_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN218"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_owner</CODE
+>
+: string, chown(1) owner                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>postinstall_cmd</CODE
+>
+: string, Shell command to execute after installing                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>error_cmd</CODE
+>
+: string, Shell command to execute if any error occurs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>preinstall_cmd</CODE
+>
+: string, Shell command to execute prior to installing                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dest</CODE
+>
+: string, Absolute path where file should be installed                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ignore_cmd_errors</CODE
+>
+: boolean, Install file anyway even if an error occurs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Configuration file is active                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_permissions</CODE
+>
+: string, chmod(1) permissions                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>source</CODE
+>
+: string, Relative path on the boot server where file can be downloaded                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>always_update</CODE
+>
+: boolean, Always attempt to install file even if unchanged                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_group</CODE
+>
+: string, chgrp(1) owner                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New conf_file_id (&#62; 0) if successful                    </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddConfFileToNodeGroup"
+>2.5. AddConfFileToNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN273"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddConfFileToNodeGroup (auth, conf_file_id, nodegroup_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN276"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a configuration file to the specified node group. If the node
+group is already linked to the configuration file, no errors are
+returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN280"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddConfFileToNode"
+>2.6. AddConfFileToNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN309"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddConfFileToNode (auth, conf_file_id, node_id_or_hostname)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN312"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a configuration file to the specified node. If the node is
+already linked to the configuration file, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN316"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddKeyType"
+>2.7. AddKeyType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN345"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddKeyType (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN348"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new key type.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN352"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Key type                     </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddMessage"
+>2.8. AddMessage</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN373"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddMessage (auth, message_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN376"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new message template. Any values specified in
+message_fields are used, otherwise defaults are used.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN380"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>message_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Message is enabled                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>message_id</CODE
+>
+: string, Message identifier                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>template</CODE
+>
+: string, Message template                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>subject</CODE
+>
+: string, Message summary                                      </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNetworkMethod"
+>2.9. AddNetworkMethod</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN414"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNetworkMethod (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN417"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new network method.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN421"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Network method                       </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNetworkType"
+>2.10. AddNetworkType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN442"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNetworkType (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN445"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new network type.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN449"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Network type                 </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNodeGroup"
+>2.11. AddNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN470"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNodeGroup (auth, nodegroup_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN473"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new node group. Any values specified in nodegroup_fields
+are used, otherwise defaults are used.</P
+><P
+>Returns the new nodegroup_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN477"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Node group name                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Node group description                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New nodegroup_id (&#62; 0) if successful                    </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNodeNetwork"
+>2.12. AddNodeNetwork</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN505"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNodeNetwork (auth, node_id_or_hostname, nodenetwork_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN508"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new network for a node. Any values specified in
+nodenetwork_fields are used, otherwise defaults are
+used. Acceptable values for method may be retrieved via
+GetNetworkMethods. Acceptable values for type may be retrieved via
+GetNetworkTypes.</P
+><P
+>If type is static, ip, gateway, network, broadcast, netmask, and
+dns1 must all be specified in nodenetwork_fields. If type is dhcp,
+these parameters, even if specified, are ignored.</P
+><P
+>PIs and techs may only add networks to their own nodes. Admins may
+add networks to any node.</P
+><P
+>Returns the new nodenetwork_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN514"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodenetwork_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string, Subnet address                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>is_primary</CODE
+>
+: boolean, Is the primary interface for this node                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string, IP address of primary DNS server                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, (Optional) Hostname                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string, MAC address                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>bwlimit</CODE
+>
+: int, Bandwidth limit                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string, Network broadcast address                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Addressing method (e.g., 'static' or 'dhcp')                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string, Subnet mask                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string, IP address of secondary DNS server                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, IP address                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>type</CODE
+>
+: string, Address type (e.g., 'ipv4')                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string, IP address of primary gateway                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New nodenetwork_id (&#62; 0) if successful                  </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNode"
+>2.13. AddNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN583"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNode (auth, site_id_or_login_base, node_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN586"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new node. Any values specified in node_fields are used,
+otherwise defaults are used.</P
+><P
+>PIs and techs may only add nodes to their own sites. Admins may
+add nodes to any site.</P
+><P
+>Returns the new node_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN591"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_state</CODE
+>
+: string, Boot state                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, Make and model of the actual machine                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>version</CODE
+>
+: string, Apparent Boot CD version                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, Fully qualified hostname                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New node_id (&#62; 0) if successful                 </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNodeToNodeGroup"
+>2.14. AddNodeToNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN633"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNodeToNodeGroup (auth, node_id_or_hostname, nodegroup_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN636"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Add a node to the specified node group. If the node is
+already a member of the nodegroup, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN640"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddNodeToPCU"
+>2.15. AddNodeToPCU</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN674"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddNodeToPCU (auth, node_id_or_hostname, pcu_id, port)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN677"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a node to a port on a PCU. Faults if the node has already
+been added to the PCU or if the port is already in use.</P
+><P
+>Non-admins may only update PCUs at their sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN682"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_id</CODE
+>
+: int, PCU identifier                  </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>port</CODE
+>
+: int, PCU port number                 </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddPCU"
+>2.16. AddPCU</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN714"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddPCU (auth, site_id_or_login_base, pcu_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN717"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new power control unit (PCU) to the specified site. Any
+fields specified in pcu_fields are used, otherwise defaults are
+used.</P
+><P
+>PIs and technical contacts may only add PCUs to their own sites.</P
+><P
+>Returns the new pcu_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN722"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>username</CODE
+>
+: string, PCU username                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>protocol</CODE
+>
+: string, PCU protocol, e.g. ssh, https, telnet                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, PCU IP address                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>notes</CODE
+>
+: string, Miscellaneous notes                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, PCU hostname                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, PCU model string                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string, PCU username                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New pcu_id (&#62; 0) if successful                  </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddPeer"
+>2.17. AddPeer</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN773"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddPeer (auth, peer_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN776"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new peer.</P
+><P
+>Returns the new peer_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN780"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>peer_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Peer GPG public key                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>cacert</CODE
+>
+: string, Peer SSL public certificate                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peername</CODE
+>
+: string, Peer name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_url</CODE
+>
+: string, Peer API URL                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New peer_id (&#62; 0) if successful                 </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddPersonKey"
+>2.18. AddPersonKey</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN814"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddPersonKey (auth, person_id_or_email, key_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN817"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new key to the specified account.</P
+><P
+>Non-admins can only modify their own keys.</P
+><P
+>Returns the new key_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN822"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>key_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key_type</CODE
+>
+: string, Key type                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Key value                                    </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New key_id (&#62; 0) if successful                  </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddPerson"
+>2.19. AddPerson</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN858"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddPerson (auth, person_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN861"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new account. Any fields specified in person_fields are
+used, otherwise defaults are used.</P
+><P
+>Accounts are disabled by default. To enable an account, use
+UpdatePerson().</P
+><P
+>Returns the new person_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN866"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>bio</CODE
+>
+: string, Biography                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>first_name</CODE
+>
+: string, Given name                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>last_name</CODE
+>
+: string, Surname                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>title</CODE
+>
+: string, Title                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, Home page                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>phone</CODE
+>
+: string, Telephone number                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string, Account password in crypt() form                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>email</CODE
+>
+: string, Primary e-mail address                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New person_id (&#62; 0) if successful                       </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddPersonToSite"
+>2.20. AddPersonToSite</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN912"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddPersonToSite (auth, person_id_or_email, site_id_or_login_base)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN915"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds the specified person to the specified site. If the person is
+already a member of the site, no errors are returned. Does not
+change the person's primary site.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN919"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddPersonToSlice"
+>2.21. AddPersonToSlice</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN953"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddPersonToSlice (auth, person_id_or_email, slice_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN956"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds the specified person to the specified slice. If the person is
+already a member of the slice, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN960"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddRole"
+>2.22. AddRole</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN994"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddRole (auth, role_id, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN997"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new role.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1001"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>role_id</CODE
+>
+: int, Role identifier                 </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Role                 </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddRoleToPerson"
+>2.23. AddRoleToPerson</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1025"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddRoleToPerson (auth, role_id_or_name, person_id_or_email)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1028"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Grants the specified role to the person.</P
+><P
+>PIs can only grant the tech and user roles to users and techs at
+their sites. Admins can grant any role to any user.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1033"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>role_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Role identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Role                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSiteAddress"
+>2.24. AddSiteAddress</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1067"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSiteAddress (auth, site_id_or_login_base, address_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1070"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new address to a site. Fields specified in
+address_fields are used; some are not optional.</P
+><P
+>PIs may only add addresses to their own sites.</P
+><P
+>Returns the new address_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1075"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>city</CODE
+>
+: string, City                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>country</CODE
+>
+: string, Country                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line3</CODE
+>
+: string, Address line 3                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line2</CODE
+>
+: string, Address line 2                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line1</CODE
+>
+: string, Address line 1                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>state</CODE
+>
+: string, State or province                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>postalcode</CODE
+>
+: string, Postal code                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New address_id (&#62; 0) if successful                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSite"
+>2.25. AddSite</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1126"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSite (auth, site_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1129"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new site, and creates a node group for that site. Any
+fields specified in site_fields are used, otherwise defaults are
+used.</P
+><P
+>Returns the new site_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1133"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Full site name                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, URL of a page that describes the site                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Has been enabled                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>longitude</CODE
+>
+: double, Decimal longitude of the site                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>latitude</CODE
+>
+: double, Decimal latitude of the site                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_slices</CODE
+>
+: int, Maximum number of slices that the site is able to create                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>login_base</CODE
+>
+: string, Site slice prefix                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_slivers</CODE
+>
+: int, Maximum number of slivers that the site is able to create                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>is_public</CODE
+>
+: boolean, Publicly viewable site                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>abbreviated_name</CODE
+>
+: string, Abbreviated site name                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New site_id (&#62; 0) if successful                 </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSliceAttribute"
+>2.26. AddSliceAttribute</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1185"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSliceAttribute (auth, slice_id_or_name, attribute_type_id_or_name, value, node_id_or_hostname)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1188"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Sets the specified attribute of the slice (or sliver, if
+node_id_or_hostname is specified) to the specified value.</P
+><P
+>Attributes may require the caller to have a particular role in
+order to be set or changed. Users may only set attributes of
+slices or slivers of which they are members. PIs may only set
+attributes of slices or slivers at their sites, or of which they
+are members. Admins may set attributes of any slice or sliver.</P
+><P
+>Returns the new slice_attribute_id (&#62; 0) if successful, faults
+otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1193"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice attribute type name                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>attribute_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Slice attribute type name                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, Slice attribute value                        </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New slice_attribute_id (&#62; 0) if successful                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSliceAttributeType"
+>2.27. AddSliceAttributeType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1238"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSliceAttributeType (auth, attribute_type_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1241"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new type of slice attribute. Any fields specified in
+attribute_type_fields are used, otherwise defaults are used.</P
+><P
+>Returns the new attribute_type_id (&#62; 0) if successful, faults
+otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1245"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>attribute_type_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>min_role_id</CODE
+>
+: int, Minimum (least powerful) role that can set or change this attribute                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice attribute type name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice attribute type description                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New attribute_id (&#62; 0) if successful                    </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSliceInstantiation"
+>2.28. AddSliceInstantiation</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1276"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSliceInstantiation (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1279"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new slice instantiation state.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1283"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice instantiation state                    </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSlice"
+>2.29. AddSlice</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1304"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSlice (auth, slice_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1307"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds a new slice. Any fields specified in slice_fields are used,
+otherwise defaults are used.</P
+><P
+>Valid slice names are lowercase and begin with the login_base
+(slice prefix) of a valid site, followed by a single
+underscore. Thereafter, only letters, numbers, or additional
+underscores may be used.</P
+><P
+>PIs may only add slices associated with their own sites (i.e.,
+slice prefixes must always be the login_base of one of their
+sites).</P
+><P
+>Returns the new slice_id (&#62; 0) if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1313"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, URL further describing this slice                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_nodes</CODE
+>
+: int, Maximum number of nodes that can be assigned to this slice                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>instantiation</CODE
+>
+: string, Slice instantiation state                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice name                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice description                                    </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, New slice_id (&#62; 0) if successful                        </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AddSliceToNodes"
+>2.30. AddSliceToNodes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1350"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AddSliceToNodes (auth, slice_id_or_name, node_id_or_hostname_list)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1353"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Adds the specified slice to the specified nodes. Nodes may be
+either local or foreign nodes.</P
+><P
+>If the slice is already associated with a node, no errors are
+returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1358"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname_list</CODE
+>
+: array of int or string                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="AuthCheck"
+>2.31. AuthCheck</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1392"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>AuthCheck (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1395"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns 1 if the user or node authenticated successfully, faults
+otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1398"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="BlacklistKey"
+>2.32. BlacklistKey</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1416"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>BlacklistKey (auth, key_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1419"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Blacklists a key, disassociating it and all others identical to it
+from all accounts and preventing it from ever being added again.</P
+><P
+>WARNING: Identical keys associated with other accounts with also
+be blacklisted.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1424"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>key_id</CODE
+>
+: int, Key identifier                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="BootGetNodeDetails"
+>2.33. BootGetNodeDetails</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1445"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>BootGetNodeDetails (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1448"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns a set of details about the calling node, including a new
+node session value.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1451"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use, always 'hmac'                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, HMAC of node key and method call                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node identifier                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_state</CODE
+>
+: string, Boot state                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, Make and model of the actual machine                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, Fully qualified hostname                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>networks</CODE
+>
+: array of struct                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string, Network broadcast address                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>is_primary</CODE
+>
+: boolean, Is the primary interface for this node                                                      </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string, Subnet address                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, IP address                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string, IP address of primary DNS server                                                     </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, (Optional) Hostname                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string, Subnet mask                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string, IP address of primary gateway                                                        </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>nodenetwork_id</CODE
+>
+: int, Node interface identifier                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string, MAC address                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node associated with this interface                                                     </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string, IP address of secondary DNS server                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>bwlimit</CODE
+>
+: int, Bandwidth limit                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>type</CODE
+>
+: string, Address type (e.g., 'ipv4')                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Addressing method (e.g., 'static' or 'dhcp')                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>session</CODE
+>
+: string, Session key                                  </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="BootNotifyOwners"
+>2.34. BootNotifyOwners</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1537"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>BootNotifyOwners (auth, message_id, include_pis, include_techs, include_support)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1540"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Notify the owners of the node, and/or support about an event that
+happened on the machine.</P
+><P
+>Returns 1 if successful.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1544"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use, always 'hmac'                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, HMAC of node key and method call                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node identifier                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>message_id</CODE
+>
+: string, Message identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>include_pis</CODE
+>
+: int, Notify PIs                      </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>include_techs</CODE
+>
+: int, Notify technical contacts                       </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>include_support</CODE
+>
+: int, Notify support                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="BootUpdateNode"
+>2.35. BootUpdateNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1580"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>BootUpdateNode (auth, node_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1583"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Allows the calling node to update its own record. Only the primary
+network can be updated, and the node IP cannot be changed.</P
+><P
+>Returns 1 if updated successfully.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1587"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use, always 'hmac'                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, HMAC of node key and method call                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node identifier                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_state</CODE
+>
+: string, Boot state                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>primary_network</CODE
+>
+: struct                                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string, Subnet address                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string, IP address of secondary DNS server                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string, IP address of primary DNS server                                                     </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string, Subnet mask                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Addressing method (e.g., 'static' or 'dhcp')                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string, Network broadcast address                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string, MAC address                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string, IP address of primary gateway                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ssh_host_key</CODE
+>
+: string, Last known SSH host key                                      </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteAddress"
+>2.36. DeleteAddress</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1649"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteAddress (auth, address_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1652"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes an address.</P
+><P
+>PIs may only delete addresses from their own sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1657"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_id</CODE
+>
+: int, Address identifier                      </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteAddressTypeFromAddress"
+>2.37. DeleteAddressTypeFromAddress</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1678"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteAddressTypeFromAddress (auth, address_type_id_or_name, address_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1681"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes an address type from the specified address.</P
+><P
+>PIs may only update addresses of their own sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1686"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Address type                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_id</CODE
+>
+: int, Address identifier                      </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteAddressType"
+>2.38. DeleteAddressType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1715"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteAddressType (auth, address_type_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1718"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes an address type.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1722"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Address type                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteBootState"
+>2.39. DeleteBootState</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1748"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteBootState (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1751"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a node boot state.</P
+><P
+>WARNING: This will cause the deletion of all nodes in this boot
+state.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1756"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Boot state                   </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteConfFileFromNodeGroup"
+>2.40. DeleteConfFileFromNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1777"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteConfFileFromNodeGroup (auth, conf_file_id, nodegroup_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1780"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a configuration file from the specified nodegroup. If the nodegroup
+is not linked to the configuration file, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1784"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteConfFileFromNode"
+>2.41. DeleteConfFileFromNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1813"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteConfFileFromNode (auth, conf_file_id, node_id_or_hostname)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1816"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a configuration file from the specified node. If the node
+is not linked to the configuration file, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1820"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteConfFile"
+>2.42. DeleteConfFile</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1849"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteConfFile (auth, conf_file_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1852"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about node
+configuration files. If conf_file_ids is specified, only the
+specified configuration files will be queried.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1855"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                   </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteKey"
+>2.43. DeleteKey</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1876"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteKey (auth, key_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1879"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a key.</P
+><P
+>Non-admins may only delete their own keys.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1884"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>key_id</CODE
+>
+: int, Key identifier                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteKeyType"
+>2.44. DeleteKeyType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1905"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteKeyType (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1908"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a key type.</P
+><P
+>WARNING: This will cause the deletion of all keys of this type.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1913"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Key type                     </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteMessage"
+>2.45. DeleteMessage</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1934"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteMessage (auth, message_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1937"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a message template.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1941"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>message_id</CODE
+>
+: string, Message identifier                   </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNetworkMethod"
+>2.46. DeleteNetworkMethod</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1962"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNetworkMethod (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1965"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a network method.</P
+><P
+>WARNING: This will cause the deletion of all network interfaces
+that use this method.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1970"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Network method                       </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNetworkType"
+>2.47. DeleteNetworkType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN1991"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNetworkType (auth, name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN1994"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a network type.</P
+><P
+>WARNING: This will cause the deletion of all network interfaces
+that use this type.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN1999"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Network type                 </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNodeFromNodeGroup"
+>2.48. DeleteNodeFromNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2020"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNodeFromNodeGroup (auth, node_id_or_hostname, nodegroup_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2023"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Removes a node from the specified node group.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2027"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNodeFromPCU"
+>2.49. DeleteNodeFromPCU</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2061"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNodeFromPCU (auth, node_id_or_hostname, pcu_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2064"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a node from a PCU.</P
+><P
+>Non-admins may only update PCUs at their sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2069"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_id</CODE
+>
+: int, PCU identifier                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNodeGroup"
+>2.50. DeleteNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2098"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNodeGroup (auth, node_group_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2101"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Delete an existing Node Group.</P
+><P
+>ins may delete any node group</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2106"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_group_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNodeNetwork"
+>2.51. DeleteNodeNetwork</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2132"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNodeNetwork (auth, nodenetwork_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2135"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes an existing node network interface.</P
+><P
+>Admins may delete any node network. PIs and techs may only delete
+node network interfaces associated with nodes at their sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2140"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodenetwork_id</CODE
+>
+: int, Node interface identifier                       </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteNode"
+>2.52. DeleteNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2161"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteNode (auth, node_id_or_hostname)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2164"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Mark an existing node as deleted.</P
+><P
+>PIs and techs may only delete nodes at their own sites. ins may
+delete nodes at any site.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2169"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeletePCU"
+>2.53. DeletePCU</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2195"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeletePCU (auth, pcu_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2198"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a PCU.</P
+><P
+>Non-admins may only delete PCUs at their sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2203"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_id</CODE
+>
+: int, PCU identifier                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeletePeer"
+>2.54. DeletePeer</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2224"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeletePeer (auth, peer_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2227"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Mark an existing peer as deleted. All entities (e.g., slices,
+keys, nodes, etc.) for which this peer is authoritative will also
+be deleted or marked as deleted.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2231"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>peer_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Peer name                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeletePersonFromSite"
+>2.55. DeletePersonFromSite</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2257"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeletePersonFromSite (auth, person_id_or_email, site_id_or_login_base)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2260"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Removes the specified person from the specified site. If the
+person is not a member of the specified site, no error is
+returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2264"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeletePersonFromSlice"
+>2.56. DeletePersonFromSlice</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2298"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeletePersonFromSlice (auth, person_id_or_email, slice_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2301"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes the specified person from the specified slice. If the person is
+not a member of the slice, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2305"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeletePerson"
+>2.57. DeletePerson</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2339"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeletePerson (auth, person_id_or_email)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2342"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Mark an existing account as deleted.</P
+><P
+>Users and techs can only delete themselves. PIs can only delete
+themselves and other non-PIs at their sites. ins can delete
+anyone.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2347"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteRoleFromPerson"
+>2.58. DeleteRoleFromPerson</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2373"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteRoleFromPerson (auth, role_id_or_name, person_id_or_email)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2376"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes the specified role from the person.</P
+><P
+>PIs can only revoke the tech and user roles from users and techs
+at their sites. ins can revoke any role from any user.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2381"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>role_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Role identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Role                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteRole"
+>2.59. DeleteRole</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2415"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteRole (auth, role_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2418"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a role.</P
+><P
+>WARNING: This will remove the specified role from all accounts
+that possess it, and from all node and slice attributes that refer
+to it.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2423"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>role_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Role identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Role                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSession"
+>2.60. DeleteSession</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2449"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSession (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2452"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Invalidates the current session.</P
+><P
+>Returns 1 if successful.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2456"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>session</CODE
+>
+: string, Session key                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use, always 'session'                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSite"
+>2.61. DeleteSite</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2477"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSite (auth, site_id_or_login_base)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2480"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Mark an existing site as deleted. The accounts of people who are
+not members of at least one other non-deleted site will also be
+marked as deleted. Nodes, PCUs, and slices associated with the
+site will be deleted.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2484"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSliceAttribute"
+>2.62. DeleteSliceAttribute</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2510"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSliceAttribute (auth, slice_attribute_id)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2513"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes the specified slice or sliver attribute.</P
+><P
+>Attributes may require the caller to have a particular role in
+order to be deleted. Users may only delete attributes of
+slices or slivers of which they are members. PIs may only delete
+attributes of slices or slivers at their sites, or of which they
+are members. Admins may delete attributes of any slice or sliver.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2518"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_attribute_id</CODE
+>
+: int, Slice attribute identifier                      </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSliceAttributeType"
+>2.63. DeleteSliceAttributeType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2539"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSliceAttributeType (auth, attribute_type_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2542"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes the specified slice attribute.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2546"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>attribute_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Slice attribute type name                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSliceFromNodes"
+>2.64. DeleteSliceFromNodes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2572"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSliceFromNodes (auth, slice_id_or_name, node_id_or_hostname_list)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2575"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes the specified slice from the specified nodes. If the slice is
+not associated with a node, no errors are returned.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2579"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname_list</CODE
+>
+: array of int or string                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSliceInstantiation"
+>2.65. DeleteSliceInstantiation</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2613"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSliceInstantiation (auth, instantiation)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2616"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes a slice instantiation state.</P
+><P
+>WARNING: This will cause the deletion of all slices of this instantiation.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2621"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>instantiation</CODE
+>
+: string, Slice instantiation state                    </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="DeleteSlice"
+>2.66. DeleteSlice</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2642"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>DeleteSlice (auth, slice_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2645"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Deletes the specified slice.</P
+><P
+>Users may only delete slices of which they are members. PIs may
+delete any of the slices at their sites, or any slices of which
+they are members. Admins may delete any slice.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2650"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetAddresses"
+>2.67. GetAddresses</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2676"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetAddresses (auth, address_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2679"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about addresses. If
+address_filter is specified and is an array of address
+identifiers, or a struct of address attributes, only addresses
+matching the filter will be returned. If return_fields is
+specified, only the specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2682"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int, Address identifier                                 </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>city</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, City                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, City                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>address_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address identifier                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of int, Address identifier                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>country</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Country                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Country                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>line3</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Address line 3                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Address line 3                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>line2</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Address line 2                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Address line 2                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>line1</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Address line 1                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Address line 1                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>state</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, State or province                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, State or province                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>postalcode</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Postal code                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, Postal code                                                                     </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>city</CODE
+>
+: string, City                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>address_id</CODE
+>
+: int, Address identifier                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>country</CODE
+>
+: string, Country                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line3</CODE
+>
+: string, Address line 3                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line2</CODE
+>
+: string, Address line 2                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line1</CODE
+>
+: string, Address line 1                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>address_type_ids</CODE
+>
+: array, Address type identifiers                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>state</CODE
+>
+: string, State or province                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>postalcode</CODE
+>
+: string, Postal code                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>address_types</CODE
+>
+: array, Address types                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                                   </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetAddressTypes"
+>2.68. GetAddressTypes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2816"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetAddressTypes (auth, address_type_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2819"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about address
+types. If address_type_filter is specified and is an array of
+address type identifiers, or a struct of address type attributes,
+only address types matching the filter will be returned. If
+return_fields is specified, only the specified details will be
+returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2822"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address type identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Address type                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Address type                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Address type                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>address_type_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address type identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Address type identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Address type description                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Address type description                                                                        </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Address type                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>address_type_id</CODE
+>
+: int, Address type identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Address type description                                     </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetBootStates"
+>2.69. GetBootStates</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2894"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetBootStates (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2897"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of all valid node boot states.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2900"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of string, Boot state                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetConfFiles"
+>2.70. GetConfFiles</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN2918"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetConfFiles (auth, conf_file_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN2921"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about configuration
+files. If conf_file_filter is specified and is an array of
+configuration file identifiers, or a struct of configuration file
+attributes, only configuration files matching the filter will be
+returned. If return_fields is specified, only the specified
+details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN2924"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int, Configuration file identifier                                      </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>file_owner</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, chown(1) owner                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, chown(1) owner                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>postinstall_cmd</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Shell command to execute after installing                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Shell command to execute after installing                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>error_cmd</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Shell command to execute if any error occurs                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Shell command to execute if any error occurs                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>preinstall_cmd</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Shell command to execute prior to installing                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Shell command to execute prior to installing                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, List of nodes linked to this file                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, List of nodes linked to this file                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dest</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Absolute path where file should be installed                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Absolute path where file should be installed                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ignore_cmd_errors</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Install file anyway even if an error occurs                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Install file anyway even if an error occurs                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Configuration file is active                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Configuration file is active                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Configuration file identifier                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of int, Configuration file identifier                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>file_permissions</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, chmod(1) permissions                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, chmod(1) permissions                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>source</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Relative path on the boot server where file can be downloaded                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, Relative path on the boot server where file can be downloaded                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>nodegroup_ids</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, List of node groups linked to this file                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, List of node groups linked to this file                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>always_update</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Always attempt to install file even if unchanged                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Always attempt to install file even if unchanged                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>file_group</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, chgrp(1) owner                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, chgrp(1) owner                                                                  </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_owner</CODE
+>
+: string, chown(1) owner                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>postinstall_cmd</CODE
+>
+: string, Shell command to execute after installing                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>error_cmd</CODE
+>
+: string, Shell command to execute if any error occurs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>preinstall_cmd</CODE
+>
+: string, Shell command to execute prior to installing                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: int, List of nodes linked to this file                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dest</CODE
+>
+: string, Absolute path where file should be installed                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ignore_cmd_errors</CODE
+>
+: boolean, Install file anyway even if an error occurs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Configuration file is active                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_permissions</CODE
+>
+: string, chmod(1) permissions                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>source</CODE
+>
+: string, Relative path on the boot server where file can be downloaded                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>nodegroup_ids</CODE
+>
+: int, List of node groups linked to this file                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>always_update</CODE
+>
+: boolean, Always attempt to install file even if unchanged                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_group</CODE
+>
+: string, chgrp(1) owner                                       </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetEvents"
+>2.71. GetEvents</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3112"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetEvents (auth, event_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3115"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about events and
+faults. If event_filter is specified and is an array of event
+identifiers, or a struct of event attributes, only events matching
+the filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3118"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>event_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int, Event identifier                                   </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>fault_code</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Event fault code                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Event fault code                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>event_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Event identifier                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Event identifier                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>object_type</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, What type of object is this event affecting                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, What type of object is this event affecting                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Identifier of node responsible for event, if any                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Identifier of node responsible for event, if any                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>call</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Call responsible for this event, including paramters                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Call responsible for this event, including paramters                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>time</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time that the event took place, in seconds since UNIX epoch                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time that the event took place, in seconds since UNIX epoch                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Identifier of person responsible for event, if any                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of int, Identifier of person responsible for event, if any                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>message</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, High level description of this event                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, High level description of this event                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>runtime</CODE
+>
+: double or array of double                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;double, Runtime of event                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of double, Runtime of event                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>call_name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Call responsible for this event                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Call responsible for this event                                                                 </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>fault_code</CODE
+>
+: int, Event fault code                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>event_id</CODE
+>
+: int, Event identifier                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>object_type</CODE
+>
+: string, What type of object is this event affecting                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>object_ids</CODE
+>
+: array, IDs of objects affected by this event                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Identifier of node responsible for event, if any                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>call</CODE
+>
+: string, Call responsible for this event, including paramters                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>time</CODE
+>
+: int, Date and time that the event took place, in seconds since UNIX epoch                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int, Identifier of person responsible for event, if any                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>message</CODE
+>
+: string, High level description of this event                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>runtime</CODE
+>
+: double, Runtime of event                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>call_name</CODE
+>
+: string, Call responsible for this event                                      </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetKeys"
+>2.72. GetKeys</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3268"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetKeys (auth, key_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3271"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about keys. If
+key_filter is specified and is an array of key identifiers, or a
+struct of key attributes, only keys matching the filter will be
+returned. If return_fields is specified, only the specified
+details will be returned.</P
+><P
+>Admin may query all keys. Non-admins may only query their own
+keys.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3275"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>key_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int                                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Key identifier                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_key_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Foreign key identifier at peer                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Foreign key identifier at peer                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>key_type</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Key type                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Key type                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Key value                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Key value                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User to which this key belongs                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, User to which this key belongs                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>key_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Key identifier                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Key identifier                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer to which this key belongs                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer to which this key belongs                                                                     </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int, Peer to which this key belongs                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key_type</CODE
+>
+: string, Key type                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Key value                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int, User to which this key belongs                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key_id</CODE
+>
+: int, Key identifier                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_key_id</CODE
+>
+: int, Foreign key identifier at peer                                  </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetKeyTypes"
+>2.73. GetKeyTypes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3378"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetKeyTypes (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3381"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of all valid key types.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3384"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of string, Key type                        </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetMessages"
+>2.74. GetMessages</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3402"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetMessages (auth, message_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3405"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about message
+templates. If message template_filter is specified and is an array
+of message template identifiers, or a struct of message template
+attributes, only message templates matching the filter will be
+returned. If return_fields is specified, only the specified
+details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3408"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>message_filter</CODE
+>
+: array of string or struct                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of string, Message identifier                                      </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Message is enabled                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Message is enabled                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>message_id</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Message identifier                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Message identifier                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>template</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Message template                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Message template                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>subject</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Message summary                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Message summary                                                                 </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Message is enabled                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>message_id</CODE
+>
+: string, Message identifier                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>template</CODE
+>
+: string, Message template                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>subject</CODE
+>
+: string, Message summary                                      </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetNetworkMethods"
+>2.75. GetNetworkMethods</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3486"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetNetworkMethods (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3489"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns a list of all valid network methods.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3492"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of string, Network method                  </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetNetworkTypes"
+>2.76. GetNetworkTypes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3510"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetNetworkTypes (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3513"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns a list of all valid network types.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3516"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of string, Network type                    </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetNodeGroups"
+>2.77. GetNodeGroups</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3534"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetNodeGroups (auth, nodegroup_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3537"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about node groups.
+If nodegroup_filter is specified and is an array of node group
+identifiers or names, or a struct of node group attributes, only
+node groups matching the filter will be returned. If return_fields
+is specified, only the specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3540"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node, anonymous</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>nodegroup_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of int, Node group identifier                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Node group name                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Node group name                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Node group description                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Node group description                                                                  </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: array, List of nodes in this node group                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>nodegroup_id</CODE
+>
+: int, Node group identifier                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Node group name                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>conf_file_ids</CODE
+>
+: array, List of configuration files specific to this node group                                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Node group description                                       </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetNodeNetworks"
+>2.78. GetNodeNetworks</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3624"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetNodeNetworks (auth, nodenetwork_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3627"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about node network
+interfacess. If nodenetworks_filter is specified and is an array
+of node network identifiers, or a struct of node network
+attributes, only node network interfaces matching the filter will
+be returned. If return_fields is specified, only the
+specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3630"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node, anonymous</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodenetwork_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int, Node interface identifier                                  </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>nodenetwork_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node interface identifier                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, Node interface identifier                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Subnet address                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Subnet address                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>is_primary</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Is the primary interface for this node                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Is the primary interface for this node                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, IP address of primary DNS server                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, IP address of primary DNS server                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, (Optional) Hostname                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, (Optional) Hostname                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, MAC address                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, MAC address                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>bwlimit</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Bandwidth limit                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Bandwidth limit                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Network broadcast address                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Network broadcast address                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Addressing method (e.g., 'static' or 'dhcp')                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Addressing method (e.g., 'static' or 'dhcp')                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Subnet mask                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, Subnet mask                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node associated with this interface                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of int, Node associated with this interface                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, IP address of secondary DNS server                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, IP address of secondary DNS server                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, IP address                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, IP address                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>type</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Address type (e.g., 'ipv4')                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, Address type (e.g., 'ipv4')                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, IP address of primary gateway                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, IP address of primary gateway                                                                   </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string, Network broadcast address                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>is_primary</CODE
+>
+: boolean, Is the primary interface for this node                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string, Subnet address                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, IP address                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string, IP address of primary DNS server                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, (Optional) Hostname                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string, Subnet mask                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string, IP address of primary gateway                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>nodenetwork_id</CODE
+>
+: int, Node interface identifier                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string, MAC address                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node associated with this interface                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string, IP address of secondary DNS server                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>bwlimit</CODE
+>
+: int, Bandwidth limit                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>type</CODE
+>
+: string, Address type (e.g., 'ipv4')                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Addressing method (e.g., 'static' or 'dhcp')                                 </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetNodes"
+>2.79. GetNodes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN3829"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetNodes (auth, node_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN3832"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about nodes. If
+node_filter is specified and is an array of node identifiers or
+hostnames, or a struct of node attributes, only nodes matching the
+filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+><P
+>Some fields may only be viewed by admins.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN3836"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node, anonymous</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when node entry was created                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when node entry was created                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>version</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Apparent Boot CD version                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Apparent Boot CD version                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>boot_state</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Boot state                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Boot state                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_node_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Foreign node identifier at peer                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Foreign node identifier at peer                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Fully qualified hostname                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Fully qualified hostname                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site at which this node is located                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of int, Site at which this node is located                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>boot_nonce</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, (Admin only) Random value generated by the node at last boot                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, (Admin only) Random value generated by the node at last boot                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>session</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, (Admin only) Node session value                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, (Admin only) Node session value                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ssh_rsa_key</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Last known SSH host key                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Last known SSH host key                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, (Admin only) Node key                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, (Admin only) Node key                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when node entry was created                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when node entry was created                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Make and model of the actual machine                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Make and model of the actual machine                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer to which this node belongs                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer to which this node belongs                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Node identifier                                                                    </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>session</CODE
+>
+: string, (Admin only) Node session value                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>pcu_ids</CODE
+>
+: array, List of PCUs that control this node                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>nodegroup_ids</CODE
+>
+: array, List of node groups that this node is in                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int, Date and time when node entry was created                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>version</CODE
+>
+: string, Apparent Boot CD version                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>nodenetwork_ids</CODE
+>
+: array, List of network interfaces that this node has                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_state</CODE
+>
+: string, Boot state                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_node_id</CODE
+>
+: int, Foreign node identifier at peer                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, Fully qualified hostname                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int, Site at which this node is located                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ports</CODE
+>
+: array, List of PCU ports that this node is connected to                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_ids</CODE
+>
+: array, List of slices on this node                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_nonce</CODE
+>
+: string, (Admin only) Random value generated by the node at last boot                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, (Admin only) Node key                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int, Date and time when node entry was created                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, Make and model of the actual machine                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int, Peer to which this node belongs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>conf_file_ids</CODE
+>
+: array, List of configuration files specific to this node                                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ssh_rsa_key</CODE
+>
+: string, Last known SSH host key                                      </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetPCUs"
+>2.80. GetPCUs</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4065"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetPCUs (auth, pcu_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4068"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about power control
+units (PCUs). If pcu_filter is specified and is an array of PCU
+identifiers, or a struct of PCU attributes, only PCUs matching the
+filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+><P
+>Admin may query all PCUs. Non-admins may only query the PCUs at
+their sites.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4072"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int, PCU identifier                                     </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>username</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, PCU username                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, PCU username                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>protocol</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, PCU protocol, e.g. ssh, https, telnet                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, PCU protocol, e.g. ssh, https, telnet                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, PCU IP address                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, PCU IP address                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>pcu_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, PCU identifier                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, PCU identifier                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, PCU hostname                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, PCU hostname                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Identifier of site where PCU is located                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Identifier of site where PCU is located                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, PCU model string                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, PCU model string                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, PCU username                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, PCU username                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>notes</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Miscellaneous notes                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, Miscellaneous notes                                                                     </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>username</CODE
+>
+: string, PCU username                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>protocol</CODE
+>
+: string, PCU protocol, e.g. ssh, https, telnet                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: array, List of nodes that this PCU controls                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, PCU IP address                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>pcu_id</CODE
+>
+: int, PCU identifier                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, PCU hostname                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int, Identifier of site where PCU is located                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ports</CODE
+>
+: array, List of the port numbers that each node is connected to                                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, PCU model string                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string, PCU username                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>notes</CODE
+>
+: string, Miscellaneous notes                                  </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetPeerData"
+>2.81. GetPeerData</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4217"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetPeerData (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4220"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns lists of local objects that a peer should cache in its
+database as foreign objects. Also returns the list of foreign
+nodes in this database, for which the calling peer is
+authoritative, to assist in synchronization of slivers.</P
+><P
+>See the implementation of RefreshPeer for how this data is used.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4224"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, peer</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>Slices</CODE
+>
+: array, List of local slices                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>Keys</CODE
+>
+: array, List of local keys                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>Sites</CODE
+>
+: array, List of local sites                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>Persons</CODE
+>
+: array, List of local users                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>Nodes</CODE
+>
+: array, List of local nodes                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>db_time</CODE
+>
+: double, (Debug) Database fetch time                                  </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetPeerName"
+>2.82. GetPeerName</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4276"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetPeerName (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4279"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns this peer's name, as defined in the config as PLC_NAME</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4282"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, peer, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Peer name                        </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetPeers"
+>2.83. GetPeers</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4300"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetPeers (auth, peer_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4303"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about peers. If
+person_filter is specified and is an array of peer identifiers or
+peer names, or a struct of peer attributes, only peers matching
+the filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4306"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>peer_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Peer name                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Peer GPG public key                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, Peer GPG public key                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>cacert</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Peer SSL public certificate                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of string, Peer SSL public certificate                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peername</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Peer name                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Peer name                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_url</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Peer API URL                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of string, Peer API URL                                                                    </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: array, List of nodes for which this peer is authoritative                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key_ids</CODE
+>
+: array, List of keys for which this peer is authoritative                                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>person_ids</CODE
+>
+: array, List of users for which this peer is authoritative                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peername</CODE
+>
+: string, Peer name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_url</CODE
+>
+: string, Peer API URL                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_ids</CODE
+>
+: array, List of slices for which this peer is authoritative                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Peer GPG public key                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>cacert</CODE
+>
+: string, Peer SSL public certificate                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>site_ids</CODE
+>
+: array, List of sites for which this peer is authoritative                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int, Peer identifier                                 </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetPersons"
+>2.84. GetPersons</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4430"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetPersons (auth, person_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4433"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about users. If
+person_filter is specified and is an array of user identifiers or
+usernames, or a struct of user attributes, only users matching the
+filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+><P
+>Users and techs may only retrieve details about themselves. PIs
+may retrieve details about themselves and others at their
+sites. Admins and nodes may retrieve details about all accounts.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4437"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>bio</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Biography                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Biography                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>first_name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Given name                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Given name                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>last_name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Surname                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Surname                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time of last update                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time of last update                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>title</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Title                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, Title                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Home page                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Home page                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>verification_key</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Reset password key                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Reset password key                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Has been enabled                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Has been enabled                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>phone</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Telephone number                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Telephone number                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Foreign user identifier at peer                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Foreign user identifier at peer                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Account password in crypt() form                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Account password in crypt() form                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, User identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when account was created                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when account was created                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer to which this user belongs                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer to which this user belongs                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>verification_expires</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when verification_key expires                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when verification_key expires                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>email</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Primary e-mail address                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Primary e-mail address                                                                  </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>bio</CODE
+>
+: string, Biography                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>first_name</CODE
+>
+: string, Given name                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>last_name</CODE
+>
+: string, Surname                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int, Date and time of last update                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>roles</CODE
+>
+: array, List of roles                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>title</CODE
+>
+: string, Title                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, Home page                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key_ids</CODE
+>
+: array, List of key identifiers                                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Has been enabled                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_ids</CODE
+>
+: array, List of slice identifiers                                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>phone</CODE
+>
+: string, Telephone number                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_person_id</CODE
+>
+: int, Foreign user identifier at peer                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>role_ids</CODE
+>
+: array, List of role identifiers                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int, User identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int, Date and time when account was created                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>site_ids</CODE
+>
+: array, List of site identifiers                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int, Peer to which this user belongs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>email</CODE
+>
+: string, Primary e-mail address                                       </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetRoles"
+>2.85. GetRoles</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4673"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetRoles (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4676"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Get an array of structs containing details about all roles.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4679"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Role                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>role_id</CODE
+>
+: int, Role identifier                                 </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSession"
+>2.86. GetSession</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4704"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSession (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4707"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns a new session key if a user or node authenticated
+successfully, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4710"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Session key                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSites"
+>2.87. GetSites</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4728"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSites (auth, site_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4731"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about sites. If
+site_filter is specified and is an array of site identifiers or
+hostnames, or a struct of site attributes, only sites matching the
+filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4734"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node, anonymous</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when site entry was last updated, in seconds since UNIX epoch                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when site entry was last updated, in seconds since UNIX epoch                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Full site name                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Full site name                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, URL of a page that describes the site                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, URL of a page that describes the site                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Site identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Has been enabled                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Has been enabled                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>longitude</CODE
+>
+: double or array of double                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;double, Decimal longitude of the site                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of double, Decimal longitude of the site                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>latitude</CODE
+>
+: double or array of double                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;double, Decimal latitude of the site                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of double, Decimal latitude of the site                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>max_slices</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Maximum number of slices that the site is able to create                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Maximum number of slices that the site is able to create                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>login_base</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Site slice prefix                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Site slice prefix                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>is_public</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Publicly viewable site                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Publicly viewable site                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>max_slivers</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Maximum number of slivers that the site is able to create                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, Maximum number of slivers that the site is able to create                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when site entry was created, in seconds since UNIX epoch                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when site entry was created, in seconds since UNIX epoch                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_site_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Foreign site identifier at peer                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Foreign site identifier at peer                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer to which this site belongs                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer to which this site belongs                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>abbreviated_name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Abbreviated site name                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, Abbreviated site name                                                                   </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>address_ids</CODE
+>
+: array, List of address identifiers                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>pcu_ids</CODE
+>
+: array, List of PCU identifiers                                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int, Date and time when site entry was last updated, in seconds since UNIX epoch                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Full site name                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: array, List of site node identifiers                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, URL of a page that describes the site                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Has been enabled                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>person_ids</CODE
+>
+: array, List of account identifiers                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int, Site identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>longitude</CODE
+>
+: double, Decimal longitude of the site                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_ids</CODE
+>
+: array, List of slice identifiers                                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_slivers</CODE
+>
+: int, Maximum number of slivers that the site is able to create                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_slices</CODE
+>
+: int, Maximum number of slices that the site is able to create                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>login_base</CODE
+>
+: string, Site slice prefix                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int, Date and time when site entry was created, in seconds since UNIX epoch                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>latitude</CODE
+>
+: double, Decimal latitude of the site                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>is_public</CODE
+>
+: boolean, Publicly viewable site                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_site_id</CODE
+>
+: int, Foreign site identifier at peer                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int, Peer to which this site belongs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>abbreviated_name</CODE
+>
+: string, Abbreviated site name                                        </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSliceAttributes"
+>2.88. GetSliceAttributes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN4968"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSliceAttributes (auth, slice_attribute_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN4971"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about slice and
+sliver attributes. An attribute is a sliver attribute if the
+node_id field is set. If slice_attribute_filter is specified and
+is an array of slice attribute identifiers, or a struct of slice
+attribute attributes, only slice attributes matching the filter
+will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+><P
+>Users may only query attributes of slices or slivers of which they
+are members. PIs may only query attributes of slices or slivers at
+their sites, or of which they are members. Admins may query
+attributes of any slice or sliver.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN4975"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_attribute_filter</CODE
+>
+: array of int or struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int, Slice attribute identifier                                 </P
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice attribute type name                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice attribute type name                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>slice_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Slice identifier                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>slice_attribute_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute identifier                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of int, Slice attribute identifier                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice attribute value                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice attribute value                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>attribute_type_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute type identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Slice attribute type identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier, if a sliver attribute                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Node identifier, if a sliver attribute                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>min_role_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Minimum (least powerful) role that can set or change this attribute                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of int, Minimum (least powerful) role that can set or change this attribute                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice attribute type description                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice attribute type description                                                                        </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice attribute type name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_id</CODE
+>
+: int, Slice identifier                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_attribute_id</CODE
+>
+: int, Slice attribute identifier                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, Slice attribute value                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>attribute_type_id</CODE
+>
+: int, Slice attribute type identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node identifier, if a sliver attribute                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>min_role_id</CODE
+>
+: int, Minimum (least powerful) role that can set or change this attribute                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice attribute type description                                     </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSliceAttributeTypes"
+>2.89. GetSliceAttributeTypes</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5097"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSliceAttributeTypes (auth, attribute_type_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5100"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about slice
+attribute types. If attribute_type_filter is specified and
+is an array of slice attribute type identifiers, or a
+struct of slice attribute type attributes, only slice attribute
+types matching the filter will be returned. If return_fields is
+specified, only the specified details will be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5103"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>attribute_type_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute type identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Slice attribute type name                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>attribute_type_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute type identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Slice attribute type identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>min_role_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Minimum (least powerful) role that can set or change this attribute                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of int, Minimum (least powerful) role that can set or change this attribute                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice attribute type name                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice attribute type name                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice attribute type description                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice attribute type description                                                                        </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>attribute_type_id</CODE
+>
+: int, Slice attribute type identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>min_role_id</CODE
+>
+: int, Minimum (least powerful) role that can set or change this attribute                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice attribute type name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice attribute type description                                     </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSliceInstantiations"
+>2.90. GetSliceInstantiations</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5186"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSliceInstantiations (auth)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5189"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of all valid slice instantiation states.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5192"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of string, Slice instantiation state                       </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSlices"
+>2.91. GetSlices</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5210"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSlices (auth, slice_filter, return_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5213"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of structs containing details about slices. If
+slice_filter is specified and is an array of slice identifiers or
+slice names, or a struct of slice attributes, only slices matching
+the filter will be returned. If return_fields is specified, only the
+specified details will be returned.</P
+><P
+>Users may only query slices of which they are members. PIs may
+query any of the slices at their sites. Admins and nodes may query
+any slice. If a slice that cannot be queried is specified in
+slice_filter, details about that slice will not be returned.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5217"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>creator_person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Identifier of the account that created this slice                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, Identifier of the account that created this slice                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>instantiation</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice instantiation state                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice instantiation state                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice name                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice name                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>slice_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Slice identifier                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>created</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when slice was created, in seconds since UNIX epoch                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when slice was created, in seconds since UNIX epoch                                                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, URL further describing this slice                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, URL further describing this slice                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>max_nodes</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Maximum number of nodes that can be assigned to this slice                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of int, Maximum number of nodes that can be assigned to this slice                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>expires</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when slice expires, in seconds since UNIX epoch                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when slice expires, in seconds since UNIX epoch                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Identifier of the site to which this slice belongs                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of int, Identifier of the site to which this slice belongs                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_slice_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Foreign slice identifier at peer                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Foreign slice identifier at peer                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer to which this slice belongs                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer to which this slice belongs                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Slice description                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Slice description                                                                       </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>return_fields</CODE
+>
+: array, List of fields to return                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of struct                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>creator_person_id</CODE
+>
+: int, Identifier of the account that created this slice                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>instantiation</CODE
+>
+: string, Slice instantiation state                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_attribute_ids</CODE
+>
+: array, List of slice attributes                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice name                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slice_id</CODE
+>
+: int, Slice identifier                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>created</CODE
+>
+: int, Date and time when slice was created, in seconds since UNIX epoch                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, URL further describing this slice                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_nodes</CODE
+>
+: int, Maximum number of nodes that can be assigned to this slice                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>person_ids</CODE
+>
+: array, List of accounts that can use this slice                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>expires</CODE
+>
+: int, Date and time when slice expires, in seconds since UNIX epoch                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>site_id</CODE
+>
+: int, Identifier of the site to which this slice belongs                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_slice_id</CODE
+>
+: int, Foreign slice identifier at peer                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: array, List of nodes in this slice                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int, Peer to which this slice belongs                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice description                                    </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSliceTicket"
+>2.92. GetSliceTicket</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5406"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSliceTicket (auth, slice_id_or_name)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5409"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns a ticket for, or signed representation of, the specified
+slice. Slice tickets may be used to manually instantiate or update
+a slice on a node. Present this ticket to the local Node Manager
+interface to redeem it.</P
+><P
+>If the slice has not been added to a node with AddSliceToNodes,
+and the ticket is redeemed on that node, it will be deleted the
+next time the Node Manager contacts the API.</P
+><P
+>Users may only obtain tickets for slices of which they are
+members. PIs may obtain tickets for any of the slices at their
+sites, or any slices of which they are members. Admins may obtain
+tickets for any slice.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5415"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, peer</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Signed slice ticket                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="GetSlivers"
+>2.93. GetSlivers</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5441"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>GetSlivers (auth, node_id_or_hostname)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5444"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns a struct containing information about the specified node
+(or calling node, if called by a node and node_id_or_hostname is
+not specified), including the current set of slivers bound to the
+node.</P
+><P
+>All of the information returned by this call can be gathered from
+other calls, e.g. GetNodes, GetNodeNetworks, GetSlices, etc. This
+function exists almost solely for the benefit of Node Manager.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5448"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;struct                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>timestamp</CODE
+>
+: int, Timestamp of this call, in seconds since UNIX epoch                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, Fully qualified hostname                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>conf_files</CODE
+>
+: array of struct                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>file_owner</CODE
+>
+: string, chown(1) owner                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>postinstall_cmd</CODE
+>
+: string, Shell command to execute after installing                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>error_cmd</CODE
+>
+: string, Shell command to execute if any error occurs                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>preinstall_cmd</CODE
+>
+: string, Shell command to execute prior to installing                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: int, List of nodes linked to this file                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dest</CODE
+>
+: string, Absolute path where file should be installed                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ignore_cmd_errors</CODE
+>
+: boolean, Install file anyway even if an error occurs                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Configuration file is active                                                        </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>file_permissions</CODE
+>
+: string, chmod(1) permissions                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>source</CODE
+>
+: string, Relative path on the boot server where file can be downloaded                                                        </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>nodegroup_ids</CODE
+>
+: int, List of node groups linked to this file                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>always_update</CODE
+>
+: boolean, Always attempt to install file even if unchanged                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>file_group</CODE
+>
+: string, chgrp(1) owner                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node identifier                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>groups</CODE
+>
+: array of string, Node group name                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>networks</CODE
+>
+: array of struct                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string, Network broadcast address                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>is_primary</CODE
+>
+: boolean, Is the primary interface for this node                                                      </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string, Subnet address                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, IP address                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string, IP address of primary DNS server                                                     </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, (Optional) Hostname                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string, Subnet mask                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string, IP address of primary gateway                                                        </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>nodenetwork_id</CODE
+>
+: int, Node interface identifier                                                       </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string, MAC address                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>node_id</CODE
+>
+: int, Node associated with this interface                                                     </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string, IP address of secondary DNS server                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>bwlimit</CODE
+>
+: int, Bandwidth limit                                                 </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>type</CODE
+>
+: string, Address type (e.g., 'ipv4')                                                  </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Addressing method (e.g., 'static' or 'dhcp')                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>slivers</CODE
+>
+: array of struct                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>instantiation</CODE
+>
+: string, Slice instantiation state                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice name                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>slice_id</CODE
+>
+: int, Slice identifier                                                        </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>keys</CODE
+>
+: array of struct                                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                                         <CODE
+CLASS="parameter"
+>key_type</CODE
+>
+: string, Key type                                                                     </P
+></LI
+><LI
+><P
+>&#13;                                                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Key value                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>expires</CODE
+>
+: int, Date and time when slice expires, in seconds since UNIX epoch                                                   </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>attributes</CODE
+>
+: array of struct                                                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice attribute type name                                                                    </P
+></LI
+><LI
+><P
+>&#13;                                                                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, Slice attribute value                                                                        </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="NotifyPersons"
+>2.94. NotifyPersons</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5618"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>NotifyPersons (auth, person_filter, subject, body)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5621"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Sends an e-mail message to the specified users. If person_filter
+is specified and is an array of user identifiers or usernames, or
+a struct of user attributes, only users matching the filter will
+receive the message.</P
+><P
+>Returns 1 if successful.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5625"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, node</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_filter</CODE
+>
+: array of int or string or struct                     </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of int or string                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;struct, Attribute filter                                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>bio</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Biography                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Biography                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>first_name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Given name                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Given name                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>last_name</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Surname                                                                  </P
+></LI
+><LI
+><P
+>&#13;array of string, Surname                                                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>last_updated</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time of last update                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time of last update                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>title</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Title                                                                    </P
+></LI
+><LI
+><P
+>&#13;array of string, Title                                                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Home page                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of string, Home page                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>verification_key</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Reset password key                                                                       </P
+></LI
+><LI
+><P
+>&#13;array of string, Reset password key                                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean or array of boolean                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;boolean, Has been enabled                                                                        </P
+></LI
+><LI
+><P
+>&#13;array of boolean, Has been enabled                                                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>phone</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Telephone number                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Telephone number                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Foreign user identifier at peer                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Foreign user identifier at peer                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Account password in crypt() form                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of string, Account password in crypt() form                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>person_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, User identifier                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>date_created</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when account was created                                                                      </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when account was created                                                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>peer_id</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer to which this user belongs                                                                     </P
+></LI
+><LI
+><P
+>&#13;array of int, Peer to which this user belongs                                                                    </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>verification_expires</CODE
+>
+: int or array of int                                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Date and time when verification_key expires                                                                 </P
+></LI
+><LI
+><P
+>&#13;array of int, Date and time when verification_key expires                                                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>email</CODE
+>
+: string or array of string                                                    </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Primary e-mail address                                                                   </P
+></LI
+><LI
+><P
+>&#13;array of string, Primary e-mail address                                                                  </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>subject</CODE
+>
+: string, E-mail subject                       </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>body</CODE
+>
+: string, E-mail body                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="RebootNode"
+>2.95. RebootNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5791"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>RebootNode (auth, node_id_or_hostname)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5794"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Sends the specified node a specially formatted UDP packet which
+should cause it to reboot immediately.</P
+><P
+>Admins can reboot any node. Techs and PIs can only reboot nodes at
+their site.</P
+><P
+>Returns 1 if the packet was successfully sent (which only whether
+the packet was sent, not whether the reboot was successful).</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5799"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="RefreshPeer"
+>2.96. RefreshPeer</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5825"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>RefreshPeer (auth, peer_id_or_peername)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5828"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Fetches node and slice data from the specified peer and caches it
+locally; also deletes stale entries. Returns 1 if successful,
+faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5831"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>peer_id_or_peername</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Peer name                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="ResetPassword"
+>2.97. ResetPassword</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5857"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>ResetPassword (auth, person_id_or_email, verification_key, verification_expires)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5860"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>If verification_key is not specified, then a new verification_key
+will be generated and stored with the user's account. The key will
+be e-mailed to the user in the form of a link to a web page.</P
+><P
+>The web page should verify the key by calling this function again
+and specifying verification_key. If the key matches what has been
+stored in the user's account, a new random password will be
+e-mailed to the user.</P
+><P
+>Returns 1 if verification_key was not specified, or was specified
+and is valid, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5865"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>verification_key</CODE
+>
+: string, Reset password key                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>verification_expires</CODE
+>
+: int, Date and time when verification_key expires                     </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if verification_key is valid                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="SetPersonPrimarySite"
+>2.98. SetPersonPrimarySite</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5897"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>SetPersonPrimarySite (auth, person_id_or_email, site_id_or_login_base)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5900"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Makes the specified site the person's primary site. The person
+must already be a member of the site.</P
+><P
+>Admins may update anyone. All others may only update themselves.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5904"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateAddress"
+>2.99. UpdateAddress</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5938"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateAddress (auth, address_id, address_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5941"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing address with the values in
+address_fields.</P
+><P
+>PIs may only update addresses of their own sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5946"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_id</CODE
+>
+: int, Address identifier                      </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>city</CODE
+>
+: string, City                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>country</CODE
+>
+: string, Country                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line3</CODE
+>
+: string, Address line 3                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line2</CODE
+>
+: string, Address line 2                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>line1</CODE
+>
+: string, Address line 1                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>state</CODE
+>
+: string, State or province                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>postalcode</CODE
+>
+: string, Postal code                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateAddressType"
+>2.100. UpdateAddressType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN5992"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateAddressType (auth, address_type_id_or_name, address_type_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN5995"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing address type with the values
+in address_type_fields.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN5999"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Address type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Address type                                     </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>address_type_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Address type                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Address type description                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateConfFile"
+>2.101. UpdateConfFile</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6035"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateConfFile (auth, conf_file_id, conf_file_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6038"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates a node configuration file. Only the fields specified in
+conf_file_fields are updated, all other fields are left untouched.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6042"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_id</CODE
+>
+: int, Configuration file identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>conf_file_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_owner</CODE
+>
+: string, chown(1) owner                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>postinstall_cmd</CODE
+>
+: string, Shell command to execute after installing                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>error_cmd</CODE
+>
+: string, Shell command to execute if any error occurs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>preinstall_cmd</CODE
+>
+: string, Shell command to execute prior to installing                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dest</CODE
+>
+: string, Absolute path where file should be installed                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ignore_cmd_errors</CODE
+>
+: boolean, Install file anyway even if an error occurs                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Configuration file is active                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_permissions</CODE
+>
+: string, chmod(1) permissions                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>source</CODE
+>
+: string, Relative path on the boot server where file can be downloaded                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>always_update</CODE
+>
+: boolean, Always attempt to install file even if unchanged                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>file_group</CODE
+>
+: string, chgrp(1) owner                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateKey"
+>2.102. UpdateKey</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6100"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateKey (auth, key_id, key_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6103"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing key with the values in
+key_fields.</P
+><P
+>Non-admins may only update their own keys.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6108"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>key_id</CODE
+>
+: int, Key identifier                  </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>key_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key_type</CODE
+>
+: string, Key type                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Key value                                    </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateMessage"
+>2.103. UpdateMessage</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6139"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateMessage (auth, message_id, message_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6142"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing message template with the
+values in message_fields.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6146"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>message_id</CODE
+>
+: string, Message identifier                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>message_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Message is enabled                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>template</CODE
+>
+: string, Message template                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateNodeGroup"
+>2.104. UpdateNodeGroup</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6177"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateNodeGroup (auth, nodegroup_id_or_name, nodegroup_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6180"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates a custom node group.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6184"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node group identifier                                       </P
+></LI
+><LI
+><P
+>&#13;string, Node group name                                  </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodegroup_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Node group name                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Node group description                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateNodeNetwork"
+>2.105. UpdateNodeNetwork</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6220"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateNodeNetwork (auth, nodenetwork_id, nodenetwork_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6223"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates an existing node network. Any values specified in
+nodenetwork_fields are used, otherwise defaults are
+used. Acceptable values for method are dhcp and static. If type is
+static, then ip, gateway, network, broadcast, netmask, and dns1
+must all be specified in nodenetwork_fields. If type is dhcp,
+these parameters, even if specified, are ignored.</P
+><P
+>PIs and techs may only update networks associated with their own
+nodes. Admins may update any node network.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6228"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodenetwork_id</CODE
+>
+: int, Node interface identifier                       </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>nodenetwork_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>network</CODE
+>
+: string, Subnet address                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>is_primary</CODE
+>
+: boolean, Is the primary interface for this node                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dns1</CODE
+>
+: string, IP address of primary DNS server                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, (Optional) Hostname                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>mac</CODE
+>
+: string, MAC address                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>bwlimit</CODE
+>
+: int, Bandwidth limit                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>broadcast</CODE
+>
+: string, Network broadcast address                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Addressing method (e.g., 'static' or 'dhcp')                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>netmask</CODE
+>
+: string, Subnet mask                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>dns2</CODE
+>
+: string, IP address of secondary DNS server                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, IP address                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>type</CODE
+>
+: string, Address type (e.g., 'ipv4')                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>gateway</CODE
+>
+: string, IP address of primary gateway                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateNode"
+>2.106. UpdateNode</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6292"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateNode (auth, node_id_or_hostname, node_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6295"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates a node. Only the fields specified in node_fields are
+updated, all other fields are left untouched.</P
+><P
+>PIs and techs can update only the nodes at their sites. Only
+admins can update the key, session, and boot_nonce fields.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6300"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_id_or_hostname</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Node identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Fully qualified hostname                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>node_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>version</CODE
+>
+: string, Apparent Boot CD version                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_state</CODE
+>
+: string, Boot state                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, Fully qualified hostname                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>boot_nonce</CODE
+>
+: string, (Admin only) Random value generated by the node at last boot                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>session</CODE
+>
+: string, (Admin only) Node session value                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, (Admin only) Node key                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, Make and model of the actual machine                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdatePCU"
+>2.107. UpdatePCU</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6351"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdatePCU (auth, pcu_id, pcu_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6354"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing PCU with the values in
+pcu_fields.</P
+><P
+>Non-admins may only update PCUs at their sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6359"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_id</CODE
+>
+: int, PCU identifier                  </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>pcu_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>username</CODE
+>
+: string, PCU username                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>protocol</CODE
+>
+: string, PCU protocol, e.g. ssh, https, telnet                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>node_ids</CODE
+>
+: array, List of nodes that this PCU controls                                  </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ip</CODE
+>
+: string, PCU IP address                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>notes</CODE
+>
+: string, Miscellaneous notes                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>hostname</CODE
+>
+: string, PCU hostname                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>model</CODE
+>
+: string, PCU model string                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string, PCU username                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>ports</CODE
+>
+: array, List of the port numbers that each node is connected to                                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int                                                      </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdatePeer"
+>2.108. UpdatePeer</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6417"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdatePeer (auth, peer_id_or_name, peer_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6420"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates a peer. Only the fields specified in peer_fields are
+updated, all other fields are left untouched.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6424"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>peer_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Peer identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Peer name                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>peer_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>key</CODE
+>
+: string, Peer GPG public key                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>cacert</CODE
+>
+: string, Peer SSL public certificate                                  </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peername</CODE
+>
+: string, Peer name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>peer_url</CODE
+>
+: string, Peer API URL                                 </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdatePerson"
+>2.109. UpdatePerson</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6466"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdatePerson (auth, person_id_or_email, person_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6469"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates a person. Only the fields specified in person_fields are
+updated, all other fields are left untouched.</P
+><P
+>Users and techs can only update themselves. PIs can only update
+themselves and other non-PIs at their sites.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6474"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user, tech</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>bio</CODE
+>
+: string, Biography                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>first_name</CODE
+>
+: string, Given name                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>last_name</CODE
+>
+: string, Surname                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>title</CODE
+>
+: string, Title                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, Home page                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Has been enabled                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>phone</CODE
+>
+: string, Telephone number                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>password</CODE
+>
+: string, Account password in crypt() form                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>email</CODE
+>
+: string, Primary e-mail address                                       </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateSite"
+>2.110. UpdateSite</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6531"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateSite (auth, site_id_or_login_base, site_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6534"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates a site. Only the fields specified in update_fields are
+updated, all other fields are left untouched.</P
+><P
+>PIs can only update sites they are a member of. Only admins can
+update max_slices, max_slivers, and login_base.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6539"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_id_or_login_base</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Site identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Site slice prefix                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>site_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Full site name                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, URL of a page that describes the site                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>enabled</CODE
+>
+: boolean, Has been enabled                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>longitude</CODE
+>
+: double, Decimal longitude of the site                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>latitude</CODE
+>
+: double, Decimal latitude of the site                                 </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_slices</CODE
+>
+: int, Maximum number of slices that the site is able to create                                        </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>login_base</CODE
+>
+: string, Site slice prefix                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_slivers</CODE
+>
+: int, Maximum number of slivers that the site is able to create                                       </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>is_public</CODE
+>
+: boolean, Publicly viewable site                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>abbreviated_name</CODE
+>
+: string, Abbreviated site name                                        </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateSliceAttribute"
+>2.111. UpdateSliceAttribute</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6599"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateSliceAttribute (auth, slice_attribute_id, value)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6602"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the value of an existing slice or sliver attribute.</P
+><P
+>Users may only update attributes of slices or slivers of which
+they are members. PIs may only update attributes of slices or
+slivers at their sites, or of which they are members. Admins may
+update attributes of any slice or sliver.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6607"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_attribute_id</CODE
+>
+: int, Slice attribute identifier                      </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>value</CODE
+>
+: string, Slice attribute value                        </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateSliceAttributeType"
+>2.112. UpdateSliceAttributeType</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6631"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateSliceAttributeType (auth, attribute_type_id_or_name, attribute_type_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6634"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing attribute with the values in
+attribute_type_fields.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6638"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>attribute_type_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice attribute type identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Slice attribute type name                                        </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>attribute_type_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>min_role_id</CODE
+>
+: int, Minimum (least powerful) role that can set or change this attribute                                     </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>name</CODE
+>
+: string, Slice attribute type name                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice attribute type description                                     </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="UpdateSlice"
+>2.113. UpdateSlice</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6677"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>UpdateSlice (auth, slice_id_or_name, slice_fields)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6680"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Updates the parameters of an existing slice with the values in
+slice_fields.</P
+><P
+>Users may only update slices of which they are members. PIs may
+update any of the slices at their sites, or any slices of which
+they are members. Admins may update any slice.</P
+><P
+>Only PIs and admins may update max_nodes. Slices cannot be renewed
+(by updating the expires parameter) more than 8 weeks into the
+future.</P
+><P
+>Returns 1 if successful, faults otherwise.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6686"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin, pi, user</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_id_or_name</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, Slice identifier                                    </P
+></LI
+><LI
+><P
+>&#13;string, Slice name                                       </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>slice_fields</CODE
+>
+: struct                       </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>url</CODE
+>
+: string, URL further describing this slice                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>max_nodes</CODE
+>
+: int, Maximum number of nodes that can be assigned to this slice                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>instantiation</CODE
+>
+: string, Slice instantiation state                                    </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>expires</CODE
+>
+: int, Date and time when slice expires, in seconds since UNIX epoch                                   </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>description</CODE
+>
+: string, Slice description                                    </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if successful                     </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="VerifyPerson"
+>2.114. VerifyPerson</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6731"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>VerifyPerson (auth, person_id_or_email, verification_key, verification_expires)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6734"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Verify a new (must be disabled) user's e-mail address and registration.</P
+><P
+>If verification_key is not specified, then a new verification_key
+will be generated and stored with the user's account. The key will
+be e-mailed to the user in the form of a link to a web page.</P
+><P
+>The web page should verify the key by calling this function again
+and specifying verification_key. If the key matches what has been
+stored in the user's account, then an e-mail will be sent to the
+user's PI (and support if the user is requesting a PI role),
+asking the PI (or support) to enable the account.</P
+><P
+>Returns 1 if the verification key if valid.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6740"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>admin</P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>auth</CODE
+>
+: struct, API authentication structure                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>AuthMethod</CODE
+>
+: string, Authentication method to use                                 </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>person_id_or_email</CODE
+>
+: int or string                        </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, User identifier                                     </P
+></LI
+><LI
+><P
+>&#13;string, Primary e-mail address                                   </P
+></LI
+></UL
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>verification_key</CODE
+>
+: string, Reset password key                   </P
+></LI
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>verification_expires</CODE
+>
+: int, Date and time when verification_key expires                     </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;int, 1 if verification_key is valid                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="system.listMethods"
+>2.115. system.listMethods</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6772"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>system.listMethods ()</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6775"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>This method lists all the methods that the XML-RPC server knows
+how to dispatch.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6778"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+></P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>None</P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array, List of methods                   </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="system.methodHelp"
+>2.116. system.methodHelp</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6791"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>system.methodHelp (method)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6794"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns help text if defined for the method passed, otherwise
+returns an empty string.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6797"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+></P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Method name                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string, Method help                      </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="system.methodSignature"
+>2.117. system.methodSignature</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6811"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>system.methodSignature (method)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6814"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Returns an array of known signatures (an array of arrays) for the
+method name passed. If no signatures are known, returns a
+none-array (test for type != array to detect missing signature).</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6817"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+></P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>method</CODE
+>
+: string, Method name                  </P
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of array, Method signature                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;string                                   </P
+></LI
+></UL
+></LI
+></UL
+></DIV
+><DIV
+CLASS="section"
+><HR><H2
+CLASS="section"
+><A
+NAME="system.multicall"
+>2.118. system.multicall</A
+></H2
+><P
+>Prototype:<A
+NAME="AEN6834"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>system.multicall (calls)</P
+></BLOCKQUOTE
+></P
+><P
+>Description:<A
+NAME="AEN6837"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Process an array of calls, and return an array of results. Calls
+should be structs of the form</P
+><P
+>{'methodName': string, 'params': array}</P
+><P
+>Each result will either be a single-item array containg the result
+value, or a struct of the form</P
+><P
+>{'faultCode': int, 'faultString': string}</P
+><P
+>This is useful when you need to make lots of small calls without
+lots of round trips.</P
+></BLOCKQUOTE
+></P
+><P
+>Allowed Roles:<A
+NAME="AEN6844"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+></P
+></BLOCKQUOTE
+></P
+><P
+>Parameters:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                         <CODE
+CLASS="parameter"
+>calls</CODE
+>
+: array of struct                      </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>params</CODE
+>
+: array, Method arguments                                      </P
+></LI
+><LI
+><P
+>&#13;                                         <CODE
+CLASS="parameter"
+>methodName</CODE
+>
+: string, Method name                                  </P
+></LI
+></UL
+></LI
+></UL
+><P
+>Returns:</P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of mixed or struct                 </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;array of mixed                                   </P
+></LI
+><LI
+><P
+>&#13;struct                                   </P
+><P
+></P
+><UL
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>faultCode</CODE
+>
+: int, XML-RPC fault code                                                      </P
+></LI
+><LI
+><P
+>&#13;                                                         <CODE
+CLASS="parameter"
+>faultString</CODE
+>
+: int, XML-RPC fault detail                                                    </P
+></LI
+></UL
+></LI
+></UL
+></LI
+></UL
+></DIV
+></DIV
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file