<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>NodeList &#8212; v2.1.0-beta</title>
    
    <link rel="stylesheet" href="../_static/dataone.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '2.1.0-beta',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/mathjax_pre.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Querying DataONE" href="querying_content.html" />
    <link rel="prev" title="Logging Schema" href="LoggingSchema.html" />
   
  
  <link media="only screen and (max-device-width: 480px)" href="../_static/small_dataone.css" type= "text/css" rel="stylesheet" />

  </head>
  <body role="document">
  
    <div class="version_notice">
      <p>
      <span class='bold'>Warning:</span> These documents are under active 
      development and subject to change (version 2.1.0-beta).<br />
      The latest release documents are at:
      <a href="https://purl.dataone.org/architecture">https://purl.dataone.org/architecture</a>
      </p>
    </div>

    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="querying_content.html" title="Querying DataONE"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="LoggingSchema.html" title="Logging Schema"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html"></a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">&lt;no title&gt;</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="module-NodeList">
<span id="nodelist"></span><h1>NodeList<a class="headerlink" href="#module-NodeList" title="Permalink to this headline">¶</a></h1>
<p><strong>This document is OBSOLETE, and has been superseded by information in the
DataONE types schema.  It will be deleted after review.</strong></p>
<p>A NodeList is a synchronized register for all of the nodes in the DataONE
environment. It contains the information needed by DataONE to orchestrate
activities across the distributed coordinating and member nodes of the
network. While some information is provided by the Member Nodes themselves,
the <em>node list</em> is maintained dynamically by the Coordinating Nodes. The <em>node
list</em> is mutable in that it reflects the latest state of the nodes that are
part of the system. Replicated copies of the <em>node list</em> are maintained at
each of the Coordinating nodes.</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Registry</span>

  <span class="n">ContactGroup</span>
    <span class="n">groupid</span>
    <span class="n">name</span>
    <span class="n">description</span>
    <span class="n">members</span>

  <span class="n">Contact</span>
    <span class="n">contactid</span>
    <span class="n">role</span> <span class="p">(</span><span class="n">administrator</span><span class="p">,</span> <span class="n">manager</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
    <span class="n">givenName</span> <span class="p">(</span><span class="n">first</span> <span class="n">name</span><span class="p">)</span>
    <span class="n">sn</span> <span class="p">(</span><span class="n">surname</span><span class="p">)</span>
    <span class="n">notification</span>
      <span class="nb">type</span> <span class="p">(</span><span class="n">phone</span><span class="p">,</span> <span class="n">email</span><span class="p">,</span> <span class="n">IRC</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
      <span class="n">connection</span> <span class="p">(</span><span class="n">phone</span> <span class="n">number</span><span class="p">,</span> <span class="n">email</span> <span class="n">address</span><span class="p">,</span> <span class="n">IRC</span> <span class="n">channel</span><span class="p">)</span>

  <span class="n">Network</span> <span class="p">(</span><span class="mf">1.</span><span class="o">.</span><span class="n">n</span><span class="p">,</span> <span class="n">replaces</span> <span class="s2">&quot;environment&quot;</span><span class="p">)</span>
    <span class="n">networkid</span>
    <span class="n">name</span>
    <span class="n">description</span>
    <span class="n">adminGroup</span>
    <span class="n">notifyGroup</span>

  <span class="n">Node</span>
    <span class="n">nodeid</span>
    <span class="n">name</span>
    <span class="n">description</span>
    <span class="n">location</span>
    <span class="n">adminGroup</span>
    <span class="n">notifyGroup</span>
    <span class="n">created</span> <span class="p">(</span><span class="n">date</span> <span class="n">created</span> <span class="o">/</span> <span class="n">registered</span><span class="p">)</span>
    <span class="n">modified</span> <span class="p">(</span><span class="n">time</span> <span class="n">stamp</span> <span class="k">for</span> <span class="n">modification</span><span class="p">)</span>
    <span class="n">lastSynchronization</span> <span class="p">(</span><span class="n">time</span> <span class="n">stamp</span><span class="p">)</span>
    <span class="n">objectFormatsSupported</span> <span class="p">(</span><span class="nb">list</span> <span class="n">of</span> <span class="nb">object</span> <span class="n">formats</span> <span class="n">known</span> <span class="n">to</span> <span class="n">support</span><span class="p">)</span>
    <span class="n">synchronize</span>
    <span class="n">replicate</span>
    <span class="n">replicationTarget</span>

    <span class="n">service</span>
      <span class="n">version</span> <span class="p">(</span><span class="n">schema</span> <span class="n">version</span> <span class="n">supported</span><span class="p">,</span> <span class="n">MN</span><span class="p">)</span>
      <span class="n">baseURL</span> <span class="p">(</span><span class="n">MN</span><span class="p">)</span>
      <span class="n">name</span> <span class="p">(</span><span class="n">human</span> <span class="n">readable</span> <span class="n">name</span> <span class="k">for</span> <span class="n">service</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">g</span><span class="o">.</span> <span class="s2">&quot;DataONE-0.6.1&quot;</span><span class="p">,</span> <span class="n">MN</span><span class="p">)</span>
      <span class="n">activeNetwork</span> <span class="p">(</span><span class="nb">id</span> <span class="n">of</span> <span class="n">network</span> <span class="n">this</span> <span class="n">interface</span> <span class="ow">is</span> <span class="n">active</span> <span class="k">for</span><span class="p">,</span> <span class="n">MN</span><span class="p">)</span>
      <span class="n">lastChecked</span> <span class="p">(</span><span class="n">last</span> <span class="n">time</span> <span class="n">service</span> <span class="n">was</span> <span class="n">examined</span><span class="p">,</span> <span class="n">CN</span><span class="p">)</span>
      <span class="n">method</span>
        <span class="n">name</span> <span class="p">(</span><span class="n">MN</span><span class="p">)</span>
        <span class="n">isactive</span> <span class="p">(</span><span class="nb">set</span> <span class="n">by</span> <span class="n">CN</span><span class="p">)</span>
</pre></div>
</div>
<p>The <em>node list</em> is a complex data type, with three main sub-structures:
services, synchronization, and health. Some data is provided at node
registration time, while other items are generated by DataONE itself in the
course of managing objects.</p>
<p>The nodelist schema is expressed in XMLSchema and is available at:</p>
<blockquote>
<div><a class="reference external" href="https://repository.dataone.org/software/cicore/trunk/schemas/nodelist.xsd">https://repository.dataone.org/software/cicore/trunk/schemas/nodelist.xsd</a></div></blockquote>
<p>The following list of fields represents the set of information collected and
maintained by Coordinating Nodes for every node in the system.</p>
<p><strong>Table 1.</strong> Quick reference to the NodeList fields described in more detail below.</p>
<table border="1" class="docutils">
<colgroup>
<col width="14%" />
<col width="39%" />
<col width="21%" />
<col width="10%" />
<col width="10%" />
<col width="6%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Group</th>
<th class="head">Field</th>
<th class="head">Type</th>
<th class="head">Cardinality</th>
<th class="head">Generate By</th>
<th class="head">Version</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>General</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.identifier" title="NodeList.identifier"><code class="xref py py-attr docutils literal"><span class="pre">identifier</span></code></a></td>
<td>NodeReference</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.name" title="NodeList.name"><code class="xref py py-attr docutils literal"><span class="pre">name</span></code></a></td>
<td>NonEmptyString</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.description" title="NodeList.description"><code class="xref py py-attr docutils literal"><span class="pre">description</span></code></a></td>
<td>NonEmptyString</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.baseURL" title="NodeList.baseURL"><code class="xref py py-attr docutils literal"><span class="pre">baseURL</span></code></a></td>
<td>anyURI</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">services</span></code></td>
<td>Service</td>
<td>0..n</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization</span></code></td>
<td>Synchronization</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">health</span></code></td>
<td>NodeHealth</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.replicate" title="NodeList.replicate"><code class="xref py py-attr docutils literal"><span class="pre">replicate</span></code></a></td>
<td>boolean</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.synchronize" title="NodeList.synchronize"><code class="xref py py-attr docutils literal"><span class="pre">synchronize</span></code></a></td>
<td>boolean</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.type" title="NodeList.type"><code class="xref py py-attr docutils literal"><span class="pre">type</span></code></a></td>
<td>NodeType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.environment" title="NodeList.environment"><code class="xref py py-attr docutils literal"><span class="pre">environment</span></code></a></td>
<td>Environment</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td>Services</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.services.name" title="NodeList.services.name"><code class="xref py py-attr docutils literal"><span class="pre">services.name</span></code></a></td>
<td>ServiceName</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.services.version" title="NodeList.services.version"><code class="xref py py-attr docutils literal"><span class="pre">services.version</span></code></a></td>
<td>string</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.services.available" title="NodeList.services.available"><code class="xref py py-attr docutils literal"><span class="pre">services.available</span></code></a></td>
<td>boolean</td>
<td>0..1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">services.method</span></code></td>
<td>ServiceMethod</td>
<td>0..n</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.services.method.name" title="NodeList.services.method.name"><code class="xref py py-attr docutils literal"><span class="pre">services.method.name</span></code></a></td>
<td>NMToken</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.services.method.rest" title="NodeList.services.method.rest"><code class="xref py py-attr docutils literal"><span class="pre">services.method.rest</span></code></a></td>
<td>xs:token</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.services.method.implemented" title="NodeList.services.method.implemented"><code class="xref py py-attr docutils literal"><span class="pre">services.method.implemented</span></code></a></td>
<td>boolean</td>
<td>1</td>
<td>MN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td>Synchronization</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.synchronization.lastHarvested" title="NodeList.synchronization.lastHarvested"><code class="xref py py-attr docutils literal"><span class="pre">synchronization.lastHarvested</span></code></a></td>
<td>dateTime</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.synchronization.lastCompleteHarvest" title="NodeList.synchronization.lastCompleteHarvest"><code class="xref py py-attr docutils literal"><span class="pre">synchronization.lastCompleteHarvest</span></code></a></td>
<td>dateTime</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.synchronization.schedule" title="NodeList.synchronization.schedule"><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule</span></code></a></td>
<td>Schedule</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.sec</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.min</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.hour</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.mday</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.mon</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.year</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">synchronization.schedule.wday</span></code></td>
<td>crontabEntryType</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td>Health</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="row-even"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">health.ping</span></code></td>
<td>Ping</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><code class="xref py py-attr docutils literal"><span class="pre">health.status</span></code></td>
<td>Status</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.health.state" title="NodeList.health.state"><code class="xref py py-attr docutils literal"><span class="pre">health.state</span></code></a></td>
<td>State</td>
<td>1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.health.ping.success" title="NodeList.health.ping.success"><code class="xref py py-attr docutils literal"><span class="pre">health.ping.success</span></code></a></td>
<td>boolean</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.health.ping.lastSuccess" title="NodeList.health.ping.lastSuccess"><code class="xref py py-attr docutils literal"><span class="pre">health.ping.lastSuccess</span></code></a></td>
<td>dateTime</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-odd"><td></td>
<td><a class="reference internal" href="#NodeList.health.status.success" title="NodeList.health.status.success"><code class="xref py py-attr docutils literal"><span class="pre">health.status.success</span></code></a></td>
<td>boolean</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
<tr class="row-even"><td></td>
<td><a class="reference internal" href="#NodeList.health.status.dateChecked" title="NodeList.health.status.dateChecked"><code class="xref py py-attr docutils literal"><span class="pre">health.status.dateChecked</span></code></a></td>
<td>dateTime</td>
<td>0..1</td>
<td>CN</td>
<td><strong>0.5</strong></td>
</tr>
</tbody>
</table>
<div class="section" id="nodelist-fields">
<h2>NodeList fields<a class="headerlink" href="#nodelist-fields" title="Permalink to this headline">¶</a></h2>
<dl class="attribute">
<dt id="NodeList.identifier">
<code class="descclassname">NodeList.</code><code class="descname">identifier</code><a class="headerlink" href="#NodeList.identifier" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the node of type NodeReference.  This may initially
be the same as the baseURL, however this value should not change for future
implementations of the same node, whereas the baseURL may change in the
future.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">NodeReference</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.name">
<code class="descclassname">NodeList.</code><code class="descname">name</code><a class="headerlink" href="#NodeList.name" title="Permalink to this definition">¶</a></dt>
<dd><p>A human readable name for the node. (The name of the node is being used in
Mercury currently to assign a path, so the format should be consistent with
dataone directory naming conventions).</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">NonEmptyString</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.description">
<code class="descclassname">NodeList.</code><code class="descname">description</code><a class="headerlink" href="#NodeList.description" title="Permalink to this definition">¶</a></dt>
<dd><p>Description of content maintained by this node and any other free style
notes.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">NonEmptyString</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.baseURL">
<code class="descclassname">NodeList.</code><code class="descname">baseURL</code><a class="headerlink" href="#NodeList.baseURL" title="Permalink to this definition">¶</a></dt>
<dd><p>Of type anyURI, it is the base URL that is complete enough with the
service.method.rest attribute to create a valid call.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">anyURI</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.replicate">
<code class="descclassname">NodeList.</code><code class="descname">replicate</code><a class="headerlink" href="#NodeList.replicate" title="Permalink to this definition">¶</a></dt>
<dd><p>A flag to tell the CN whether or not to replicate MN data.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">boolean</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.synchronize">
<code class="descclassname">NodeList.</code><code class="descname">synchronize</code><a class="headerlink" href="#NodeList.synchronize" title="Permalink to this definition">¶</a></dt>
<dd><p>A flag to tell the CN to synchronize or not.  Applies to CNs and MNs
(although CNs are presumed to synchronize)</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">boolean</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.type">
<code class="descclassname">NodeList.</code><code class="descname">type</code><a class="headerlink" href="#NodeList.type" title="Permalink to this definition">¶</a></dt>
<dd><p>The type of node in the dataONE world this one is. Legal
values are &#8220;MN&#8221; and &#8220;CN&#8221;.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">NodeType</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.environment">
<code class="descclassname">NodeList.</code><code class="descname">environment</code><a class="headerlink" href="#NodeList.environment" title="Permalink to this definition">¶</a></dt>
<dd><p>The systems environment the node belongs to. Legal values
are &#8220;dev&#8221;, &#8220;test&#8221;, &#8220;staging&#8221;, and &#8220;prod&#8221;.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">Environment</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.services.name">
<code class="descclassname">services.</code><code class="descname">name</code><a class="headerlink" href="#NodeList.services.name" title="Permalink to this definition">¶</a></dt>
<dd><p>The name of the service exposed by the node</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">ServiceName</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.services.version">
<code class="descclassname">services.</code><code class="descname">version</code><a class="headerlink" href="#NodeList.services.version" title="Permalink to this definition">¶</a></dt>
<dd><p>The version of the service implemented.  Since not all member nodes can be
orchestrated to migrate versions simultaneously, the version is needed to
ensure business continuity in the eventuality of dataone-service-api
upgrades.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">string</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.services.available">
<code class="descclassname">services.</code><code class="descname">available</code><a class="headerlink" href="#NodeList.services.available" title="Permalink to this definition">¶</a></dt>
<dd><p>A flag to indicate whether or not the service is available.  Determined by
the CN.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">0..1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">boolean</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.services.method.name">
<code class="descclassname">services.method.</code><code class="descname">name</code><a class="headerlink" href="#NodeList.services.method.name" title="Permalink to this definition">¶</a></dt>
<dd><p>the name of the method implemented by the service</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">0..1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">NMToken</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.services.method.rest">
<code class="descclassname">services.method.</code><code class="descname">rest</code><a class="headerlink" href="#NodeList.services.method.rest" title="Permalink to this definition">¶</a></dt>
<dd><p>the rest path, relative to the baseURL of the node, that calls the method</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">xs:token</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.services.method.implemented">
<code class="descclassname">services.method.</code><code class="descname">implemented</code><a class="headerlink" href="#NodeList.services.method.implemented" title="Permalink to this definition">¶</a></dt>
<dd><p>A flag to indicate if this method is implemented on the node.  Determined by
the MN through the addCapabilities method.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">boolean</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.synchronization.lastHarvested">
<code class="descclassname">synchronization.</code><code class="descname">lastHarvested</code><a class="headerlink" href="#NodeList.synchronization.lastHarvested" title="Permalink to this definition">¶</a></dt>
<dd><p>Set by a CN, contains the time of last MN-synchronization with a CN.  The
dateTime is taken from the frame of reference of the member node, that is to
say, it uses the latest modification date from the objects harvested.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">dateTime</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.synchronization.lastCompleteHarvest">
<code class="descclassname">synchronization.</code><code class="descname">lastCompleteHarvest</code><a class="headerlink" href="#NodeList.synchronization.lastCompleteHarvest" title="Permalink to this definition">¶</a></dt>
<dd><p>Set by a CN, contains the time of the last complete harvest from a MN.  A
complete harvest is a full re-harvesting from a member node not relying on
last harvest time.  This value of this field should always be the same or
earlier than the lastHarvested field.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">dateTime</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.synchronization.schedule">
<code class="descclassname">synchronization.</code><code class="descname">schedule</code><a class="headerlink" href="#NodeList.synchronization.schedule" title="Permalink to this definition">¶</a></dt>
<dd><p>a set of numerical list or range values used to set the synchronization
schedule with a MN, following crontab formatting rules.  See wikipedia entry
for a popular, if not technical, explanation of crobtab
<cite>http://en.wikipedia.org/wiki/Cron</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">Schedule</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.health.state">
<code class="descclassname">health.</code><code class="descname">state</code><a class="headerlink" href="#NodeList.health.state" title="Permalink to this definition">¶</a></dt>
<dd><p>The state of health of the node, based on ping and status calls.  Legal
values are &#8220;up&#8221;, &#8220;down&#8221;, &#8220;unknown&#8221;.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">State</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.health.ping.success">
<code class="descclassname">health.ping.</code><code class="descname">success</code><a class="headerlink" href="#NodeList.health.ping.success" title="Permalink to this definition">¶</a></dt>
<dd><p>A flag showing whether the last mn_health.ping was successful or not.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">0..1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">boolean</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.health.ping.lastSuccess">
<code class="descclassname">health.ping.</code><code class="descname">lastSuccess</code><a class="headerlink" href="#NodeList.health.ping.lastSuccess" title="Permalink to this definition">¶</a></dt>
<dd><p>The time of last successful mn_health.ping to the node.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">0..1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">dateTime</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.health.status.success">
<code class="descclassname">health.status.</code><code class="descname">success</code><a class="headerlink" href="#NodeList.health.status.success" title="Permalink to this definition">¶</a></dt>
<dd><p>A flag showing whether the last mn_health.status method call was successful
or not.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">0..1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">boolean</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="NodeList.health.status.dateChecked">
<code class="descclassname">health.status.</code><code class="descname">dateChecked</code><a class="headerlink" href="#NodeList.health.status.dateChecked" title="Permalink to this definition">¶</a></dt>
<dd><p>The time of the last mn_health.status call to the node.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">0..1</td>
</tr>
<tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">dateTime</td>
</tr>
<tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">CN</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">0.5</td>
</tr>
</tbody>
</table>
<p>The object format in protocol buffer format
A set of values that describe a node, its Internet location, the services it
supports and its replication policy.</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">message</span> <span class="n">Node</span>
<span class="p">{</span>
  <span class="n">required</span> <span class="n">NodeReference</span> <span class="n">identifier</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
  <span class="n">required</span> <span class="n">NonEmptyString</span> <span class="n">name</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
  <span class="n">required</span> <span class="n">NonEmptyString</span> <span class="n">description</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
  <span class="n">required</span> <span class="n">anyURI</span> <span class="n">baseURL</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span>
  <span class="n">repeated</span> <span class="n">Service</span> <span class="n">services</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
  <span class="n">optional</span> <span class="n">Synchronization</span> <span class="n">synchronization</span> <span class="o">=</span> <span class="mi">6</span><span class="p">;</span>
  <span class="n">optional</span> <span class="n">NodeHealth</span> <span class="n">health</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
  <span class="n">required</span> <span class="n">boolean</span> <span class="n">replicate</span> <span class="o">=</span> <span class="mi">8</span><span class="p">;</span>
  <span class="n">required</span> <span class="n">boolean</span> <span class="n">synchronize</span> <span class="o">=</span> <span class="mi">9</span><span class="p">;</span>
  <span class="n">required</span> <span class="n">NMToken</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="nb">type</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>

  <span class="n">message</span> <span class="n">Service</span>
  <span class="p">{</span>
    <span class="n">required</span> <span class="n">ServiceName</span> <span class="n">name</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">required</span> <span class="n">string</span> <span class="n">version</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="n">boolean</span> <span class="n">available</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
    <span class="n">repeated</span> <span class="n">ServiceMethod</span> <span class="n">method</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>

    <span class="n">message</span> <span class="n">ServiceMethod</span>
    <span class="p">{</span>
      <span class="n">optional</span> <span class="n">NMToken</span> <span class="n">name</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">xs</span><span class="p">:</span><span class="n">token</span> <span class="n">rest</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">boolean</span> <span class="n">implemented</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
    <span class="p">}</span>
  <span class="p">}</span>

  <span class="n">message</span> <span class="n">Synchronization</span>
  <span class="p">{</span>
    <span class="n">required</span> <span class="n">dateTime</span> <span class="n">lastHarvested</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">required</span> <span class="n">dateTime</span> <span class="n">lastCompleteHarvest</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="n">required</span> <span class="n">Schedule</span> <span class="n">schedule</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>

    <span class="n">message</span> <span class="n">Schedule</span>
    <span class="p">{</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="n">sec</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="nb">min</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="n">hour</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="n">mday</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="n">mon</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="n">year</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
      <span class="n">required</span> <span class="n">crontabEntryType</span> <span class="n">wday</span> <span class="o">=</span> <span class="mi">6</span><span class="p">;</span>
    <span class="p">}</span>
  <span class="p">}</span>

  <span class="n">message</span> <span class="n">NodeHealth</span>
  <span class="p">{</span>
    <span class="n">required</span> <span class="n">Ping</span> <span class="n">ping</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">required</span> <span class="n">Status</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="n">required</span> <span class="n">State</span> <span class="n">state</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>

    <span class="n">message</span> <span class="n">Ping</span>
    <span class="p">{</span>
      <span class="n">optional</span> <span class="n">boolean</span> <span class="n">success</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
      <span class="n">optional</span> <span class="n">dateTime</span> <span class="n">lastSuccess</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="n">message</span> <span class="n">Status</span>
    <span class="p">{</span>
      <span class="n">optional</span> <span class="n">boolean</span> <span class="n">success</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
      <span class="n">optional</span> <span class="n">dateTime</span> <span class="n">dateChecked</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="n">enum</span> <span class="n">State</span>
    <span class="p">{</span>
      <span class="n">UP</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
      <span class="n">DOWN</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
      <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
    <p class="logo"><a href="http://dataone.org">
      <img class="logo" src="../_static/dataone_logo.png" alt="Logo"/>
    </a></p>
  <h3><a href="../index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">NodeList</a><ul>
<li><a class="reference internal" href="#nodelist-fields">NodeList fields</a></li>
</ul>
</li>
</ul>
<h3>Related Topics</h3>
<ul>
  <li><a href="../index.html">Documentation Overview</a><ul>
  <li><a href="index.html">&lt;no title&gt;</a><ul>
      <li>Previous: <a href="LoggingSchema.html" title="previous chapter">Logging Schema</a></li>
      <li>Next: <a href="querying_content.html" title="next chapter">Querying DataONE</a></li>
  </ul></li>
  </ul></li>
</ul>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>

    <div class="footer">
      <div id="copyright">
      &copy; Copyright <a href="http://www.dataone.org">2009-2017, DataONE</a>.
        [ <a href="../_sources/design/NodeList.txt"
               rel="nofollow">Page Source</a> |
          <a href='https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/NodeList.txt'
            rel="nofollow">Revision History</a> ]&nbsp;&nbsp;
      </div>
      <div id="acknowledgement">
        <p>This material is based upon work supported by the National Science Foundation
          under Grant Numbers <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=0830944">083094</a> and <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=1430508">1430508</a>.</p>
        <p>Any opinions, findings, and conclusions or recommendations expressed in this
           material are those of the author(s) and do not necessarily reflect the views
           of the National Science Foundation.</p>
      </div>
    </div>
    <!--
    <hr />
     <div id="HCB_comment_box"><a href="http://www.htmlcommentbox.com">HTML Comment Box</a> is loading comments...</div>
     <link rel="stylesheet" type="text/css" href="_static/skin.css" />
     <script type="text/javascript" language="javascript" id="hcb">
     /*<! -*/
     (function()
     {s=document.createElement("script");
     s.setAttribute("type","text/javascript");
     s.setAttribute("src", "http://www.htmlcommentbox.com/jread?page="+escape((typeof hcb_user !== "undefined" && hcb_user.PAGE)||(""+window.location)).replace("+","%2B")+"&mod=%241%24wq1rdBcg%24Gg8J5iYSHJWwAJtlYu/yU."+"&opts=21407&num=10");
     if (typeof s!="undefined") document.getElementsByTagName("head")[0].appendChild(s);})();
      /* ->*/
     </script>
   -->
  </body>
</html>