Go to main content

Remote Administration Daemon Developer's Guide

Exit Print View

Updated: April 2020
 
 

zonemgr ADR Interface Description Language Example

The example in this appendix shows some APIs used in the zonemgr ADR Interface Description Language. It does not reflect the actual full implementation of the zonemgr APIs in Oracle Solaris.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<api xmlns="http://xmlns.oracle.com/radadr" name="com.oracle.solaris.rad.zonemgr">
  <version major="1" minor="0"/>
  <enum name="ErrorCode">
    <value name="NONE" value="0"/>
    <value name="FRAMEWORK_ERROR"/>
    <value name="SNAPSHOT_ERROR"/>
    <value name="COMMAND_ERROR"/>
    <value name="RESOURCE_ALREADY_EXISTS"/>
    <value name="RESOURCE_NOT_FOUND"/>
    <value name="RESOURCE_TOO_MANY"/>
    <value name="RESOURCE_UNKNOWN"/>
    <value name="ALREADY_EDITING"/>
    <value name="PROPERTY_UNKNOWN"/>
    <value name="NOT_EDITING"/>
    <value name="SYSTEM_ERROR"/>
    <value name="INVALID_ARGUMENT"/>
    <value name="INVALID_ZONE_STATE"/>
  </enum>
  <struct name="Result" stability="private">
    <field typeref="ErrorCode" name="code" nullable="true"/>
    <field type="string" name="str" nullable="true"/>
    <field type="string" name="stdout" nullable="true"/>
    <field type="string" name="stderr" nullable="true"/>
  </struct>
  <struct name="ConfigChange">
    <field type="string" name="zone"/>
  </struct>
  <struct name="StateChange">
    <field type="string" name="zone"/>
    <field type="string" name="oldstate"/>
    <field type="string" name="newstate"/>
  </struct>
  <enum name="PropertyValueType">
    <value name="PROP_SIMPLE"/>
    <value name="PROP_LIST"/>
    <value name="PROP_COMPLEX"/>
  </enum>
  <struct name="Property">
    <field name="name" type="string"/>
    <field name="value" type="string" nullable="true"/>
    <field name="type" typeref="PropertyValueType" nullable="true"/>
    <field name="listvalue" nullable="true">
      <list type="string"/>
    </field>
    <field name="complexvalue" nullable="true">
      <list type="string"/>
    </field>
  </struct>
  <struct name="Resource">
    <field type="string" name="type"/>
    <field name="properties" nullable="true">
      <list typeref="Property"/>
    </field>
    <field name="parent" type="string" nullable="true"/>
  </struct>
  <interface name="ZoneManager">
    <method name="create">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="name" type="string"/>
      <argument name="path" type="string" nullable="true"/>
      <argument name="template" type="string" nullable="true"/>
    </method>
    <method name="delete">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="name" type="string"/>
    </method>
    <method name="importConfig">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="noexecute" type="boolean"/>
      <argument name="name" type="string"/>
      <argument name="configuration">
        <list type="string"/>
      </argument>
    </method>
    <event typeref="StateChange" name="stateChange"/>
  </interface>
  <interface name="ZoneInfo">
    <property name="brand" access="ro" type="string"/>
    <property name="id" access="ro" type="integer"/>
    <property name="uuid" access="ro" type="string" nullable="true">
      <error typeref="Result"/>
    </property>
    <property name="name" access="ro" type="string"/>
    <property name="isGlobal" access="ro" type="boolean"/>
  </interface>
  <interface name="Zone">
    <name key="name" primary="true"/>
    <name key="id"/>
    <property name="auxstate" access="ro" nullable="true">
      <list type="string"/>
      <error typeref="Result"/>
    </property>
    <property name="brand" access="ro" type="string"/>
    <property name="id" access="ro" type="integer"/>
    <property name="uuid" access="ro" type="string" nullable="true">
      <error typeref="Result"/>
    </property>
    <property name="name" access="ro" type="string"/>
    <property name="state" access="ro" type="string"/>
    <method name="cancelConfig">
      <error typeref="Result"/>
    </method>
    <method name="exportConfig">
      <result type="string"/>
      <error typeref="Result"/>
      <argument name="includeEdits" type="boolean" nullable="true"/>
      <argument type="boolean" name="liveMode" nullable="true"/>
    </method>
    <method name="update">
      <error typeref="Result"/>
      <argument name="noexecute" type="boolean"/>
      <argument name="commands">
        <list type="string"/>
      </argument>
    </method>
    <method name="editConfig">
      <error typeref="Result"/>
      <argument type="boolean" name="liveMode" nullable="true"/>
    </method>
    <method name="commitConfig">
      <error typeref="Result"/>
    </method>
    <method name="configIsLive">
      <result type="boolean"/>
    </method>
    <method name="configIsStale">
      <result type="boolean"/>
      <error typeref="Result"/>
    </method>
    <method name="addResource">
      <error typeref="Result"/>
      <argument name="resource" typeref="Resource"/>
      <argument name="scope" typeref="Resource" nullable="true"/>
    </method>
    <method name="reloadConfig">
      <error typeref="Result"/>
      <argument type="boolean" name="liveMode" nullable="true"/>
    </method>
    <method name="removeResources">
      <error typeref="Result"/>
      <argument name="filter" typeref="Resource" nullable="false"/>
      <argument name="scope" typeref="Resource" nullable="true"/>
    </method>
    <method name="getResources">
      <result>
        <list typeref="Resource"/>
      </result>
      <error typeref="Result"/>
      <argument name="filter" typeref="Resource" nullable="true"/>
      <argument name="scope" typeref="Resource" nullable="true"/>
    </method>
    <method name="getResourceProperties">
      <result>
        <list typeref="Property"/>
      </result>
      <error typeref="Result"/>
      <argument name="filter" typeref="Resource" nullable="false"/>
      <argument name="properties" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="setResourceProperties">
      <error typeref="Result"/>
      <argument name="filter" typeref="Resource" nullable="false"/>
      <argument name="properties" nullable="false">
        <list typeref="Property"/>
      </argument>
    </method>
    <method name="clearResourceProperties">
      <error typeref="Result"/>
      <argument name="filter" typeref="Resource" nullable="false"/>
      <argument name="properties" nullable="false">
        <list type="string"/>
      </argument>
    </method>
    <method name="apply">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="attach">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="boot">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="clone">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="detach">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="halt">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="install">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="mark">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="move">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="rename">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="ready">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="reboot">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="savecore">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="shutdown">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="suspend">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="uninstall">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="verify">
      <result typeref="Result"/>
      <error typeref="Result"/>
      <argument name="options" nullable="true">
        <list type="string"/>
      </argument>
    </method>
    <method name="getManager">
      <result typeref="ZoneManager"/>
    </method>
    <event typeref="ConfigChange" name="configChange"/>
  </interface>
</api>