Äcdocutils.nodes
document
q)Åq}q(U	nametypesq}q(X���changing system metadata valuesqNX'���updating system metadata in version 1.xqNX���system metadataqNX%���6. change member node implementationsq	NXC���roadmap to system metadata control changes (draft - to be reviewed)q
NX!���4. change library implementationsqNX���mutability of system metadataqNX���system metadata schemaq
NX���hereqàX'���updating system metadata in version 2.xqNX ���2. evaluate dataone types schemaqNX	���rationaleqNX+���5. change coordinating node implementationsqNX���7. release and deploy new nodesqNX0���1. change architecture to shift authority to mnsqNX���types schemaqàX���example documentqNX���3. change dataone apisqNuUsubstitution_defsq}qUparse_messagesq]q(cdocutils.nodes
system_message
q)Åq}q(U	rawsourceqU�Uparentq cdocutils.nodes
section
q!)Åq"}q#(hU�h h!)Åq$}q%(hU�h hUsourceq&Xj���/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/SystemMetadata.txtq'Utagnameq(Usectionq)U
attributesq*}q+(Udupnamesq,]Uclassesq-]Ubackrefsq.]Uidsq/]q0(X���module-SystemMetadataq1Usystem-metadataq2eUnamesq3]q4hauUlineq5KUdocumentq6hUchildrenq7]q8(cdocutils.nodes
title
q9)Åq:}q;(hX���System Metadataq<h h$h&h'h(Utitleq=h*}q>(h,]h-]h.]h/]h3]uh5Kh6hh7]q?cdocutils.nodes
Text
q@X���System MetadataqAÖÅqB}qC(hh<h h:ubaubcsphinx.addnodes
index
qD)ÅqE}qF(hU�h h$h&h'h(UindexqGh*}qH(h/]h.]h,]h-]h3]Uentries]qI(UsingleqJX���SystemMetadata (module)X���module-SystemMetadataU�NtqKauh5Kh6hh7]ubcdocutils.nodes
paragraph
qL)ÅqM}qN(hXC��Every object (science metadata document, data object, or resource map) managed
by DataONE has number of properties that are used to faciliate access and
mangement of the object (Figure 1). These properties are collectively called "system
metadata" (aka. :term:`sysmeta`). This document describes which properties of
system metadata may be edited and why. More detailed information about the
purpose for each property and its range of values can be found in the schema
and associated documentation available at :class:`Types.SystemMetadata` and
:class:`v2_0.Types.SystemMetadata`.h h$h&h'h(U	paragraphqOh*}qP(h,]h-]h.]h/]h3]uh5Kh6hh7]qQ(h@X˛���Every object (science metadata document, data object, or resource map) managed
by DataONE has number of properties that are used to faciliate access and
mangement of the object (Figure 1). These properties are collectively called "system
metadata" (aka. qRÖÅqS}qT(hX˛���Every object (science metadata document, data object, or resource map) managed
by DataONE has number of properties that are used to faciliate access and
mangement of the object (Figure 1). These properties are collectively called "system
metadata" (aka. h hMubcsphinx.addnodes
pending_xref
qU)ÅqV}qW(hX���:term:`sysmeta`qXh hMh&h'h(Upending_xrefqYh*}qZ(UreftypeX���termUrefwarnq[àU	reftargetq\X���sysmetaU	refdomainX���stdq]h/]h.]Urefexplicitâh,]h-]h3]Urefdocq^X���design/SystemMetadataq_uh5Kh7]q`cdocutils.nodes
inline
qa)Åqb}qc(hhXh*}qd(h,]h-]qe(Uxrefqfh]X���std-termqgeh.]h/]h3]uh hVh7]qhh@X���sysmetaqiÖÅqj}qk(hU�h hbubah(Uinlineqlubaubh@XÒ���). This document describes which properties of
system metadata may be edited and why. More detailed information about the
purpose for each property and its range of values can be found in the schema
and associated documentation available at qmÖÅqn}qo(hXÒ���). This document describes which properties of
system metadata may be edited and why. More detailed information about the
purpose for each property and its range of values can be found in the schema
and associated documentation available at h hMubhU)Åqp}qq(hX���:class:`Types.SystemMetadata`qrh hMh&h'h(hYh*}qs(UreftypeX���classh[âh\X���Types.SystemMetadataU	refdomainX���pyqth/]h.]Urefexplicitâh,]h-]h3]h^h_Upy:classquNU	py:moduleqvX���SystemMetadataqwuh5Kh7]qxcdocutils.nodes
literal
qy)Åqz}q{(hhrh*}q|(h,]h-]q}(hfhtX���py-classq~eh.]h/]h3]uh hph7]qh@X���Types.SystemMetadataqÄÖÅqÅ}qÇ(hU�h hzubah(UliteralqÉubaubh@X��� and
qÑÖÅqÖ}qÜ(hX��� and
h hMubhU)Åqá}qà(hX"���:class:`v2_0.Types.SystemMetadata`qâh hMh&h'h(hYh*}qä(UreftypeX���classh[âh\X���v2_0.Types.SystemMetadataU	refdomainX���pyqãh/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kh7]qåhy)Åqç}qé(hhâh*}qè(h,]h-]qê(hfhãX���py-classqëeh.]h/]h3]uh háh7]qíh@X���v2_0.Types.SystemMetadataqìÖÅqî}qï(hU�h hçubah(hÉubaubh@X���.ÖÅqñ}qó(hX���.h hMubeubcdocutils.nodes
figure
qò)Åqô}qö(hU�h h$h&h'h(Ufigureqõh*}qú(h,]h-]h.]h/]qùUid1qûah3]uh5Kh6hh7]qü(cdocutils.nodes
image
q†)Åq°}q¢(hX��.. figure:: images/sysmeta.png

   *Figure 1.* All managed content (science metadata, science data, and resource
   maps) in DataONE is accompanied by *system metadata* (1, 2, 3 respectively).
   The relationships between science metadata and data object, and thus the
   structure of a data package, is described by resource maps. In this simple
   data package, the resource map indicates that the science metadata document
   *documents* the science data (4), and that the science data *isDocumentedBy*
   the science metadata (5).

h hôh&h'h(Uimageq£h*}q§(UuriX���design/images/sysmeta.pngq•h/]h.]h,]h-]U
candidatesq¶}qßU*h•sh3]uh5Kh7]ubcdocutils.nodes
caption
q®)Åq©}q™(hX·��*Figure 1.* All managed content (science metadata, science data, and resource
maps) in DataONE is accompanied by *system metadata* (1, 2, 3 respectively).
The relationships between science metadata and data object, and thus the
structure of a data package, is described by resource maps. In this simple
data package, the resource map indicates that the science metadata document
*documents* the science data (4), and that the science data *isDocumentedBy*
the science metadata (5).h hôh&h'h(Ucaptionq´h*}q¨(h,]h-]h.]h/]h3]uh5Kh7]q≠(cdocutils.nodes
emphasis
qÆ)ÅqØ}q∞(hX���*Figure 1.*h*}q±(h,]h-]h.]h/]h3]uh h©h7]q≤h@X	���Figure 1.q≥ÖÅq¥}qµ(hU�h hØubah(Uemphasisq∂ubh@Xf��� All managed content (science metadata, science data, and resource
maps) in DataONE is accompanied by q∑ÖÅq∏}qπ(hXf��� All managed content (science metadata, science data, and resource
maps) in DataONE is accompanied by h h©ubhÆ)Åq∫}qª(hX���*system metadata*h*}qº(h,]h-]h.]h/]h3]uh h©h7]qΩh@X���system metadataqæÖÅqø}q¿(hU�h h∫ubah(h∂ubh@X˘��� (1, 2, 3 respectively).
The relationships between science metadata and data object, and thus the
structure of a data package, is described by resource maps. In this simple
data package, the resource map indicates that the science metadata document
q¡ÖÅq¬}q√(hX˘��� (1, 2, 3 respectively).
The relationships between science metadata and data object, and thus the
structure of a data package, is described by resource maps. In this simple
data package, the resource map indicates that the science metadata document
h h©ubhÆ)Åqƒ}q≈(hX���*documents*h*}q∆(h,]h-]h.]h/]h3]uh h©h7]q«h@X	���documentsq»ÖÅq…}q (hU�h hƒubah(h∂ubh@X1��� the science data (4), and that the science data qÀÖÅqÃ}qÕ(hX1��� the science data (4), and that the science data h h©ubhÆ)ÅqŒ}qœ(hX���*isDocumentedBy*h*}q–(h,]h-]h.]h/]h3]uh h©h7]q—h@X���isDocumentedByq“ÖÅq”}q‘(hU�h hŒubah(h∂ubh@X���
the science metadata (5).q’ÖÅq÷}q◊(hX���
the science metadata (5).h h©ubeubeubhL)Åqÿ}qŸ(hXC��System metadata is maintained dynamically by each Member Node and synchronized
with Coordinating Nodes through the synchronization process or more directly
through the :func:`CNRead.synchronize` API. The Member Node copy is
authoritative except for replica information which the Coordinating Nodes
control (Figure 2). Collation of system metadata properties starts with a
client adding content to a Member Node using the :func:`MNStorage.create` API.
System metadata contains properties that are immutable, may be set once, or may
be altered at any time by an authorized subject.h h$h&h'h(hOh*}q⁄(h,]h-]h.]h/]h3]uh5Kh6hh7]q€(h@X®���System metadata is maintained dynamically by each Member Node and synchronized
with Coordinating Nodes through the synchronization process or more directly
through the q‹ÖÅq›}qfi(hX®���System metadata is maintained dynamically by each Member Node and synchronized
with Coordinating Nodes through the synchronization process or more directly
through the h hÿubhU)Åqfl}q‡(hX���:func:`CNRead.synchronize`q·h hÿh&h'h(hYh*}q‚(UreftypeX���funch[âh\X���CNRead.synchronizeU	refdomainX���pyq„h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kh7]q‰hy)ÅqÂ}qÊ(hh·h*}qÁ(h,]h-]qË(hfh„X���py-funcqÈeh.]h/]h3]uh hflh7]qÍh@X���CNRead.synchronize()qÎÖÅqÏ}qÌ(hU�h hÂubah(hÉubaubh@X„��� API. The Member Node copy is
authoritative except for replica information which the Coordinating Nodes
control (Figure 2). Collation of system metadata properties starts with a
client adding content to a Member Node using the qÓÖÅqÔ}q(hX„��� API. The Member Node copy is
authoritative except for replica information which the Coordinating Nodes
control (Figure 2). Collation of system metadata properties starts with a
client adding content to a Member Node using the h hÿubhU)ÅqÒ}qÚ(hX���:func:`MNStorage.create`qÛh hÿh&h'h(hYh*}qÙ(UreftypeX���funch[âh\X���MNStorage.createU	refdomainX���pyqıh/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kh7]qˆhy)Åq˜}q¯(hhÛh*}q˘(h,]h-]q˙(hfhıX���py-funcq˚eh.]h/]h3]uh hÒh7]q¸h@X���MNStorage.create()q˝ÖÅq˛}qˇ(hU�h h˜ubah(hÉubaubh@XÜ��� API.
System metadata contains properties that are immutable, may be set once, or may
be altered at any time by an authorized subject.r���ÖÅr��}r��(hXÜ��� API.
System metadata contains properties that are immutable, may be set once, or may
be altered at any time by an authorized subject.h hÿubeubhò)År��}r��(hU�h h$h&h'h(hõh*}r��(h,]h-]h.]h/]r��Uid2r��ah3]uh5K%h6hh7]r��(h†)År	��}r
��(hX��.. figure:: images/sysmeta_flow.png

   *Figure 2.* System metadata is provided by Member Nodes (1) in response to a
   :func:`~MNRead.getSystemMetadata` call by the Coordinating Nodes during the
   Member Node synchronization process (2). The Coordinating Node updates the
   replica location information (3). The copy of system metadata is replicated
   between the Coordinating Nodes, and the Member Node is informed of the
   system metadata change (4). A user will typically retrieve system metadata
   from the Member Node (5) using the :func:`~MNRead.getSystemMetadata` call
   since that is the authoritative source for the information.

h j��h&h'h(h£h*}r��(UuriX���design/images/sysmeta_flow.pngr��h/]h.]h,]h-]h¶}r
��U*j��sh3]uh5K%h7]ubh®)År��}r��(hXG��*Figure 2.* System metadata is provided by Member Nodes (1) in response to a
:func:`~MNRead.getSystemMetadata` call by the Coordinating Nodes during the
Member Node synchronization process (2). The Coordinating Node updates the
replica location information (3). The copy of system metadata is replicated
between the Coordinating Nodes, and the Member Node is informed of the
system metadata change (4). A user will typically retrieve system metadata
from the Member Node (5) using the :func:`~MNRead.getSystemMetadata` call
since that is the authoritative source for the information.h j��h&h'h(h´h*}r��(h,]h-]h.]h/]h3]uh5K%h7]r��(hÆ)År��}r��(hX���*Figure 2.*h*}r��(h,]h-]h.]h/]h3]uh j��h7]r��h@X	���Figure 2.r��ÖÅr��}r��(hU�h j��ubah(h∂ubh@XB��� System metadata is provided by Member Nodes (1) in response to a
r��ÖÅr��}r��(hXB��� System metadata is provided by Member Nodes (1) in response to a
h j��ubhU)År��}r��(hX!���:func:`~MNRead.getSystemMetadata`r��h j��h&h'h(hYh*}r��(UreftypeX���funch[âh\X���MNRead.getSystemMetadataU	refdomainX���pyr ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K%h7]r!��hy)År"��}r#��(hj��h*}r$��(h,]h-]r%��(hfj ��X���py-funcr&��eh.]h/]h3]uh j��h7]r'��h@X���getSystemMetadata()r(��ÖÅr)��}r*��(hU�h j"��ubah(hÉubaubh@Xw�� call by the Coordinating Nodes during the
Member Node synchronization process (2). The Coordinating Node updates the
replica location information (3). The copy of system metadata is replicated
between the Coordinating Nodes, and the Member Node is informed of the
system metadata change (4). A user will typically retrieve system metadata
from the Member Node (5) using the r+��ÖÅr,��}r-��(hXw�� call by the Coordinating Nodes during the
Member Node synchronization process (2). The Coordinating Node updates the
replica location information (3). The copy of system metadata is replicated
between the Coordinating Nodes, and the Member Node is informed of the
system metadata change (4). A user will typically retrieve system metadata
from the Member Node (5) using the h j��ubhU)År.��}r/��(hX!���:func:`~MNRead.getSystemMetadata`r0��h j��h&h'h(hYh*}r1��(UreftypeX���funch[âh\X���MNRead.getSystemMetadataU	refdomainX���pyr2��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K%h7]r3��hy)År4��}r5��(hj0��h*}r6��(h,]h-]r7��(hfj2��X���py-funcr8��eh.]h/]h3]uh j.��h7]r9��h@X���getSystemMetadata()r:��ÖÅr;��}r<��(hU�h j4��ubah(hÉubaubh@XA��� call
since that is the authoritative source for the information.r=��ÖÅr>��}r?��(hXA��� call
since that is the authoritative source for the information.h j��ubeubeubh!)År@��}rA��(hU�h h$h&h'h(h)h*}rB��(h,]h-]h.]h/]rC��Umutability-of-system-metadatarD��ah3]rE��hauh5K0h6hh7]rF��(h9)ÅrG��}rH��(hX���Mutability of System MetadatarI��h j@��h&h'h(h=h*}rJ��(h,]h-]h.]h/]h3]uh5K0h6hh7]rK��h@X���Mutability of System MetadatarL��ÖÅrM��}rN��(hjI��h jG��ubaubhL)ÅrO��}rP��(hX‚���System metadata elements are partitioned into two classes: metadata elements
that must be provided by client software to the DataONE system, and elements
that are generated by DataONE itself in the course of object management.rQ��h j@��h&h'h(hOh*}rR��(h,]h-]h.]h/]h3]uh5K2h6hh7]rS��h@X‚���System metadata elements are partitioned into two classes: metadata elements
that must be provided by client software to the DataONE system, and elements
that are generated by DataONE itself in the course of object management.rT��ÖÅrU��}rV��(hjQ��h jO��ubaubhL)ÅrW��}rX��(hXC���The mutability of system metadata elements is described in Table 1.rY��h j@��h&h'h(hOh*}rZ��(h,]h-]h.]h/]h3]uh5K6h6hh7]r[��h@XC���The mutability of system metadata elements is described in Table 1.r\��ÖÅr]��}r^��(hjY��h jW��ubaubhL)År_��}r`��(hX��**Table 1.** Mutability of system metadata. Values are initialized by
different components during creation, and those values are vetted by
(controlled by) downstream, authoritative components. Mutable properties are
edited through the specified edit method.h j@��h&h'h(hOh*}ra��(h,]h-]h.]h/]h3]uh5K8h6hh7]rb��(cdocutils.nodes
strong
rc��)Ård��}re��(hX���**Table 1.**h*}rf��(h,]h-]h.]h/]h3]uh j_��h7]rg��h@X���Table 1.rh��ÖÅri��}rj��(hU�h jd��ubah(Ustrongrk��ubh@Xı��� Mutability of system metadata. Values are initialized by
different components during creation, and those values are vetted by
(controlled by) downstream, authoritative components. Mutable properties are
edited through the specified edit method.rl��ÖÅrm��}rn��(hXı��� Mutability of system metadata. Values are initialized by
different components during creation, and those values are vetted by
(controlled by) downstream, authoritative components. Mutable properties are
edited through the specified edit method.h j_��ubeubcdocutils.nodes
table
ro��)Årp��}rq��(hU�h j@��h&Nh(Utablerr��h*}rs��(h,]h-]h.]h/]h3]uh5Nh6hh7]rt��cdocutils.nodes
tgroup
ru��)Årv��}rw��(hU�h*}rx��(h/]h.]h,]h-]h3]UcolsKuh jp��h7]ry��(cdocutils.nodes
colspec
rz��)År{��}r|��(hU�h*}r}��(h/]h.]h,]h-]h3]UcolwidthKuh jv��h7]h(Ucolspecr~��ubjz��)År��}rÄ��(hU�h*}rÅ��(h/]h.]h,]h-]h3]UcolwidthKuh jv��h7]h(j~��ubjz��)ÅrÇ��}rÉ��(hU�h*}rÑ��(h/]h.]h,]h-]h3]UcolwidthKuh jv��h7]h(j~��ubjz��)ÅrÖ��}rÜ��(hU�h*}rá��(h/]h.]h,]h-]h3]UcolwidthKuh jv��h7]h(j~��ubjz��)Årà��}râ��(hU�h*}rä��(h/]h.]h,]h-]h3]UcolwidthKuh jv��h7]h(j~��ubcdocutils.nodes
thead
rã��)Årå��}rç��(hU�h*}ré��(h,]h-]h.]h/]h3]uh jv��h7]rè��cdocutils.nodes
row
rê��)Årë��}rí��(hU�h*}rì��(h,]h-]h.]h/]h3]uh jå��h7]rî��(cdocutils.nodes
entry
rï��)Årñ��}ró��(hU�h*}rò��(h,]h-]h.]h/]h3]uh jë��h7]rô��hL)Årö��}rõ��(hX���Propertyrú��h jñ��h&h'h(hOh*}rù��(h,]h-]h.]h/]h3]uh5KAh7]rû��h@X���Propertyrü��ÖÅr†��}r°��(hjú��h jö��ubaubah(Uentryr¢��ubjï��)År£��}r§��(hU�h*}r•��(h,]h-]h.]h/]h3]uh jë��h7]r¶��hL)Årß��}r®��(hX���Mutable?r©��h j£��h&h'h(hOh*}r™��(h,]h-]h.]h/]h3]uh5KBh7]r´��h@X���Mutable?r¨��ÖÅr≠��}rÆ��(hj©��h jß��ubaubah(j¢��ubjï��)ÅrØ��}r∞��(hU�h*}r±��(h,]h-]h.]h/]h3]uh jë��h7]r≤��hL)År≥��}r¥��(hX���Initialized Byrµ��h jØ��h&h'h(hOh*}r∂��(h,]h-]h.]h/]h3]uh5KCh7]r∑��h@X���Initialized Byr∏��ÖÅrπ��}r∫��(hjµ��h j≥��ubaubah(j¢��ubjï��)Årª��}rº��(hU�h*}rΩ��(h,]h-]h.]h/]h3]uh jë��h7]ræ��hL)Årø��}r¿��(hX
���Controlled Byr¡��h jª��h&h'h(hOh*}r¬��(h,]h-]h.]h/]h3]uh5KDh7]r√��h@X
���Controlled Byrƒ��ÖÅr≈��}r∆��(hj¡��h jø��ubaubah(j¢��ubjï��)År«��}r»��(hU�h*}r…��(h,]h-]h.]h/]h3]uh jë��h7]r ��hL)ÅrÀ��}rÃ��(hX���Edit MethodrÕ��h j«��h&h'h(hOh*}rŒ��(h,]h-]h.]h/]h3]uh5KEh7]rœ��h@X���Edit Methodr–��ÖÅr—��}r“��(hjÕ��h jÀ��ubaubah(j¢��ubeh(Urowr”��ubah(Utheadr‘��ubcdocutils.nodes
tbody
r’��)År÷��}r◊��(hU�h*}rÿ��(h,]h-]h.]h/]h3]uh jv��h7]rŸ��(jê��)År⁄��}r€��(hU�h*}r‹��(h,]h-]h.]h/]h3]uh j÷��h7]r›��(jï��)Årfi��}rfl��(hU�h*}r‡��(h,]h-]h.]h/]h3]uh j⁄��h7]r·��hL)År‚��}r„��(hX(���:attr:`~Types.SystemMetadata.identifier`r‰��h jfi��h&h'h(hOh*}rÂ��(h,]h-]h.]h/]h3]uh5KGh7]rÊ��hU)ÅrÁ��}rË��(hj‰��h j‚��h&h'h(hYh*}rÈ��(UreftypeX���attrh[âh\X���Types.SystemMetadata.identifierU	refdomainX���pyrÍ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KGh7]rÎ��hy)ÅrÏ��}rÌ��(hj‰��h*}rÓ��(h,]h-]rÔ��(hfjÍ��X���py-attrr��eh.]h/]h3]uh jÁ��h7]rÒ��h@X
���identifierrÚ��ÖÅrÛ��}rÙ��(hU�h jÏ��ubah(hÉubaubaubah(j¢��ubjï��)Årı��}rˆ��(hU�h*}r˜��(h,]h-]h.]h/]h3]uh j⁄��h7]r¯��hL)År˘��}r˙��(hX	���Immutabler˚��h jı��h&h'h(hOh*}r¸��(h,]h-]h.]h/]h3]uh5KHh7]r˝��h@X	���Immutabler˛��ÖÅrˇ��}r���(hj˚��h j˘��ubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j⁄��h7]r��hL)År��}r��(hX���Client + MNr��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5KIh7]r	��h@X���Client + MNr
��ÖÅr��}r��(hj��h j��ubaubah(j¢��ubjï��)År
��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j⁄��h7]r��hL)År��}r��(hX���MN + CNr��h j
��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5KJh7]r��h@X���MN + CNr��ÖÅr��}r��(hj��h j��ubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j⁄��h7]r��hL)År��}r��(hX√���The identifier is assigned during creation and can not be changed. The
CNs will not allow reuse of an identifier, so content created with an
identifier that is not unique will be rejected by CNs.r��h j��h&h'h(hOh*}r ��(h,]h-]h.]h/]h3]uh5KKh7]r!��h@X√���The identifier is assigned during creation and can not be changed. The
CNs will not allow reuse of an identifier, so content created with an
identifier that is not unique will be rejected by CNs.r"��ÖÅr#��}r$��(hj��h j��ubaubah(j¢��ubeh(j”��ubjê��)År%��}r&��(hU�h*}r'��(h,]h-]h.]h/]h3]uh j÷��h7]r(��(jï��)År)��}r*��(hU�h*}r+��(h,]h-]h.]h/]h3]uh j%��h7]r,��hL)År-��}r.��(hX"���:attr:`~Types.SystemMetadata.size`r/��h j)��h&h'h(hOh*}r0��(h,]h-]h.]h/]h3]uh5KOh7]r1��hU)År2��}r3��(hj/��h j-��h&h'h(hYh*}r4��(UreftypeX���attrh[âh\X���Types.SystemMetadata.sizeU	refdomainX���pyr5��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KOh7]r6��hy)År7��}r8��(hj/��h*}r9��(h,]h-]r:��(hfj5��X���py-attrr;��eh.]h/]h3]uh j2��h7]r<��h@X���sizer=��ÖÅr>��}r?��(hU�h j7��ubah(hÉubaubaubah(j¢��ubjï��)År@��}rA��(hU�h*}rB��(h,]h-]h.]h/]h3]uh j%��h7]rC��hL)ÅrD��}rE��(hX	���ImmutablerF��h j@��h&h'h(hOh*}rG��(h,]h-]h.]h/]h3]uh5KPh7]rH��h@X	���ImmutablerI��ÖÅrJ��}rK��(hjF��h jD��ubaubah(j¢��ubjï��)ÅrL��}rM��(hU�h*}rN��(h,]h-]h.]h/]h3]uh j%��h7]rO��hL)ÅrP��}rQ��(hX���ClientrR��h jL��h&h'h(hOh*}rS��(h,]h-]h.]h/]h3]uh5KQh7]rT��h@X���ClientrU��ÖÅrV��}rW��(hjR��h jP��ubaubah(j¢��ubjï��)ÅrX��}rY��(hU�h*}rZ��(h,]h-]h.]h/]h3]uh j%��h7]r[��hL)År\��}r]��(hX���MNr^��h jX��h&h'h(hOh*}r_��(h,]h-]h.]h/]h3]uh5KRh7]r`��h@X���MNra��ÖÅrb��}rc��(hj^��h j\��ubaubah(j¢��ubjï��)Ård��}re��(hU�h*}rf��(h,]h-]h.]h/]h3]uh j%��h7]rg��hL)Årh��}ri��(hX>���The object size is set during creation and can not be changed.rj��h jd��h&h'h(hOh*}rk��(h,]h-]h.]h/]h3]uh5KSh7]rl��h@X>���The object size is set during creation and can not be changed.rm��ÖÅrn��}ro��(hjj��h jh��ubaubah(j¢��ubeh(j”��ubjê��)Årp��}rq��(hU�h*}rr��(h,]h-]h.]h/]h3]uh j÷��h7]rs��(jï��)Årt��}ru��(hU�h*}rv��(h,]h-]h.]h/]h3]uh jp��h7]rw��hL)Årx��}ry��(hX&���:attr:`~Types.SystemMetadata.checksum`rz��h jt��h&h'h(hOh*}r{��(h,]h-]h.]h/]h3]uh5KUh7]r|��hU)År}��}r~��(hjz��h jx��h&h'h(hYh*}r��(UreftypeX���attrh[âh\X���Types.SystemMetadata.checksumU	refdomainX���pyrÄ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KUh7]rÅ��hy)ÅrÇ��}rÉ��(hjz��h*}rÑ��(h,]h-]rÖ��(hfjÄ��X���py-attrrÜ��eh.]h/]h3]uh j}��h7]rá��h@X���checksumrà��ÖÅrâ��}rä��(hU�h jÇ��ubah(hÉubaubaubah(j¢��ubjï��)Årã��}rå��(hU�h*}rç��(h,]h-]h.]h/]h3]uh jp��h7]ré��hL)Årè��}rê��(hX	���Immutablerë��h jã��h&h'h(hOh*}rí��(h,]h-]h.]h/]h3]uh5KVh7]rì��h@X	���Immutablerî��ÖÅrï��}rñ��(hjë��h jè��ubaubah(j¢��ubjï��)Åró��}rò��(hU�h*}rô��(h,]h-]h.]h/]h3]uh jp��h7]rö��hL)Årõ��}rú��(hX���Clientrù��h jó��h&h'h(hOh*}rû��(h,]h-]h.]h/]h3]uh5KWh7]rü��h@X���Clientr†��ÖÅr°��}r¢��(hjù��h jõ��ubaubah(j¢��ubjï��)År£��}r§��(hU�h*}r•��(h,]h-]h.]h/]h3]uh jp��h7]r¶��hL)Årß��}r®��(hX���MNr©��h j£��h&h'h(hOh*}r™��(h,]h-]h.]h/]h3]uh5KXh7]r´��h@X���MNr¨��ÖÅr≠��}rÆ��(hj©��h jß��ubaubah(j¢��ubjï��)ÅrØ��}r∞��(hU�h*}r±��(h,]h-]h.]h/]h3]uh jp��h7]r≤��hL)År≥��}r¥��(hXI���The object checksum is determined during creation and can not be changed.rµ��h jØ��h&h'h(hOh*}r∂��(h,]h-]h.]h/]h3]uh5KYh7]r∑��h@XI���The object checksum is determined during creation and can not be changed.r∏��ÖÅrπ��}r∫��(hjµ��h j≥��ubaubah(j¢��ubeh(j”��ubjê��)Årª��}rº��(hU�h*}rΩ��(h,]h-]h.]h/]h3]uh j÷��h7]ræ��(jï��)Årø��}r¿��(hU�h*}r¡��(h,]h-]h.]h/]h3]uh jª��h7]r¬��hL)År√��}rƒ��(hX'���:attr:`~Types.SystemMetadata.submitter`r≈��h jø��h&h'h(hOh*}r∆��(h,]h-]h.]h/]h3]uh5K[h7]r«��hU)År»��}r…��(hj≈��h j√��h&h'h(hYh*}r ��(UreftypeX���attrh[âh\X���Types.SystemMetadata.submitterU	refdomainX���pyrÀ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K[h7]rÃ��hy)ÅrÕ��}rŒ��(hj≈��h*}rœ��(h,]h-]r–��(hfjÀ��X���py-attrr—��eh.]h/]h3]uh j»��h7]r“��h@X	���submitterr”��ÖÅr‘��}r’��(hU�h jÕ��ubah(hÉubaubaubah(j¢��ubjï��)År÷��}r◊��(hU�h*}rÿ��(h,]h-]h.]h/]h3]uh jª��h7]rŸ��hL)År⁄��}r€��(hX	���Immutabler‹��h j÷��h&h'h(hOh*}r›��(h,]h-]h.]h/]h3]uh5K\h7]rfi��h@X	���Immutablerfl��ÖÅr‡��}r·��(hj‹��h j⁄��ubaubah(j¢��ubjï��)År‚��}r„��(hU�h*}r‰��(h,]h-]h.]h/]h3]uh jª��h7]rÂ��hL)ÅrÊ��}rÁ��(hX���MNrË��h j‚��h&h'h(hOh*}rÈ��(h,]h-]h.]h/]h3]uh5K]h7]rÍ��h@X���MNrÎ��ÖÅrÏ��}rÌ��(hjË��h jÊ��ubaubah(j¢��ubjï��)ÅrÓ��}rÔ��(hU�h*}r��(h,]h-]h.]h/]h3]uh jª��h7]rÒ��hL)ÅrÚ��}rÛ��(hX���MNrÙ��h jÓ��h&h'h(hOh*}rı��(h,]h-]h.]h/]h3]uh5K^h7]rˆ��h@X���MNr˜��ÖÅr¯��}r˘��(hjÙ��h jÚ��ubaubah(j¢��ubjï��)År˙��}r˚��(hU�h*}r¸��(h,]h-]h.]h/]h3]uh jª��h7]r˝��hL)År˛��}rˇ��(hXC���The object submitter is set during creation and can not be changed.r���h j˙��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5K_h7]r��h@XC���The object submitter is set during creation and can not be changed.r��ÖÅr��}r��(hj���h j˛��ubaubah(j¢��ubeh(j”��ubjê��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j÷��h7]r	��(jï��)År
��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r
��hL)År��}r��(hX*���:attr:`~Types.SystemMetadata.dateUploaded`r��h j
��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Kah7]r��hU)År��}r��(hj��h j��h&h'h(hYh*}r��(UreftypeX���attrh[âh\X!���Types.SystemMetadata.dateUploadedU	refdomainX���pyr��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kah7]r��hy)År��}r��(hj��h*}r��(h,]h-]r��(hfj��X���py-attrr��eh.]h/]h3]uh j��h7]r��h@X���dateUploadedr��ÖÅr��}r ��(hU�h j��ubah(hÉubaubaubah(j¢��ubjï��)År!��}r"��(hU�h*}r#��(h,]h-]h.]h/]h3]uh j��h7]r$��hL)År%��}r&��(hX	���Immutabler'��h j!��h&h'h(hOh*}r(��(h,]h-]h.]h/]h3]uh5Kbh7]r)��h@X	���Immutabler*��ÖÅr+��}r,��(hj'��h j%��ubaubah(j¢��ubjï��)År-��}r.��(hU�h*}r/��(h,]h-]h.]h/]h3]uh j��h7]r0��hL)År1��}r2��(hX���MNr3��h j-��h&h'h(hOh*}r4��(h,]h-]h.]h/]h3]uh5Kch7]r5��h@X���MNr6��ÖÅr7��}r8��(hj3��h j1��ubaubah(j¢��ubjï��)År9��}r:��(hU�h*}r;��(h,]h-]h.]h/]h3]uh j��h7]r<��hL)År=��}r>��(hX���MNr?��h j9��h&h'h(hOh*}r@��(h,]h-]h.]h/]h3]uh5Kdh7]rA��h@X���MNrB��ÖÅrC��}rD��(hj?��h j=��ubaubah(j¢��ubjï��)ÅrE��}rF��(hU�h*}rG��(h,]h-]h.]h/]h3]uh j��h7]rH��hL)ÅrI��}rJ��(hX≠���Upload to a MN occurs once, and the MN MUST set this value to indicate
when the content was added to the repository (may be before the
repository started operating as a MN).rK��h jE��h&h'h(hOh*}rL��(h,]h-]h.]h/]h3]uh5Keh7]rM��h@X≠���Upload to a MN occurs once, and the MN MUST set this value to indicate
when the content was added to the repository (may be before the
repository started operating as a MN).rN��ÖÅrO��}rP��(hjK��h jI��ubaubah(j¢��ubeh(j”��ubjê��)ÅrQ��}rR��(hU�h*}rS��(h,]h-]h.]h/]h3]uh j÷��h7]rT��(jï��)ÅrU��}rV��(hU�h*}rW��(h,]h-]h.]h/]h3]uh jQ��h7]rX��hL)ÅrY��}rZ��(hX.���:attr:`~Types.SystemMetadata.originMemberNode`r[��h jU��h&h'h(hOh*}r\��(h,]h-]h.]h/]h3]uh5Kih7]r]��hU)År^��}r_��(hj[��h jY��h&h'h(hYh*}r`��(UreftypeX���attrh[âh\X%���Types.SystemMetadata.originMemberNodeU	refdomainX���pyra��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kih7]rb��hy)Årc��}rd��(hj[��h*}re��(h,]h-]rf��(hfja��X���py-attrrg��eh.]h/]h3]uh j^��h7]rh��h@X���originMemberNoderi��ÖÅrj��}rk��(hU�h jc��ubah(hÉubaubaubah(j¢��ubjï��)Årl��}rm��(hU�h*}rn��(h,]h-]h.]h/]h3]uh jQ��h7]ro��hL)Årp��}rq��(hX	���Immutablerr��h jl��h&h'h(hOh*}rs��(h,]h-]h.]h/]h3]uh5Kjh7]rt��h@X	���Immutableru��ÖÅrv��}rw��(hjr��h jp��ubaubah(j¢��ubjï��)Årx��}ry��(hU�h*}rz��(h,]h-]h.]h/]h3]uh jQ��h7]r{��hL)År|��}r}��(hX���MNr~��h jx��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Kkh7]rÄ��h@X���MNrÅ��ÖÅrÇ��}rÉ��(hj~��h j|��ubaubah(j¢��ubjï��)ÅrÑ��}rÖ��(hU�h*}rÜ��(h,]h-]h.]h/]h3]uh jQ��h7]rá��hL)Årà��}râ��(hX���MNrä��h jÑ��h&h'h(hOh*}rã��(h,]h-]h.]h/]h3]uh5Klh7]rå��h@X���MNrç��ÖÅré��}rè��(hjä��h jà��ubaubah(j¢��ubjï��)Årê��}rë��(hU�h*}rí��(h,]h-]h.]h/]h3]uh jQ��h7]rì��hL)Årî��}rï��(hX+���Value is set once by the origin Member Noderñ��h jê��h&h'h(hOh*}ró��(h,]h-]h.]h/]h3]uh5Kmh7]rò��h@X+���Value is set once by the origin Member Noderô��ÖÅrö��}rõ��(hjñ��h jî��ubaubah(j¢��ubeh(j”��ubjê��)Årú��}rù��(hU�h*}rû��(h,]h-]h.]h/]h3]uh j÷��h7]rü��(jï��)År†��}r°��(hU�h*}r¢��(h,]h-]h.]h/]h3]uh jú��h7]r£��hL)År§��}r•��(hX0���:attr:`~v2_0.Types.SystemMetadata.seriesId` (v2)r¶��h j†��h&h'h(hOh*}rß��(h,]h-]h.]h/]h3]uh5Koh7]r®��(hU)År©��}r™��(hX+���:attr:`~v2_0.Types.SystemMetadata.seriesId`r´��h j§��h&h'h(hYh*}r¨��(UreftypeX���attrh[âh\X"���v2_0.Types.SystemMetadata.seriesIdU	refdomainX���pyr≠��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Koh7]rÆ��hy)ÅrØ��}r∞��(hj´��h*}r±��(h,]h-]r≤��(hfj≠��X���py-attrr≥��eh.]h/]h3]uh j©��h7]r¥��h@X���seriesIdrµ��ÖÅr∂��}r∑��(hU�h jØ��ubah(hÉubaubh@X��� (v2)r∏��ÖÅrπ��}r∫��(hX��� (v2)h j§��ubeubah(j¢��ubjï��)Årª��}rº��(hU�h*}rΩ��(h,]h-]h.]h/]h3]uh jú��h7]ræ��hL)Årø��}r¿��(hX���Set Oncer¡��h jª��h&h'h(hOh*}r¬��(h,]h-]h.]h/]h3]uh5Kph7]r√��h@X���Set Oncerƒ��ÖÅr≈��}r∆��(hj¡��h jø��ubaubah(j¢��ubjï��)År«��}r»��(hU�h*}r…��(h,]h-]h.]h/]h3]uh jú��h7]r ��hL)ÅrÀ��}rÃ��(hX���ClientrÕ��h j«��h&h'h(hOh*}rŒ��(h,]h-]h.]h/]h3]uh5Kqh7]rœ��h@X���Clientr–��ÖÅr—��}r“��(hjÕ��h jÀ��ubaubah(j¢��ubjï��)År”��}r‘��(hU�h*}r’��(h,]h-]h.]h/]h3]uh jú��h7]r÷��hL)År◊��}rÿ��(hX���MN + CNrŸ��h j”��h&h'h(hOh*}r⁄��(h,]h-]h.]h/]h3]uh5Krh7]r€��h@X���MN + CNr‹��ÖÅr›��}rfi��(hjŸ��h j◊��ubaubah(j¢��ubjï��)Årfl��}r‡��(hU�h*}r·��(h,]h-]h.]h/]h3]uh jú��h7]r‚��hL)År„��}r‰��(hXw���The seriesId can be set if it has no value, but can not be changed once
set. Use :func:`MNStorage.updateSystemMetadata`h jfl��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Ksh7]r��(h@XQ���The seriesId can be set if it has no value, but can not be changed once
set. Use rÁ��ÖÅrË��}rÈ��(hXQ���The seriesId can be set if it has no value, but can not be changed once
set. Use h j„��ubhU)ÅrÍ��}rÎ��(hX&���:func:`MNStorage.updateSystemMetadata`rÏ��h j„��h&h'h(hYh*}rÌ��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrÓ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Ksh7]rÔ��hy)År��}rÒ��(hjÏ��h*}rÚ��(h,]h-]rÛ��(hfjÓ��X���py-funcrÙ��eh.]h/]h3]uh jÍ��h7]rı��h@X ���MNStorage.updateSystemMetadata()rˆ��ÖÅr˜��}r¯��(hU�h j��ubah(hÉubaubeubah(j¢��ubeh(j”��ubjê��)År˘��}r˙��(hU�h*}r˚��(h,]h-]h.]h/]h3]uh j÷��h7]r¸��(jï��)År˝��}r˛��(hU�h*}rˇ��(h,]h-]h.]h/]h3]uh j˘��h7]r���hL)År��}r��(hX'���:attr:`~Types.SystemMetadata.obsoletes`r��h j˝��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Kvh7]r��hU)År��}r��(hj��h j��h&h'h(hYh*}r��(UreftypeX���attrh[âh\X���Types.SystemMetadata.obsoletesU	refdomainX���pyr	��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kvh7]r
��hy)År��}r��(hj��h*}r
��(h,]h-]r��(hfj	��X���py-attrr��eh.]h/]h3]uh j��h7]r��h@X	���obsoletesr��ÖÅr��}r��(hU�h j��ubah(hÉubaubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j˘��h7]r��hL)År��}r��(hX���Set Oncer��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Kwh7]r��h@X���Set Oncer��ÖÅr��}r��(hj��h j��ubaubah(j¢��ubjï��)År ��}r!��(hU�h*}r"��(h,]h-]h.]h/]h3]uh j˘��h7]r#��hL)År$��}r%��(hX���Clientr&��h j ��h&h'h(hOh*}r'��(h,]h-]h.]h/]h3]uh5Kxh7]r(��h@X���Clientr)��ÖÅr*��}r+��(hj&��h j$��ubaubah(j¢��ubjï��)År,��}r-��(hU�h*}r.��(h,]h-]h.]h/]h3]uh j˘��h7]r/��hL)År0��}r1��(hX���MNr2��h j,��h&h'h(hOh*}r3��(h,]h-]h.]h/]h3]uh5Kyh7]r4��h@X���MNr5��ÖÅr6��}r7��(hj2��h j0��ubaubah(j¢��ubjï��)År8��}r9��(hU�h*}r:��(h,]h-]h.]h/]h3]uh j˘��h7]r;��(hL)År<��}r=��(hX ���v1, v2: :func:`MNStorage.update`h j8��h&h'h(hOh*}r>��(h,]h-]h.]h/]h3]uh5Kzh7]r?��(h@X���v1, v2: r@��ÖÅrA��}rB��(hX���v1, v2: h j<��ubhU)ÅrC��}rD��(hX���:func:`MNStorage.update`rE��h j<��h&h'h(hYh*}rF��(UreftypeX���funch[âh\X���MNStorage.updateU	refdomainX���pyrG��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kzh7]rH��hy)ÅrI��}rJ��(hjE��h*}rK��(h,]h-]rL��(hfjG��X���py-funcrM��eh.]h/]h3]uh jC��h7]rN��h@X���MNStorage.update()rO��ÖÅrP��}rQ��(hU�h jI��ubah(hÉubaubeubhL)ÅrR��}rS��(hX*���v2: :func:`MNStorage.updateSystemMetadata`h j8��h&h'h(hOh*}rT��(h,]h-]h.]h/]h3]uh5K|h7]rU��(h@X���v2: rV��ÖÅrW��}rX��(hX���v2: h jR��ubhU)ÅrY��}rZ��(hX&���:func:`MNStorage.updateSystemMetadata`r[��h jR��h&h'h(hYh*}r\��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyr]��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K|h7]r^��hy)År_��}r`��(hj[��h*}ra��(h,]h-]rb��(hfj]��X���py-funcrc��eh.]h/]h3]uh jY��h7]rd��h@X ���MNStorage.updateSystemMetadata()re��ÖÅrf��}rg��(hU�h j_��ubah(hÉubaubeubhL)Årh��}ri��(hXˆ���The ``obsoletes`` property may be set once, to indicate that the current
object obsoletes or supercedes the PID that is the value of this field.
Care must be taken when setting this value to ensure that no branching
or circular lists are created.h j8��h&h'h(hOh*}rj��(h,]h-]h.]h/]h3]uh5K~h7]rk��(h@X���The rl��ÖÅrm��}rn��(hX���The h jh��ubhy)Åro��}rp��(hX
���``obsoletes``h*}rq��(h,]h-]h.]h/]h3]uh jh��h7]rr��h@X	���obsoletesrs��ÖÅrt��}ru��(hU�h jo��ubah(hÉubh@XÂ��� property may be set once, to indicate that the current
object obsoletes or supercedes the PID that is the value of this field.
Care must be taken when setting this value to ensure that no branching
or circular lists are created.rv��ÖÅrw��}rx��(hXÂ��� property may be set once, to indicate that the current
object obsoletes or supercedes the PID that is the value of this field.
Care must be taken when setting this value to ensure that no branching
or circular lists are created.h jh��ubeubeh(j¢��ubeh(j”��ubjê��)Åry��}rz��(hU�h*}r{��(h,]h-]h.]h/]h3]uh j÷��h7]r|��(jï��)År}��}r~��(hU�h*}r��(h,]h-]h.]h/]h3]uh jy��h7]rÄ��hL)ÅrÅ��}rÇ��(hX)���:attr:`~Types.SystemMetadata.obsoletedBy`rÉ��h j}��h&h'h(hOh*}rÑ��(h,]h-]h.]h/]h3]uh5KÉh7]rÖ��hU)ÅrÜ��}rá��(hjÉ��h jÅ��h&h'h(hYh*}rà��(UreftypeX���attrh[âh\X ���Types.SystemMetadata.obsoletedByU	refdomainX���pyrâ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KÉh7]rä��hy)Årã��}rå��(hjÉ��h*}rç��(h,]h-]ré��(hfjâ��X���py-attrrè��eh.]h/]h3]uh jÜ��h7]rê��h@X���obsoletedByrë��ÖÅrí��}rì��(hU�h jã��ubah(hÉubaubaubah(j¢��ubjï��)Årî��}rï��(hU�h*}rñ��(h,]h-]h.]h/]h3]uh jy��h7]ró��hL)Årò��}rô��(hX���Set Oncerö��h jî��h&h'h(hOh*}rõ��(h,]h-]h.]h/]h3]uh5KÑh7]rú��h@X���Set Oncerù��ÖÅrû��}rü��(hjö��h jò��ubaubah(j¢��ubjï��)År†��}r°��(hU�h*}r¢��(h,]h-]h.]h/]h3]uh jy��h7]r£��hL)År§��}r•��(hX���Clientr¶��h j†��h&h'h(hOh*}rß��(h,]h-]h.]h/]h3]uh5KÖh7]r®��h@X���Clientr©��ÖÅr™��}r´��(hj¶��h j§��ubaubah(j¢��ubjï��)År¨��}r≠��(hU�h*}rÆ��(h,]h-]h.]h/]h3]uh jy��h7]rØ��hL)År∞��}r±��(hX���Clientr≤��h j¨��h&h'h(hOh*}r≥��(h,]h-]h.]h/]h3]uh5KÜh7]r¥��h@X���Clientrµ��ÖÅr∂��}r∑��(hj≤��h j∞��ubaubah(j¢��ubjï��)År∏��}rπ��(hU�h*}r∫��(h,]h-]h.]h/]h3]uh jy��h7]rª��(hL)Årº��}rΩ��(hX ���v1, v2: :func:`MNStorage.update`h j∏��h&h'h(hOh*}ræ��(h,]h-]h.]h/]h3]uh5Káh7]rø��(h@X���v1, v2: r¿��ÖÅr¡��}r¬��(hX���v1, v2: h jº��ubhU)År√��}rƒ��(hX���:func:`MNStorage.update`r≈��h jº��h&h'h(hYh*}r∆��(UreftypeX���funch[âh\X���MNStorage.updateU	refdomainX���pyr«��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Káh7]r»��hy)År…��}r ��(hj≈��h*}rÀ��(h,]h-]rÃ��(hfj«��X���py-funcrÕ��eh.]h/]h3]uh j√��h7]rŒ��h@X���MNStorage.update()rœ��ÖÅr–��}r—��(hU�h j…��ubah(hÉubaubeubhL)År“��}r”��(hX!���v1: :func:`CNCore.setObsoletedBy`h j∏��h&h'h(hOh*}r‘��(h,]h-]h.]h/]h3]uh5Kâh7]r’��(h@X���v1: r÷��ÖÅr◊��}rÿ��(hX���v1: h j“��ubhU)ÅrŸ��}r⁄��(hX���:func:`CNCore.setObsoletedBy`r€��h j“��h&h'h(hYh*}r‹��(UreftypeX���funch[âh\X���CNCore.setObsoletedByU	refdomainX���pyr›��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kâh7]rfi��hy)Årfl��}r‡��(hj€��h*}r·��(h,]h-]r‚��(hfj›��X���py-funcr„��eh.]h/]h3]uh jŸ��h7]r‰��h@X���CNCore.setObsoletedBy()rÂ��ÖÅrÊ��}rÁ��(hU�h jfl��ubah(hÉubaubeubhL)ÅrË��}rÈ��(hX*���v2: :func:`MNStorage.updateSystemMetadata`h j∏��h&h'h(hOh*}rÍ��(h,]h-]h.]h/]h3]uh5Kãh7]rÎ��(h@X���v2: rÏ��ÖÅrÌ��}rÓ��(hX���v2: h jË��ubhU)ÅrÔ��}r��(hX&���:func:`MNStorage.updateSystemMetadata`rÒ��h jË��h&h'h(hYh*}rÚ��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrÛ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kãh7]rÙ��hy)Årı��}rˆ��(hjÒ��h*}r˜��(h,]h-]r¯��(hfjÛ��X���py-funcr˘��eh.]h/]h3]uh jÔ��h7]r˙��h@X ���MNStorage.updateSystemMetadata()r˚��ÖÅr¸��}r˝��(hU�h jı��ubah(hÉubaubeubhL)År˛��}rˇ��(hX˚���The ``obsoletedBy`` property may be set once, to indicate that the current
object is obsoleted superceded by the PID that is the value of this field.
Care must be taken when setting this value to ensure that no branching
or circular lists are created.h j∏��h&h'h(hOh*}r���(h,]h-]h.]h/]h3]uh5Kçh7]r��(h@X���The r��ÖÅr��}r��(hX���The h j˛��ubhy)År��}r��(hX���``obsoletedBy``h*}r��(h,]h-]h.]h/]h3]uh j˛��h7]r��h@X���obsoletedByr	��ÖÅr
��}r��(hU�h j��ubah(hÉubh@XË��� property may be set once, to indicate that the current
object is obsoleted superceded by the PID that is the value of this field.
Care must be taken when setting this value to ensure that no branching
or circular lists are created.r��ÖÅr
��}r��(hX��� property may be set once, to indicate that the current
object is obsoleted superceded by the PID that is the value of this field.
Care must be taken when setting this value to ensure that no branching
or circular lists are created.h j˛��ubeubeh(j¢��ubeh(j”��ubjê��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j÷��h7]r��(jï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r��hL)År��}r��(hX&���:attr:`~Types.SystemMetadata.archived`r��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Kíh7]r��hU)År��}r��(hj��h j��h&h'h(hYh*}r��(UreftypeX���attrh[âh\X���Types.SystemMetadata.archivedU	refdomainX���pyr��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kíh7]r ��hy)År!��}r"��(hj��h*}r#��(h,]h-]r$��(hfj��X���py-attrr%��eh.]h/]h3]uh j��h7]r&��h@X���archivedr'��ÖÅr(��}r)��(hU�h j!��ubah(hÉubaubaubah(j¢��ubjï��)År*��}r+��(hU�h*}r,��(h,]h-]h.]h/]h3]uh j��h7]r-��hL)År.��}r/��(hX���Set Oncer0��h j*��h&h'h(hOh*}r1��(h,]h-]h.]h/]h3]uh5Kìh7]r2��h@X���Set Oncer3��ÖÅr4��}r5��(hj0��h j.��ubaubah(j¢��ubjï��)År6��}r7��(hU�h*}r8��(h,]h-]h.]h/]h3]uh j��h7]r9��hL)År:��}r;��(hX���Clientr<��h j6��h&h'h(hOh*}r=��(h,]h-]h.]h/]h3]uh5Kîh7]r>��h@X���Clientr?��ÖÅr@��}rA��(hj<��h j:��ubaubah(j¢��ubjï��)ÅrB��}rC��(hU�h*}rD��(h,]h-]h.]h/]h3]uh j��h7]rE��hL)ÅrF��}rG��(hX���MNrH��h jB��h&h'h(hOh*}rI��(h,]h-]h.]h/]h3]uh5Kïh7]rJ��h@X���MNrK��ÖÅrL��}rM��(hjH��h jF��ubaubah(j¢��ubjï��)ÅrN��}rO��(hU�h*}rP��(h,]h-]h.]h/]h3]uh j��h7]rQ��(hL)ÅrR��}rS��(hX���v1, v2: :func:`CNCore.archive`h jN��h&h'h(hOh*}rT��(h,]h-]h.]h/]h3]uh5Kñh7]rU��(h@X���v1, v2: rV��ÖÅrW��}rX��(hX���v1, v2: h jR��ubhU)ÅrY��}rZ��(hX���:func:`CNCore.archive`r[��h jR��h&h'h(hYh*}r\��(UreftypeX���funch[âh\X���CNCore.archiveU	refdomainX���pyr]��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kñh7]r^��hy)År_��}r`��(hj[��h*}ra��(h,]h-]rb��(hfj]��X���py-funcrc��eh.]h/]h3]uh jY��h7]rd��h@X���CNCore.archive()re��ÖÅrf��}rg��(hU�h j_��ubah(hÉubaubeubhL)Årh��}ri��(hX*���v2: :func:`MNStorage.updateSystemMetadata`h jN��h&h'h(hOh*}rj��(h,]h-]h.]h/]h3]uh5Kòh7]rk��(h@X���v2: rl��ÖÅrm��}rn��(hX���v2: h jh��ubhU)Åro��}rp��(hX&���:func:`MNStorage.updateSystemMetadata`rq��h jh��h&h'h(hYh*}rr��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrs��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kòh7]rt��hy)Åru��}rv��(hjq��h*}rw��(h,]h-]rx��(hfjs��X���py-funcry��eh.]h/]h3]uh jo��h7]rz��h@X ���MNStorage.updateSystemMetadata()r{��ÖÅr|��}r}��(hU�h ju��ubah(hÉubaubeubeh(j¢��ubeh(j”��ubjê��)År~��}r��(hU�h*}rÄ��(h,]h-]h.]h/]h3]uh j÷��h7]rÅ��(jï��)ÅrÇ��}rÉ��(hU�h*}rÑ��(h,]h-]h.]h/]h3]uh j~��h7]rÖ��hL)ÅrÜ��}rá��(hX+���:attr:`~Types.SystemMetadata.serialVersion`rà��h jÇ��h&h'h(hOh*}râ��(h,]h-]h.]h/]h3]uh5Köh7]rä��hU)Årã��}rå��(hjà��h jÜ��h&h'h(hYh*}rç��(UreftypeX���attrh[âh\X"���Types.SystemMetadata.serialVersionU	refdomainX���pyré��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Köh7]rè��hy)Årê��}rë��(hjà��h*}rí��(h,]h-]rì��(hfjé��X���py-attrrî��eh.]h/]h3]uh jã��h7]rï��h@X
���serialVersionrñ��ÖÅró��}rò��(hU�h jê��ubah(hÉubaubaubah(j¢��ubjï��)Årô��}rö��(hU�h*}rõ��(h,]h-]h.]h/]h3]uh j~��h7]rú��hL)Årù��}rû��(hX���Mutablerü��h jô��h&h'h(hOh*}r†��(h,]h-]h.]h/]h3]uh5Kõh7]r°��h@X���Mutabler¢��ÖÅr£��}r§��(hjü��h jù��ubaubah(j¢��ubjï��)År•��}r¶��(hU�h*}rß��(h,]h-]h.]h/]h3]uh j~��h7]r®��hL)År©��}r™��(hX���CNr´��h j•��h&h'h(hOh*}r¨��(h,]h-]h.]h/]h3]uh5Kúh7]r≠��h@X���CNrÆ��ÖÅrØ��}r∞��(hj´��h j©��ubaubah(j¢��ubjï��)År±��}r≤��(hU�h*}r≥��(h,]h-]h.]h/]h3]uh j~��h7]r¥��hL)Årµ��}r∂��(hX���CNr∑��h j±��h&h'h(hOh*}r∏��(h,]h-]h.]h/]h3]uh5Kùh7]rπ��h@X���CNr∫��ÖÅrª��}rº��(hj∑��h jµ��ubaubah(j¢��ubjï��)ÅrΩ��}ræ��(hU�h*}rø��(h,]h-]h.]h/]h3]uh j~��h7]r¿��(hL)År¡��}r¬��(hXH���v1: Set by CNs in response to any operation that alters System Metadata.r√��h jΩ��h&h'h(hOh*}rƒ��(h,]h-]h.]h/]h3]uh5Kûh7]r≈��h@XH���v1: Set by CNs in response to any operation that alters System Metadata.r∆��ÖÅr«��}r»��(hj√��h j¡��ubaubhL)År…��}r ��(hX6���v2: Used by CNs for management of replication process.rÀ��h jΩ��h&h'h(hOh*}rÃ��(h,]h-]h.]h/]h3]uh5K†h7]rÕ��h@X6���v2: Used by CNs for management of replication process.rŒ��ÖÅrœ��}r–��(hjÀ��h j…��ubaubeh(j¢��ubeh(j”��ubjê��)År—��}r“��(hU�h*}r”��(h,]h-]h.]h/]h3]uh j÷��h7]r‘��(jï��)År’��}r÷��(hU�h*}r◊��(h,]h-]h.]h/]h3]uh j—��h7]rÿ��hL)ÅrŸ��}r⁄��(hX&���:attr:`~Types.SystemMetadata.formatId`r€��h j’��h&h'h(hOh*}r‹��(h,]h-]h.]h/]h3]uh5K¢h7]r›��hU)Årfi��}rfl��(hj€��h jŸ��h&h'h(hYh*}r‡��(UreftypeX���attrh[âh\X���Types.SystemMetadata.formatIdU	refdomainX���pyr·��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K¢h7]r‚��hy)År„��}r‰��(hj€��h*}rÂ��(h,]h-]rÊ��(hfj·��X���py-attrrÁ��eh.]h/]h3]uh jfi��h7]rË��h@X���formatIdrÈ��ÖÅrÍ��}rÎ��(hU�h j„��ubah(hÉubaubaubah(j¢��ubjï��)ÅrÏ��}rÌ��(hU�h*}rÓ��(h,]h-]h.]h/]h3]uh j—��h7]rÔ��hL)År��}rÒ��(hX���MutablerÚ��h jÏ��h&h'h(hOh*}rÛ��(h,]h-]h.]h/]h3]uh5K£h7]rÙ��h@X���Mutablerı��ÖÅrˆ��}r˜��(hjÚ��h j��ubaubah(j¢��ubjï��)År¯��}r˘��(hU�h*}r˙��(h,]h-]h.]h/]h3]uh j—��h7]r˚��hL)År¸��}r˝��(hX���Clientr˛��h j¯��h&h'h(hOh*}rˇ��(h,]h-]h.]h/]h3]uh5K§h7]r���h@X���Clientr��ÖÅr��}r��(hj˛��h j¸��ubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j—��h7]r��hL)År��}r	��(hX���MN + CNr
��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5K•h7]r��h@X���MN + CNr
��ÖÅr��}r��(hj
��h j��ubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j—��h7]r��(hL)År��}r��(hX_���Change is discouraged, values limited to the formats available from
:func:`CNCore.listFormats`.h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5K¶h7]r��(h@XD���Change is discouraged, values limited to the formats available from
r��ÖÅr��}r��(hXD���Change is discouraged, values limited to the formats available from
h j��ubhU)År��}r��(hX���:func:`CNCore.listFormats`r��h j��h&h'h(hYh*}r��(UreftypeX���funch[âh\X���CNCore.listFormatsU	refdomainX���pyr��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K¶h7]r ��hy)År!��}r"��(hj��h*}r#��(h,]h-]r$��(hfj��X���py-funcr%��eh.]h/]h3]uh j��h7]r&��h@X���CNCore.listFormats()r'��ÖÅr(��}r)��(hU�h j!��ubah(hÉubaubh@X���.ÖÅr*��}r+��(hX���.h j��ubeubhL)År,��}r-��(hX'���v1: :func:`CNCore.updateSystemMetadata`h j��h&h'h(hOh*}r.��(h,]h-]h.]h/]h3]uh5K©h7]r/��(h@X���v1: r0��ÖÅr1��}r2��(hX���v1: h j,��ubhU)År3��}r4��(hX#���:func:`CNCore.updateSystemMetadata`r5��h j,��h&h'h(hYh*}r6��(UreftypeX���funch[âh\X���CNCore.updateSystemMetadataU	refdomainX���pyr7��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K©h7]r8��hy)År9��}r:��(hj5��h*}r;��(h,]h-]r<��(hfj7��X���py-funcr=��eh.]h/]h3]uh j3��h7]r>��h@X���CNCore.updateSystemMetadata()r?��ÖÅr@��}rA��(hU�h j9��ubah(hÉubaubeubhL)ÅrB��}rC��(hX*���v2: :func:`MNStorage.updateSystemMetadata`h j��h&h'h(hOh*}rD��(h,]h-]h.]h/]h3]uh5K´h7]rE��(h@X���v2: rF��ÖÅrG��}rH��(hX���v2: h jB��ubhU)ÅrI��}rJ��(hX&���:func:`MNStorage.updateSystemMetadata`rK��h jB��h&h'h(hYh*}rL��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrM��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K´h7]rN��hy)ÅrO��}rP��(hjK��h*}rQ��(h,]h-]rR��(hfjM��X���py-funcrS��eh.]h/]h3]uh jI��h7]rT��h@X ���MNStorage.updateSystemMetadata()rU��ÖÅrV��}rW��(hU�h jO��ubah(hÉubaubeubeh(j¢��ubeh(j”��ubjê��)ÅrX��}rY��(hU�h*}rZ��(h,]h-]h.]h/]h3]uh j÷��h7]r[��(jï��)År\��}r]��(hU�h*}r^��(h,]h-]h.]h/]h3]uh jX��h7]r_��hL)År`��}ra��(hX1���:attr:`~v2_0.Types.SystemMetadata.mediaType` (v2)rb��h j\��h&h'h(hOh*}rc��(h,]h-]h.]h/]h3]uh5K≠h7]rd��(hU)Åre��}rf��(hX,���:attr:`~v2_0.Types.SystemMetadata.mediaType`rg��h j`��h&h'h(hYh*}rh��(UreftypeX���attrh[âh\X#���v2_0.Types.SystemMetadata.mediaTypeU	refdomainX���pyri��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K≠h7]rj��hy)Årk��}rl��(hjg��h*}rm��(h,]h-]rn��(hfji��X���py-attrro��eh.]h/]h3]uh je��h7]rp��h@X	���mediaTyperq��ÖÅrr��}rs��(hU�h jk��ubah(hÉubaubh@X��� (v2)rt��ÖÅru��}rv��(hX��� (v2)h j`��ubeubah(j¢��ubjï��)Årw��}rx��(hU�h*}ry��(h,]h-]h.]h/]h3]uh jX��h7]rz��hL)År{��}r|��(hX���Mutabler}��h jw��h&h'h(hOh*}r~��(h,]h-]h.]h/]h3]uh5KÆh7]r��h@X���MutablerÄ��ÖÅrÅ��}rÇ��(hj}��h j{��ubaubah(j¢��ubjï��)ÅrÉ��}rÑ��(hU�h*}rÖ��(h,]h-]h.]h/]h3]uh jX��h7]rÜ��hL)Årá��}rà��(hX���Clientrâ��h jÉ��h&h'h(hOh*}rä��(h,]h-]h.]h/]h3]uh5KØh7]rã��h@X���Clientrå��ÖÅrç��}ré��(hjâ��h já��ubaubah(j¢��ubjï��)Årè��}rê��(hU�h*}rë��(h,]h-]h.]h/]h3]uh jX��h7]rí��hL)Årì��}rî��(hX���Clientrï��h jè��h&h'h(hOh*}rñ��(h,]h-]h.]h/]h3]uh5K∞h7]ró��h@X���Clientrò��ÖÅrô��}rö��(hjï��h jì��ubaubah(j¢��ubjï��)Årõ��}rú��(hU�h*}rù��(h,]h-]h.]h/]h3]uh jX��h7]rû��hL)Årü��}r†��(hX���As for ``formatId``.h jõ��h&h'h(hOh*}r°��(h,]h-]h.]h/]h3]uh5K±h7]r¢��(h@X���As for r£��ÖÅr§��}r•��(hX���As for h jü��ubhy)År¶��}rß��(hX���``formatId``h*}r®��(h,]h-]h.]h/]h3]uh jü��h7]r©��h@X���formatIdr™��ÖÅr´��}r¨��(hU�h j¶��ubah(hÉubh@X���.ÖÅr≠��}rÆ��(hX���.h jü��ubeubah(j¢��ubeh(j”��ubjê��)ÅrØ��}r∞��(hU�h*}r±��(h,]h-]h.]h/]h3]uh j÷��h7]r≤��(jï��)År≥��}r¥��(hU�h*}rµ��(h,]h-]h.]h/]h3]uh jØ��h7]r∂��hL)År∑��}r∏��(hX0���:attr:`~v2_0.Types.SystemMetadata.fileName` (v2)rπ��h j≥��h&h'h(hOh*}r∫��(h,]h-]h.]h/]h3]uh5K≥h7]rª��(hU)Årº��}rΩ��(hX+���:attr:`~v2_0.Types.SystemMetadata.fileName`ræ��h j∑��h&h'h(hYh*}rø��(UreftypeX���attrh[âh\X"���v2_0.Types.SystemMetadata.fileNameU	refdomainX���pyr¿��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K≥h7]r¡��hy)År¬��}r√��(hjæ��h*}rƒ��(h,]h-]r≈��(hfj¿��X���py-attrr∆��eh.]h/]h3]uh jº��h7]r«��h@X���fileNamer»��ÖÅr…��}r ��(hU�h j¬��ubah(hÉubaubh@X��� (v2)rÀ��ÖÅrÃ��}rÕ��(hX��� (v2)h j∑��ubeubah(j¢��ubjï��)ÅrŒ��}rœ��(hU�h*}r–��(h,]h-]h.]h/]h3]uh jØ��h7]r—��hL)År“��}r”��(hX���Mutabler‘��h jŒ��h&h'h(hOh*}r’��(h,]h-]h.]h/]h3]uh5K¥h7]r÷��h@X���Mutabler◊��ÖÅrÿ��}rŸ��(hj‘��h j“��ubaubah(j¢��ubjï��)År⁄��}r€��(hU�h*}r‹��(h,]h-]h.]h/]h3]uh jØ��h7]r›��hL)Årfi��}rfl��(hX���Clientr‡��h j⁄��h&h'h(hOh*}r·��(h,]h-]h.]h/]h3]uh5Kµh7]r‚��h@X���Clientr„��ÖÅr‰��}rÂ��(hj‡��h jfi��ubaubah(j¢��ubjï��)ÅrÊ��}rÁ��(hU�h*}rË��(h,]h-]h.]h/]h3]uh jØ��h7]rÈ��hL)ÅrÍ��}rÎ��(hX���ClientrÏ��h jÊ��h&h'h(hOh*}rÌ��(h,]h-]h.]h/]h3]uh5K∂h7]rÓ��h@X���ClientrÔ��ÖÅr��}rÒ��(hjÏ��h jÍ��ubaubah(j¢��ubjï��)ÅrÚ��}rÛ��(hU�h*}rÙ��(h,]h-]h.]h/]h3]uh jØ��h7]rı��hL)Årˆ��}r˜��(hX���As for ``formatId``.h jÚ��h&h'h(hOh*}r¯��(h,]h-]h.]h/]h3]uh5K∑h7]r˘��(h@X���As for r˙��ÖÅr˚��}r¸��(hX���As for h jˆ��ubhy)År˝��}r˛��(hX���``formatId``h*}rˇ��(h,]h-]h.]h/]h3]uh jˆ��h7]r���h@X���formatIdr��ÖÅr��}r��(hU�h j˝��ubah(hÉubh@X���.ÖÅr��}r��(hX���.h jˆ��ubeubah(j¢��ubeh(j”��ubjê��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j÷��h7]r	��(jï��)År
��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r
��hL)År��}r��(hX*���:attr:`~Types.SystemMetadata.rightsHolder`r��h j
��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Kπh7]r��hU)År��}r��(hj��h j��h&h'h(hYh*}r��(UreftypeX���attrh[âh\X!���Types.SystemMetadata.rightsHolderU	refdomainX���pyr��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Kπh7]r��hy)År��}r��(hj��h*}r��(h,]h-]r��(hfj��X���py-attrr��eh.]h/]h3]uh j��h7]r��h@X���rightsHolderr��ÖÅr��}r ��(hU�h j��ubah(hÉubaubaubah(j¢��ubjï��)År!��}r"��(hU�h*}r#��(h,]h-]h.]h/]h3]uh j��h7]r$��hL)År%��}r&��(hX���Mutabler'��h j!��h&h'h(hOh*}r(��(h,]h-]h.]h/]h3]uh5K∫h7]r)��h@X���Mutabler*��ÖÅr+��}r,��(hj'��h j%��ubaubah(j¢��ubjï��)År-��}r.��(hU�h*}r/��(h,]h-]h.]h/]h3]uh j��h7]r0��hL)År1��}r2��(hX���Clientr3��h j-��h&h'h(hOh*}r4��(h,]h-]h.]h/]h3]uh5Kªh7]r5��h@X���Clientr6��ÖÅr7��}r8��(hj3��h j1��ubaubah(j¢��ubjï��)År9��}r:��(hU�h*}r;��(h,]h-]h.]h/]h3]uh j��h7]r<��hL)År=��}r>��(hX���Clientr?��h j9��h&h'h(hOh*}r@��(h,]h-]h.]h/]h3]uh5Kºh7]rA��h@X���ClientrB��ÖÅrC��}rD��(hj?��h j=��ubaubah(j¢��ubjï��)ÅrE��}rF��(hU�h*}rG��(h,]h-]h.]h/]h3]uh j��h7]rH��(hL)ÅrI��}rJ��(hX+���Rights holder for an object may be altered.rK��h jE��h&h'h(hOh*}rL��(h,]h-]h.]h/]h3]uh5KΩh7]rM��h@X+���Rights holder for an object may be altered.rN��ÖÅrO��}rP��(hjK��h jI��ubaubhL)ÅrQ��}rR��(hX+���v1: :func:`CNAuthorization.setRightsHolder`h jE��h&h'h(hOh*}rS��(h,]h-]h.]h/]h3]uh5Køh7]rT��(h@X���v1: rU��ÖÅrV��}rW��(hX���v1: h jQ��ubhU)ÅrX��}rY��(hX'���:func:`CNAuthorization.setRightsHolder`rZ��h jQ��h&h'h(hYh*}r[��(UreftypeX���funch[âh\X���CNAuthorization.setRightsHolderU	refdomainX���pyr\��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Køh7]r]��hy)År^��}r_��(hjZ��h*}r`��(h,]h-]ra��(hfj\��X���py-funcrb��eh.]h/]h3]uh jX��h7]rc��h@X!���CNAuthorization.setRightsHolder()rd��ÖÅre��}rf��(hU�h j^��ubah(hÉubaubeubhL)Årg��}rh��(hX*���v2: :func:`MNStorage.updateSystemMetadata`h jE��h&h'h(hOh*}ri��(h,]h-]h.]h/]h3]uh5K¡h7]rj��(h@X���v2: rk��ÖÅrl��}rm��(hX���v2: h jg��ubhU)Årn��}ro��(hX&���:func:`MNStorage.updateSystemMetadata`rp��h jg��h&h'h(hYh*}rq��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrr��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K¡h7]rs��hy)Årt��}ru��(hjp��h*}rv��(h,]h-]rw��(hfjr��X���py-funcrx��eh.]h/]h3]uh jn��h7]ry��h@X ���MNStorage.updateSystemMetadata()rz��ÖÅr{��}r|��(hU�h jt��ubah(hÉubaubeubeh(j¢��ubeh(j”��ubjê��)År}��}r~��(hU�h*}r��(h,]h-]h.]h/]h3]uh j÷��h7]rÄ��(jï��)ÅrÅ��}rÇ��(hU�h*}rÉ��(h,]h-]h.]h/]h3]uh j}��h7]rÑ��hL)ÅrÖ��}rÜ��(hX*���:attr:`~Types.SystemMetadata.accessPolicy`rá��h jÅ��h&h'h(hOh*}rà��(h,]h-]h.]h/]h3]uh5K√h7]râ��hU)Årä��}rã��(hjá��h jÖ��h&h'h(hYh*}rå��(UreftypeX���attrh[âh\X!���Types.SystemMetadata.accessPolicyU	refdomainX���pyrç��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K√h7]ré��hy)Årè��}rê��(hjá��h*}rë��(h,]h-]rí��(hfjç��X���py-attrrì��eh.]h/]h3]uh jä��h7]rî��h@X���accessPolicyrï��ÖÅrñ��}ró��(hU�h jè��ubah(hÉubaubaubah(j¢��ubjï��)Årò��}rô��(hU�h*}rö��(h,]h-]h.]h/]h3]uh j}��h7]rõ��hL)Årú��}rù��(hX���Mutablerû��h jò��h&h'h(hOh*}rü��(h,]h-]h.]h/]h3]uh5Kƒh7]r†��h@X���Mutabler°��ÖÅr¢��}r£��(hjû��h jú��ubaubah(j¢��ubjï��)År§��}r•��(hU�h*}r¶��(h,]h-]h.]h/]h3]uh j}��h7]rß��hL)År®��}r©��(hX���Clientr™��h j§��h&h'h(hOh*}r´��(h,]h-]h.]h/]h3]uh5K≈h7]r¨��h@X���Clientr≠��ÖÅrÆ��}rØ��(hj™��h j®��ubaubah(j¢��ubjï��)År∞��}r±��(hU�h*}r≤��(h,]h-]h.]h/]h3]uh j}��h7]r≥��hL)År¥��}rµ��(hX���Clientr∂��h j∞��h&h'h(hOh*}r∑��(h,]h-]h.]h/]h3]uh5K∆h7]r∏��h@X���Clientrπ��ÖÅr∫��}rª��(hj∂��h j¥��ubaubah(j¢��ubjï��)Årº��}rΩ��(hU�h*}ræ��(h,]h-]h.]h/]h3]uh j}��h7]rø��(hL)År¿��}r¡��(hX+���Access policy for an object may be altered.r¬��h jº��h&h'h(hOh*}r√��(h,]h-]h.]h/]h3]uh5K«h7]rƒ��h@X+���Access policy for an object may be altered.r≈��ÖÅr∆��}r«��(hj¬��h j¿��ubaubhL)År»��}r…��(hX+���v1: :func:`CNAuthorization.setAccessPolicy`h jº��h&h'h(hOh*}r ��(h,]h-]h.]h/]h3]uh5K…h7]rÀ��(h@X���v1: rÃ��ÖÅrÕ��}rŒ��(hX���v1: h j»��ubhU)Årœ��}r–��(hX'���:func:`CNAuthorization.setAccessPolicy`r—��h j»��h&h'h(hYh*}r“��(UreftypeX���funch[âh\X���CNAuthorization.setAccessPolicyU	refdomainX���pyr”��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K…h7]r‘��hy)År’��}r÷��(hj—��h*}r◊��(h,]h-]rÿ��(hfj”��X���py-funcrŸ��eh.]h/]h3]uh jœ��h7]r⁄��h@X!���CNAuthorization.setAccessPolicy()r€��ÖÅr‹��}r›��(hU�h j’��ubah(hÉubaubeubhL)Årfi��}rfl��(hX+���v2: :func:`MNStorage.updateSystemMetadata`.h jº��h&h'h(hOh*}r‡��(h,]h-]h.]h/]h3]uh5KÀh7]r·��(h@X���v2: r‚��ÖÅr„��}r‰��(hX���v2: h jfi��ubhU)ÅrÂ��}rÊ��(hX&���:func:`MNStorage.updateSystemMetadata`rÁ��h jfi��h&h'h(hYh*}rË��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrÈ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KÀh7]rÍ��hy)ÅrÎ��}rÏ��(hjÁ��h*}rÌ��(h,]h-]rÓ��(hfjÈ��X���py-funcrÔ��eh.]h/]h3]uh jÂ��h7]r��h@X ���MNStorage.updateSystemMetadata()rÒ��ÖÅrÚ��}rÛ��(hU�h jÎ��ubah(hÉubaubh@X���.ÖÅrÙ��}rı��(hX���.h jfi��ubeubeh(j¢��ubeh(j”��ubjê��)Årˆ��}r˜��(hU�h*}r¯��(h,]h-]h.]h/]h3]uh j÷��h7]r˘��(jï��)År˙��}r˚��(hU�h*}r¸��(h,]h-]h.]h/]h3]uh jˆ��h7]r˝��hL)År˛��}rˇ��(hX/���:attr:`~Types.SystemMetadata.replicationPolicy`r���h j˙��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5KÕh7]r��hU)År��}r��(hj���h j˛��h&h'h(hYh*}r��(UreftypeX���attrh[âh\X&���Types.SystemMetadata.replicationPolicyU	refdomainX���pyr��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KÕh7]r��hy)År��}r	��(hj���h*}r
��(h,]h-]r��(hfj��X���py-attrr��eh.]h/]h3]uh j��h7]r
��h@X���replicationPolicyr��ÖÅr��}r��(hU�h j��ubah(hÉubaubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh jˆ��h7]r��hL)År��}r��(hX���Mutabler��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5KŒh7]r��h@X���Mutabler��ÖÅr��}r��(hj��h j��ubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh jˆ��h7]r ��hL)År!��}r"��(hX���Clientr#��h j��h&h'h(hOh*}r$��(h,]h-]h.]h/]h3]uh5Kœh7]r%��h@X���Clientr&��ÖÅr'��}r(��(hj#��h j!��ubaubah(j¢��ubjï��)År)��}r*��(hU�h*}r+��(h,]h-]h.]h/]h3]uh jˆ��h7]r,��hL)År-��}r.��(hX���Clientr/��h j)��h&h'h(hOh*}r0��(h,]h-]h.]h/]h3]uh5K–h7]r1��h@X���Clientr2��ÖÅr3��}r4��(hj/��h j-��ubaubah(j¢��ubjï��)År5��}r6��(hU�h*}r7��(h,]h-]h.]h/]h3]uh jˆ��h7]r8��(hL)År9��}r:��(hX.���v1: :func:`CNReplication.setReplicationPolicy`h j5��h&h'h(hOh*}r;��(h,]h-]h.]h/]h3]uh5K—h7]r<��(h@X���v1: r=��ÖÅr>��}r?��(hX���v1: h j9��ubhU)År@��}rA��(hX*���:func:`CNReplication.setReplicationPolicy`rB��h j9��h&h'h(hYh*}rC��(UreftypeX���funch[âh\X"���CNReplication.setReplicationPolicyU	refdomainX���pyrD��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K—h7]rE��hy)ÅrF��}rG��(hjB��h*}rH��(h,]h-]rI��(hfjD��X���py-funcrJ��eh.]h/]h3]uh j@��h7]rK��h@X$���CNReplication.setReplicationPolicy()rL��ÖÅrM��}rN��(hU�h jF��ubah(hÉubaubeubhL)ÅrO��}rP��(hX*���v2: :func:`MNStorage.updateSystemMetadata`h j5��h&h'h(hOh*}rQ��(h,]h-]h.]h/]h3]uh5K”h7]rR��(h@X���v2: rS��ÖÅrT��}rU��(hX���v2: h jO��ubhU)ÅrV��}rW��(hX&���:func:`MNStorage.updateSystemMetadata`rX��h jO��h&h'h(hYh*}rY��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyrZ��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K”h7]r[��hy)År\��}r]��(hjX��h*}r^��(h,]h-]r_��(hfjZ��X���py-funcr`��eh.]h/]h3]uh jV��h7]ra��h@X ���MNStorage.updateSystemMetadata()rb��ÖÅrc��}rd��(hU�h j\��ubah(hÉubaubeubeh(j¢��ubeh(j”��ubjê��)Åre��}rf��(hU�h*}rg��(h,]h-]h.]h/]h3]uh j÷��h7]rh��(jï��)Åri��}rj��(hU�h*}rk��(h,]h-]h.]h/]h3]uh je��h7]rl��hL)Årm��}rn��(hX5���:attr:`~Types.SystemMetadata.dateSysMetadataModified`ro��h ji��h&h'h(hOh*}rp��(h,]h-]h.]h/]h3]uh5K’h7]rq��hU)Årr��}rs��(hjo��h jm��h&h'h(hYh*}rt��(UreftypeX���attrh[âh\X,���Types.SystemMetadata.dateSysMetadataModifiedU	refdomainX���pyru��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K’h7]rv��hy)Årw��}rx��(hjo��h*}ry��(h,]h-]rz��(hfju��X���py-attrr{��eh.]h/]h3]uh jr��h7]r|��h@X���dateSysMetadataModifiedr}��ÖÅr~��}r��(hU�h jw��ubah(hÉubaubaubah(j¢��ubjï��)ÅrÄ��}rÅ��(hU�h*}rÇ��(h,]h-]h.]h/]h3]uh je��h7]rÉ��hL)ÅrÑ��}rÖ��(hX���MutablerÜ��h jÄ��h&h'h(hOh*}rá��(h,]h-]h.]h/]h3]uh5K÷h7]rà��h@X���Mutablerâ��ÖÅrä��}rã��(hjÜ��h jÑ��ubaubah(j¢��ubjï��)Årå��}rç��(hU�h*}ré��(h,]h-]h.]h/]h3]uh je��h7]rè��hL)Årê��}rë��(hX���MNrí��h jå��h&h'h(hOh*}rì��(h,]h-]h.]h/]h3]uh5K◊h7]rî��h@X���MNrï��ÖÅrñ��}ró��(hjí��h jê��ubaubah(j¢��ubjï��)Årò��}rô��(hU�h*}rö��(h,]h-]h.]h/]h3]uh je��h7]rõ��hL)Årú��}rù��(hX���MNrû��h jò��h&h'h(hOh*}rü��(h,]h-]h.]h/]h3]uh5Kÿh7]r†��h@X���MNr°��ÖÅr¢��}r£��(hjû��h jú��ubaubah(j¢��ubjï��)År§��}r•��(hU�h*}r¶��(h,]h-]h.]h/]h3]uh je��h7]rß��hL)År®��}r©��(hX-���Updated any time a property value is changed.r™��h j§��h&h'h(hOh*}r´��(h,]h-]h.]h/]h3]uh5KŸh7]r¨��h@X-���Updated any time a property value is changed.r≠��ÖÅrÆ��}rØ��(hj™��h j®��ubaubah(j¢��ubeh(j”��ubjê��)År∞��}r±��(hU�h*}r≤��(h,]h-]h.]h/]h3]uh j÷��h7]r≥��(jï��)År¥��}rµ��(hU�h*}r∂��(h,]h-]h.]h/]h3]uh j∞��h7]r∑��hL)År∏��}rπ��(hX5���:attr:`~Types.SystemMetadata.authoritativeMemberNode`r∫��h j¥��h&h'h(hOh*}rª��(h,]h-]h.]h/]h3]uh5K€h7]rº��hU)ÅrΩ��}ræ��(hj∫��h j∏��h&h'h(hYh*}rø��(UreftypeX���attrh[âh\X,���Types.SystemMetadata.authoritativeMemberNodeU	refdomainX���pyr¿��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K€h7]r¡��hy)År¬��}r√��(hj∫��h*}rƒ��(h,]h-]r≈��(hfj¿��X���py-attrr∆��eh.]h/]h3]uh jΩ��h7]r«��h@X���authoritativeMemberNoder»��ÖÅr…��}r ��(hU�h j¬��ubah(hÉubaubaubah(j¢��ubjï��)ÅrÀ��}rÃ��(hU�h*}rÕ��(h,]h-]h.]h/]h3]uh j∞��h7]rŒ��hL)Årœ��}r–��(hX���Mutabler—��h jÀ��h&h'h(hOh*}r“��(h,]h-]h.]h/]h3]uh5K‹h7]r”��h@X���Mutabler‘��ÖÅr’��}r÷��(hj—��h jœ��ubaubah(j¢��ubjï��)År◊��}rÿ��(hU�h*}rŸ��(h,]h-]h.]h/]h3]uh j∞��h7]r⁄��hL)År€��}r‹��(hX���MNr›��h j◊��h&h'h(hOh*}rfi��(h,]h-]h.]h/]h3]uh5K›h7]rfl��h@X���MNr‡��ÖÅr·��}r‚��(hj›��h j€��ubaubah(j¢��ubjï��)År„��}r‰��(hU�h*}rÂ��(h,]h-]h.]h/]h3]uh j∞��h7]rÊ��hL)ÅrÁ��}rË��(hX���CNrÈ��h j„��h&h'h(hOh*}rÍ��(h,]h-]h.]h/]h3]uh5Kfih7]rÎ��h@X���CNrÏ��ÖÅrÌ��}rÓ��(hjÈ��h jÁ��ubaubah(j¢��ubjï��)ÅrÔ��}r��(hU�h*}rÒ��(h,]h-]h.]h/]h3]uh j∞��h7]rÚ��hL)ÅrÛ��}rÙ��(hXH���Manual update process that must be performed by a DataONE administrator.rı��h jÔ��h&h'h(hOh*}rˆ��(h,]h-]h.]h/]h3]uh5Kflh7]r˜��h@XH���Manual update process that must be performed by a DataONE administrator.r¯��ÖÅr˘��}r˙��(hjı��h jÛ��ubaubah(j¢��ubeh(j”��ubjê��)År˚��}r¸��(hU�h*}r˝��(h,]h-]h.]h/]h3]uh j÷��h7]r˛��(jï��)Årˇ��}r�	��(hU�h*}r	��(h,]h-]h.]h/]h3]uh j˚��h7]r	��hL)År	��}r	��(hX%���:attr:`~Types.SystemMetadata.replica`r	��h jˇ��h&h'h(hOh*}r	��(h,]h-]h.]h/]h3]uh5K·h7]r	��hU)År	��}r		��(hj	��h j	��h&h'h(hYh*}r
	��(UreftypeX���attrh[âh\X���Types.SystemMetadata.replicaU	refdomainX���pyr	��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K·h7]r	��hy)År
	��}r	��(hj	��h*}r	��(h,]h-]r	��(hfj	��X���py-attrr	��eh.]h/]h3]uh j	��h7]r	��h@X���replicar	��ÖÅr	��}r	��(hU�h j
	��ubah(hÉubaubaubah(j¢��ubjï��)År	��}r	��(hU�h*}r	��(h,]h-]h.]h/]h3]uh j˚��h7]r	��hL)År	��}r	��(hX���Mutabler	��h j	��h&h'h(hOh*}r	��(h,]h-]h.]h/]h3]uh5K‚h7]r	��h@X���Mutabler	��ÖÅr 	��}r!	��(hj	��h j	��ubaubah(j¢��ubjï��)År"	��}r#	��(hU�h*}r$	��(h,]h-]h.]h/]h3]uh j˚��h7]r%	��hL)År&	��}r'	��(hX���CNr(	��h j"	��h&h'h(hOh*}r)	��(h,]h-]h.]h/]h3]uh5K„h7]r*	��h@X���CNr+	��ÖÅr,	��}r-	��(hj(	��h j&	��ubaubah(j¢��ubjï��)År.	��}r/	��(hU�h*}r0	��(h,]h-]h.]h/]h3]uh j˚��h7]r1	��hL)År2	��}r3	��(hX���CNr4	��h j.	��h&h'h(hOh*}r5	��(h,]h-]h.]h/]h3]uh5K‰h7]r6	��h@X���CNr7	��ÖÅr8	��}r9	��(hj4	��h j2	��ubaubah(j¢��ubjï��)År:	��}r;	��(hU�h*}r<	��(h,]h-]h.]h/]h3]uh j˚��h7]r=	��hL)År>	��}r?	��(hXP���:func:`CNReplication.updateReplicationMetadata` (internal to
Coordinating Nodes)h j:	��h&h'h(hOh*}r@	��(h,]h-]h.]h/]h3]uh5KÂh7]rA	��(hU)ÅrB	��}rC	��(hX/���:func:`CNReplication.updateReplicationMetadata`rD	��h j>	��h&h'h(hYh*}rE	��(UreftypeX���funch[âh\X'���CNReplication.updateReplicationMetadataU	refdomainX���pyrF	��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5KÂh7]rG	��hy)ÅrH	��}rI	��(hjD	��h*}rJ	��(h,]h-]rK	��(hfjF	��X���py-funcrL	��eh.]h/]h3]uh jB	��h7]rM	��h@X)���CNReplication.updateReplicationMetadata()rN	��ÖÅrO	��}rP	��(hU�h jH	��ubah(hÉubaubh@X!��� (internal to
Coordinating Nodes)rQ	��ÖÅrR	��}rS	��(hX!��� (internal to
Coordinating Nodes)h j>	��ubeubah(j¢��ubeh(j”��ubeh(UtbodyrT	��ubeh(UtgrouprU	��ubaubeubh!)ÅrV	��}rW	��(hU�h h$h&h'h(h)h*}rX	��(h,]h-]h.]h/]rY	��Uchanging-system-metadata-valuesrZ	��ah3]r[	��hauh5KÍh6hh7]r\	��(h9)År]	��}r^	��(hX���Changing System Metadata Valuesr_	��h jV	��h&h'h(h=h*}r`	��(h,]h-]h.]h/]h3]uh5KÍh6hh7]ra	��h@X���Changing System Metadata Valuesrb	��ÖÅrc	��}rd	��(hj_	��h j]	��ubaubhL)Åre	��}rf	��(hXë���Table 1. lists the properties of System Metadata that may be altered by
authorized users. This section describes how those changes are performed.rg	��h jV	��h&h'h(hOh*}rh	��(h,]h-]h.]h/]h3]uh5KÏh6hh7]ri	��h@Xë���Table 1. lists the properties of System Metadata that may be altered by
authorized users. This section describes how those changes are performed.rj	��ÖÅrk	��}rl	��(hjg	��h je	��ubaubhL)Årm	��}rn	��(hXÇ��In all cases it is assumed that the user is appropriately authenticated and is
authorized to perform the operation. Users must have ``CHANGE_PERMISSION``
permission in order to alter system metadata. The object ``rightsHolder``, the
identity of the ``authoritativeMemberNode``, and the identity of a Coordinating
Node will always have permission to update system metadata for an object.h jV	��h&h'h(hOh*}ro	��(h,]h-]h.]h/]h3]uh5KÔh6hh7]rp	��(h@XÑ���In all cases it is assumed that the user is appropriately authenticated and is
authorized to perform the operation. Users must have rq	��ÖÅrr	��}rs	��(hXÑ���In all cases it is assumed that the user is appropriately authenticated and is
authorized to perform the operation. Users must have h jm	��ubhy)Årt	��}ru	��(hX���``CHANGE_PERMISSION``h*}rv	��(h,]h-]h.]h/]h3]uh jm	��h7]rw	��h@X���CHANGE_PERMISSIONrx	��ÖÅry	��}rz	��(hU�h jt	��ubah(hÉubh@X:���
permission in order to alter system metadata. The object r{	��ÖÅr|	��}r}	��(hX:���
permission in order to alter system metadata. The object h jm	��ubhy)År~	��}r	��(hX���``rightsHolder``h*}rÄ	��(h,]h-]h.]h/]h3]uh jm	��h7]rÅ	��h@X���rightsHolderrÇ	��ÖÅrÉ	��}rÑ	��(hU�h j~	��ubah(hÉubh@X���, the
identity of the rÖ	��ÖÅrÜ	��}rá	��(hX���, the
identity of the h jm	��ubhy)Årà	��}râ	��(hX���``authoritativeMemberNode``h*}rä	��(h,]h-]h.]h/]h3]uh jm	��h7]rã	��h@X���authoritativeMemberNoderå	��ÖÅrç	��}ré	��(hU�h jà	��ubah(hÉubh@Xn���, and the identity of a Coordinating
Node will always have permission to update system metadata for an object.rè	��ÖÅrê	��}rë	��(hXn���, and the identity of a Coordinating
Node will always have permission to update system metadata for an object.h jm	��ubeubh!)Årí	��}rì	��(hU�h jV	��h&h'h(h)h*}rî	��(h,]h-]h.]h/]rï	��U'updating-system-metadata-in-version-2-xrñ	��ah3]ró	��hauh5K˜h6hh7]rò	��(h9)Årô	��}rö	��(hX'���Updating System Metadata in Version 2.xrõ	��h jí	��h&h'h(h=h*}rú	��(h,]h-]h.]h/]h3]uh5K˜h6hh7]rù	��h@X'���Updating System Metadata in Version 2.xrû	��ÖÅrü	��}r†	��(hjõ	��h jô	��ubaubhL)År°	��}r¢	��(hX��In version 2.x, properties of System Metadata are set via the Member Node using
the :func:`MNStorage.updateSystemMetadata` implemented by version 2.x Member
Nodes. This method is implemented as a HTTP PUT agains the /meta endpoint of the
Member Node with the identifier included as a URL parameter and the new System
Metadata serialized as XML included in the MIME-Multipart payload.h jí	��h&h'h(hOh*}r£	��(h,]h-]h.]h/]h3]uh5K˘h6hh7]r§	��(h@XT���In version 2.x, properties of System Metadata are set via the Member Node using
the r•	��ÖÅr¶	��}rß	��(hXT���In version 2.x, properties of System Metadata are set via the Member Node using
the h j°	��ubhU)År®	��}r©	��(hX&���:func:`MNStorage.updateSystemMetadata`r™	��h j°	��h&h'h(hYh*}r´	��(UreftypeX���funch[âh\X���MNStorage.updateSystemMetadataU	refdomainX���pyr¨	��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5K˘h7]r≠	��hy)ÅrÆ	��}rØ	��(hj™	��h*}r∞	��(h,]h-]r±	��(hfj¨	��X���py-funcr≤	��eh.]h/]h3]uh j®	��h7]r≥	��h@X ���MNStorage.updateSystemMetadata()r¥	��ÖÅrµ	��}r∂	��(hU�h jÆ	��ubah(hÉubaubh@X�� implemented by version 2.x Member
Nodes. This method is implemented as a HTTP PUT agains the /meta endpoint of the
Member Node with the identifier included as a URL parameter and the new System
Metadata serialized as XML included in the MIME-Multipart payload.r∑	��ÖÅr∏	��}rπ	��(hX�� implemented by version 2.x Member
Nodes. This method is implemented as a HTTP PUT agains the /meta endpoint of the
Member Node with the identifier included as a URL parameter and the new System
Metadata serialized as XML included in the MIME-Multipart payload.h j°	��ubeubeubh!)År∫	��}rª	��(hU�h jV	��h&h'h(h)h*}rº	��(h,]h-]h.]h/]rΩ	��U'updating-system-metadata-in-version-1-xræ	��ah3]rø	��hauh5Mh6hh7]r¿	��(h9)År¡	��}r¬	��(hX'���Updating System Metadata in Version 1.xr√	��h j∫	��h&h'h(h=h*}rƒ	��(h,]h-]h.]h/]h3]uh5Mh6hh7]r≈	��h@X'���Updating System Metadata in Version 1.xr∆	��ÖÅr«	��}r»	��(hj√	��h j¡	��ubaubcdocutils.nodes
target
r…	��)År 	��}rÀ	��(hU�h j∫	��h&h'h(UtargetrÃ	��h*}rÕ	��(h/]h.]h,]h-]h3]UrefidrŒ	��Uindex-0rœ	��uh5Nh6hh7]ubcsphinx.ext.todo
todo_node
r–	��)År—	��}r“	��(hX���flesh this out with examplesr”	��h j∫	��h&h'Uexpect_referenced_by_namer‘	��}h(U	todo_noder’	��h*}r÷	��(h,]h-]r◊	��Uadmonition-todorÿ	��ah.]h/]rŸ	��jœ	��ah3]uh5Mh6hUexpect_referenced_by_idr⁄	��}r€	��jœ	��j 	��sh7]r‹	��(h9)År›	��}rfi	��(hX���Todorfl	��h*}r‡	��(h,]h-]h.]h/]h3]uh j—	��h7]r·	��h@X���Todor‚	��ÖÅr„	��}r‰	��(hU�h j›	��ubah(h=ubhL)ÅrÂ	��}rÊ	��(hj”	��h j—	��h&h'h(hOh*}rÁ	��(h,]h-]h.]h/]h3]uh5Mh7]rË	��h@X���flesh this out with examplesrÈ	��ÖÅrÍ	��}rÎ	��(hj”	��h jÂ	��ubaubeubeubeubh!)ÅrÏ	��}rÌ	��(hU�h h$h&h'h(h)h*}rÓ	��(h,]h-]h.]h/]rÔ	��Usystem-metadata-schemar	��ah3]rÒ	��h
auh5M
h6hh7]rÚ	��(h9)ÅrÛ	��}rÙ	��(hX���System Metadata Schemarı	��h jÏ	��h&h'h(h=h*}rˆ	��(h,]h-]h.]h/]h3]uh5M
h6hh7]r˜	��h@X���System Metadata Schemar¯	��ÖÅr˘	��}r˙	��(hjı	��h jÛ	��ubaubhL)År˚	��}r¸	��(hXM���The structure of :class:`~v2_0.Types.SystemMetadata` is defined in XMLSchema.r˝	��h jÏ	��h&h'h(hOh*}r˛	��(h,]h-]h.]h/]h3]uh5Mh6hh7]rˇ	��(h@X���The structure of r�
��ÖÅr
��}r
��(hX���The structure of h j˚	��ubhU)År
��}r
��(hX#���:class:`~v2_0.Types.SystemMetadata`r
��h j˚	��h&h'h(hYh*}r
��(UreftypeX���classh[âh\X���v2_0.Types.SystemMetadataU	refdomainX���pyr
��h/]h.]Urefexplicitâh,]h-]h3]h^h_huNhvhwuh5Mh7]r
��hy)År	
��}r

��(hj
��h*}r
��(h,]h-]r
��(hfj
��X���py-classr
��eh.]h/]h3]uh j
��h7]r
��h@X���SystemMetadatar
��ÖÅr
��}r
��(hU�h j	
��ubah(hÉubaubh@X��� is defined in XMLSchema.r
��ÖÅr
��}r
��(hX��� is defined in XMLSchema.h j˚	��ubeubhL)År
��}r
��(hX���The current release of the System Metadata schema involves three parts. Version 1.0 provides a full schema which version 1.1 extends, which is in turn extended by version 2.0.r
��h jÏ	��h&h'h(hOh*}r
��(h,]h-]h.]h/]h3]uh5Mh6hh7]r
��h@X���The current release of the System Metadata schema involves three parts. Version 1.0 provides a full schema which version 1.1 extends, which is in turn extended by version 2.0.r
��ÖÅr
��}r
��(hj
��h j
��ubaubhL)År
��}r
��(hXG���Release versions of the schema are available from their namespace URIs:r
��h jÏ	��h&h'h(hOh*}r 
��(h,]h-]h.]h/]h3]uh5Mh6hh7]r!
��h@XG���Release versions of the schema are available from their namespace URIs:r"
��ÖÅr#
��}r$
��(hj
��h j
��ubaubcdocutils.nodes
field_list
r%
��)År&
��}r'
��(hU�h jÏ	��h&h'h(U
field_listr(
��h*}r)
��(h,]h-]h.]h/]h3]uh5Mh6hh7]r*
��(cdocutils.nodes
field
r+
��)År,
��}r-
��(hU�h j&
��h&h'h(Ufieldr.
��h*}r/
��(h,]h-]h.]h/]h3]uh5Mh6hh7]r0
��(cdocutils.nodes
field_name
r1
��)År2
��}r3
��(hX���Version 1.0r4
��h j,
��h&h'h(U
field_namer5
��h*}r6
��(h,]h-]h.]h/]h3]uh5K�h7]r7
��h@X���Version 1.0r8
��ÖÅr9
��}r:
��(hj4
��h j2
��ubaubcdocutils.nodes
field_body
r;
��)År<
��}r=
��(hX(���https://ns.dataone.org/service/types/v1
h*}r>
��(h,]h-]h.]h/]h3]uh j,
��h7]r?
��hL)År@
��}rA
��(hX'���https://ns.dataone.org/service/types/v1rB
��h j<
��h&h'h(hOh*}rC
��(h,]h-]h.]h/]h3]uh5Mh7]rD
��cdocutils.nodes
reference
rE
��)ÅrF
��}rG
��(hjB
��h*}rH
��(UrefurijB
��h/]h.]h,]h-]h3]uh j@
��h7]rI
��h@X'���https://ns.dataone.org/service/types/v1rJ
��ÖÅrK
��}rL
��(hU�h jF
��ubah(U	referencerM
��ubaubah(U
field_bodyrN
��ubeubj+
��)ÅrO
��}rP
��(hU�h j&
��h&h'h(j.
��h*}rQ
��(h,]h-]h.]h/]h3]uh5Mh6hh7]rR
��(j1
��)ÅrS
��}rT
��(hX���Version 1.1rU
��h jO
��h&h'h(j5
��h*}rV
��(h,]h-]h.]h/]h3]uh5K�h7]rW
��h@X���Version 1.1rX
��ÖÅrY
��}rZ
��(hjU
��h jS
��ubaubj;
��)År[
��}r\
��(hX*���https://ns.dataone.org/service/types/v1.1
h*}r]
��(h,]h-]h.]h/]h3]uh jO
��h7]r^
��hL)År_
��}r`
��(hX)���https://ns.dataone.org/service/types/v1.1ra
��h j[
��h&h'h(hOh*}rb
��(h,]h-]h.]h/]h3]uh5Mh7]rc
��jE
��)Ård
��}re
��(hja
��h*}rf
��(Urefurija
��h/]h.]h,]h-]h3]uh j_
��h7]rg
��h@X)���https://ns.dataone.org/service/types/v1.1rh
��ÖÅri
��}rj
��(hU�h jd
��ubah(jM
��ubaubah(jN
��ubeubj+
��)Årk
��}rl
��(hU�h j&
��h&h'h(j.
��h*}rm
��(h,]h-]h.]h/]h3]uh5Mh6hh7]rn
��(j1
��)Åro
��}rp
��(hX���Version 2.0rq
��h jk
��h&h'h(j5
��h*}rr
��(h,]h-]h.]h/]h3]uh5K�h7]rs
��h@X���Version 2.0rt
��ÖÅru
��}rv
��(hjq
��h jo
��ubaubj;
��)Årw
��}rx
��(hX*���https://ns.dataone.org/service/types/v2.0
h*}ry
��(h,]h-]h.]h/]h3]uh jk
��h7]rz
��hL)År{
��}r|
��(hX)���https://ns.dataone.org/service/types/v2.0r}
��h jw
��h&h'h(hOh*}r~
��(h,]h-]h.]h/]h3]uh5Mh7]r
��jE
��)ÅrÄ
��}rÅ
��(hj}
��h*}rÇ
��(Urefurij}
��h/]h.]h,]h-]h3]uh j{
��h7]rÉ
��h@X)���https://ns.dataone.org/service/types/v2.0rÑ
��ÖÅrÖ
��}rÜ
��(hU�h jÄ
��ubah(jM
��ubaubah(jN
��ubeubeubhL)Årá
��}rà
��(hXP���Development versions of the schema are maintained in a subversion repository at:râ
��h jÏ	��h&h'h(hOh*}rä
��(h,]h-]h.]h/]h3]uh5Mh6hh7]rã
��h@XP���Development versions of the schema are maintained in a subversion repository at:rå
��ÖÅrç
��}ré
��(hjâ
��h já
��ubaubhL)Årè
��}rê
��(hX@���https://repository.dataone.org/software/cicore/trunk/d1_schemas/rë
��h jÏ	��h&h'h(hOh*}rí
��(h,]h-]h.]h/]h3]uh5Mh6hh7]rì
��jE
��)Årî
��}rï
��(hjë
��h*}rñ
��(Urefurijë
��h/]h.]h,]h-]h3]uh jè
��h7]ró
��h@X@���https://repository.dataone.org/software/cicore/trunk/d1_schemas/rò
��ÖÅrô
��}rö
��(hU�h jî
��ubah(jM
��ubaubeubh"h!)Årõ
��}rú
��(hU�h h$h&h'h(h)h*}rù
��(h,]h-]h.]h/]rû
��U?roadmap-to-system-metadata-control-changes-draft-to-be-reviewedrü
��ah3]r†
��h
auh5M-h6hh7]r°
��(h9)År¢
��}r£
��(hXC���Roadmap to System Metadata Control Changes (DRAFT - to be reviewed)r§
��h jõ
��h&h'h(h=h*}r•
��(h,]h-]h.]h/]h3]uh5M-h6hh7]r¶
��h@XC���Roadmap to System Metadata Control Changes (DRAFT - to be reviewed)rß
��ÖÅr®
��}r©
��(hj§
��h j¢
��ubaubhL)År™
��}r´
��(hX7��The following outline describes the policy and technical steps needed to shift the majority of control of system metadata attributes to Member Nodes such that client operations are more responsive.  The changes would require a new DataONE API v2 that involve changes to the DataONE Types schema, changes to the Member Node APIs, changes to the Coordinating Node APIs, and changes to the various software stacks that implement these APIs.  It will also involve a release and deployment schedule that allows both v1 and v2 of the APIs to be in operation simultaneously.r¨
��h jõ
��h&h'h(hOh*}r≠
��(h,]h-]h.]h/]h3]uh5M/h6hh7]rÆ
��h@X7��The following outline describes the policy and technical steps needed to shift the majority of control of system metadata attributes to Member Nodes such that client operations are more responsive.  The changes would require a new DataONE API v2 that involve changes to the DataONE Types schema, changes to the Member Node APIs, changes to the Coordinating Node APIs, and changes to the various software stacks that implement these APIs.  It will also involve a release and deployment schedule that allows both v1 and v2 of the APIs to be in operation simultaneously.rØ
��ÖÅr∞
��}r±
��(hj¨
��h j™
��ubaubhL)År≤
��}r≥
��(hX ��In transferring control to the Member Nodes, they also adopt the responsibility of consistently managing the versions of the documents in a serial manner.  Use of the `serialVersion` attribute ensures that previous values are not overwritten by new values out of order (e.g. AccessPolicy)r¥
��h jõ
��h&h'h(hOh*}rµ
��(h,]h-]h.]h/]h3]uh5M1h6hh7]r∂
��(h@Xß���In transferring control to the Member Nodes, they also adopt the responsibility of consistently managing the versions of the documents in a serial manner.  Use of the r∑
��ÖÅr∏
��}rπ
��(hXß���In transferring control to the Member Nodes, they also adopt the responsibility of consistently managing the versions of the documents in a serial manner.  Use of the h j≤
��ubcdocutils.nodes
title_reference
r∫
��)Årª
��}rº
��(hX���`serialVersion`h*}rΩ
��(h,]h-]h.]h/]h3]uh j≤
��h7]ræ
��h@X
���serialVersionrø
��ÖÅr¿
��}r¡
��(hU�h jª
��ubah(Utitle_referencer¬
��ubh@Xj��� attribute ensures that previous values are not overwritten by new values out of order (e.g. AccessPolicy)r√
��ÖÅrƒ
��}r≈
��(hXj��� attribute ensures that previous values are not overwritten by new values out of order (e.g. AccessPolicy)h j≤
��ubeubh!)År∆
��}r«
��(hU�h jõ
��h&h'h(h)h*}r»
��(h,]h-]h.]h/]r…
��U	rationaler 
��ah3]r��hauh5M4h6hh7]rÃ
��(h9)ÅrÕ
��}rŒ
��(hX	���Rationalerœ
��h j∆
��h&h'h(h=h*}r–
��(h,]h-]h.]h/]h3]uh5M4h6hh7]r—
��h@X	���Rationaler“
��ÖÅr”
��}r‘
��(hjœ
��h jÕ
��ubaubhL)År’
��}r÷
��(hXÍ��The main use case involves access control.  When a scientist using an ITK client creates an object through MN.create(), control of the system metadata is currently transferred to the CN once synchronization happens. After that point, the ITK client (and scientist) has to make CN.setAccessPolicy() calls to make any changes. If the MN is set to sync once a week, this is problematic, since the scientist would naturally expect that the access control changes should take effect immediately.r◊
��h j∆
��h&h'h(hOh*}rÿ
��(h,]h-]h.]h/]h3]uh5M6h6hh7]rŸ
��h@XÍ��The main use case involves access control.  When a scientist using an ITK client creates an object through MN.create(), control of the system metadata is currently transferred to the CN once synchronization happens. After that point, the ITK client (and scientist) has to make CN.setAccessPolicy() calls to make any changes. If the MN is set to sync once a week, this is problematic, since the scientist would naturally expect that the access control changes should take effect immediately.r⁄
��ÖÅr€
��}r‹
��(hj◊
��h j’
��ubaubhL)År›
��}rfi
��(hX5���Example sequence diagrams show the differnce follows:rfl
��h j∆
��h&h'h(hOh*}r‡
��(h,]h-]h.]h/]h3]uh5M8h6hh7]r·
��h@X5���Example sequence diagrams show the differnce follows:r‚
��ÖÅr„
��}r‰
��(hjfl
��h j›
��ubaubcdocutils.nodes
comment
rÂ
��)ÅrÊ
��}rÁ
��(hX��@startuml images/sysmeta_cn_control.png
skinparam notebordercolor #AAAAAA
skinparam notefontcolor #222222
title Current Set Access Policy Sequence\n\n
participant "Client" as Client <<D1Client>>
participant "MN" as MN <<MNode>>
participant "CN" as CN <<CNode>>
Client -> MN : MNStorage.create(pid, object, sysmeta)
Client -> CN : CNAuthorization.setAccessPolicy(pid, accessPolicy, serialVersion)
activate CN #D74F57
CN --> Client :    NotFound
deactivate CN
note right
  The client must handle NotFound exceptions
  that are unexpectedly returned.
end note
... <b>Potentially long delay due to sync schedule</b> ...
CN -> MN : MNRead.listObjects(fromDate, toDate)
activate MN #D74F57
MN --> CN : objectList
deactivate MN
CN -> MN : MNread.getSystemMetadata(pid)
activate MN #D74F57
MN --> CN : sysmeta
deactivate MN
CN -> CN : CNCore.registerSystemMetadata(pid, sysmeta)
activate CN #D74F57
deactivate CN
Client -> CN : CNAuthorization.setAccessPolicy(pid, accessPolicy, serialVersion)

note right
  Success, only after CN is sync'd.
end note
@endumlh j∆
��h&h'h(UcommentrË
��h*}rÈ
��(U	xml:spacerÍ
��UpreserverÎ
��h/]h.]h,]h-]h3]uh5M]h6hh7]rÏ
��h@X��@startuml images/sysmeta_cn_control.png
skinparam notebordercolor #AAAAAA
skinparam notefontcolor #222222
title Current Set Access Policy Sequence\n\n
participant "Client" as Client <<D1Client>>
participant "MN" as MN <<MNode>>
participant "CN" as CN <<CNode>>
Client -> MN : MNStorage.create(pid, object, sysmeta)
Client -> CN : CNAuthorization.setAccessPolicy(pid, accessPolicy, serialVersion)
activate CN #D74F57
CN --> Client :    NotFound
deactivate CN
note right
  The client must handle NotFound exceptions
  that are unexpectedly returned.
end note
... <b>Potentially long delay due to sync schedule</b> ...
CN -> MN : MNRead.listObjects(fromDate, toDate)
activate MN #D74F57
MN --> CN : objectList
deactivate MN
CN -> MN : MNread.getSystemMetadata(pid)
activate MN #D74F57
MN --> CN : sysmeta
deactivate MN
CN -> CN : CNCore.registerSystemMetadata(pid, sysmeta)
activate CN #D74F57
deactivate CN
Client -> CN : CNAuthorization.setAccessPolicy(pid, accessPolicy, serialVersion)

note right
  Success, only after CN is sync'd.
end note
@endumlrÌ
��ÖÅrÓ
��}rÔ
��(hU�h jÊ
��ubaubh†)År
��}rÒ
��(hX)���.. image:: images/sysmeta_cn_control.png
h j∆
��h&h'h(h£h*}rÚ
��(UuriX$���design/images/sysmeta_cn_control.pngrÛ
��h/]h.]h,]h-]h¶}rÙ
��U*jÛ
��sh3]uh5M_h6hh7]ubcdocutils.nodes
transition
rı
��)Årˆ
��}r˜
��(hX���------------------------r¯
��h j∆
��h&h'h(U
transitionr˘
��h*}r˙
��(h,]h-]h.]h/]h3]uh5M`h6hh7]ubjÂ
��)År˚
��}r¸
��(hX\��@startuml images/sysmeta_mn_control.png
skinparam notebordercolor #AAAAAA
skinparam notefontcolor #222222
title Proposed Set Access Policy Sequence\n\n
participant "Client" as Client <<D1Client>>
participant "MN" as MN <<MNode>>
participant "CN" as CN <<CNode>>
Client -> MN : MNStorage.create(pid, object, sysmeta)
activate MN #D74F57
MN --> Client : pid
deactivate MN
Client -> MN : MNStorage.updateSystemMetadata(pid, SystemMetadata)
note left
     SystemMetadata includes AccessPolicy
end note
activate MN #D74F57
MN --> Client :    true
note right
  Success. The client calls directly
  to the MN without delay.
end note
   deactivate MN

MN -> CN : CNCore.updateSystemMetadata(pid, sysmeta)
activate CN #D74F57
CN --> MN :    [true | false]
deactivate CN
note right
  The MN calls the CN;
  best-faith effort to keep
  it synchronized, but fine if the object
  has not been harvested.
end note

... <b>Potentially long delay due to sync schedule</b> ...
CN -> MN : MNRead.listObjects(fromDate, toDate)
activate MN #D74F57
MN --> CN : objectList
deactivate MN
CN -> MN : MNread.getSystemMetadata(pid)
activate MN #D74F57
MN --> CN : sysmeta
deactivate MN
CN -> CN : CNCore.registerSystemMetadata(pid, sysmeta)
activate CN #D74F57
deactivate CN
note left
  Now the CN finally gets the
  SystemMetadata, with most recent values
  already set on the MN
end note

@endumlh j∆
��h&h'h(jË
��h*}r˝
��(jÍ
��jÎ
��h/]h.]h,]h-]h3]uh5Mòh6hh7]r˛
��h@X\��@startuml images/sysmeta_mn_control.png
skinparam notebordercolor #AAAAAA
skinparam notefontcolor #222222
title Proposed Set Access Policy Sequence\n\n
participant "Client" as Client <<D1Client>>
participant "MN" as MN <<MNode>>
participant "CN" as CN <<CNode>>
Client -> MN : MNStorage.create(pid, object, sysmeta)
activate MN #D74F57
MN --> Client : pid
deactivate MN
Client -> MN : MNStorage.updateSystemMetadata(pid, SystemMetadata)
note left
     SystemMetadata includes AccessPolicy
end note
activate MN #D74F57
MN --> Client :    true
note right
  Success. The client calls directly
  to the MN without delay.
end note
   deactivate MN

MN -> CN : CNCore.updateSystemMetadata(pid, sysmeta)
activate CN #D74F57
CN --> MN :    [true | false]
deactivate CN
note right
  The MN calls the CN;
  best-faith effort to keep
  it synchronized, but fine if the object
  has not been harvested.
end note

... <b>Potentially long delay due to sync schedule</b> ...
CN -> MN : MNRead.listObjects(fromDate, toDate)
activate MN #D74F57
MN --> CN : objectList
deactivate MN
CN -> MN : MNread.getSystemMetadata(pid)
activate MN #D74F57
MN --> CN : sysmeta
deactivate MN
CN -> CN : CNCore.registerSystemMetadata(pid, sysmeta)
activate CN #D74F57
deactivate CN
note left
  Now the CN finally gets the
  SystemMetadata, with most recent values
  already set on the MN
end note

@endumlrˇ
��ÖÅr���}r��(hU�h j˚
��ubaubh†)År��}r��(hX)���.. image:: images/sysmeta_mn_control.png
h j∆
��h&h'h(h£h*}r��(UuriX$���design/images/sysmeta_mn_control.pngr��h/]h.]h,]h-]h¶}r��U*j��sh3]uh5Möh6hh7]ubeubh!)År��}r��(hU�h jõ
��h&h'h(h)h*}r	��(h,]h-]h.]h/]r
��U-change-architecture-to-shift-authority-to-mnsr��ah3]r��hauh5Múh6hh7]r
��(h9)År��}r��(hX0���1. Change architecture to shift authority to MNsr��h j��h&h'h(h=h*}r��(h,]h-]h.]h/]h3]uh5Múh6hh7]r��h@X0���1. Change architecture to shift authority to MNsr��ÖÅr��}r��(hj��h j��ubaubhL)År��}r��(hX˙���This document describes the management of system metadata across nodes, and has been updated to reflect control of system metadata attributes by the MN rather than the CN, except for the Replicas listed per object.
Text changes are highlighted here_.h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Mûh6hh7]r��(h@XÙ���This document describes the management of system metadata across nodes, and has been updated to reflect control of system metadata attributes by the MN rather than the CN, except for the Replicas listed per object.
Text changes are highlighted r��ÖÅr��}r��(hXÙ���This document describes the management of system metadata across nodes, and has been updated to reflect control of system metadata attributes by the MN rather than the CN, except for the Replicas listed per object.
Text changes are highlighted h j��ubjE
��)År��}r��(hX���here_Uresolvedr��Kh j��h(jM
��h*}r ��(UnameX���herer!��Urefurir"��Xß���https://redmine.dataone.org/projects/d1/repository/diff/documents/Projects/cicore/architecture/api-documentation/source/design/SystemMetadata.txt?rev=11619&rev_to=6100r#��h/]h.]h,]h-]h3]uh7]r$��h@X���herer%��ÖÅr&��}r'��(hU�h j��ubaubh@X���.ÖÅr(��}r)��(hX���.h j��ubeubj…	��)År*��}r+��(hX±���.. _here: https://redmine.dataone.org/projects/d1/repository/diff/documents/Projects/cicore/architecture/api-documentation/source/design/SystemMetadata.txt?rev=11619&rev_to=6100U
referencedr,��Kh j��h&h'h(jÃ	��h*}r-��(j"��j#��h/]r.��Uherer/��ah.]h,]h-]h3]r0��hauh5M°h6hh7]ubeubh!)År1��}r2��(hU�h jõ
��h&h'h(h)h*}r3��(h,]h-]h.]h/]r4��Uevaluate-dataone-types-schemar5��ah3]r6��hauh5M§h6hh7]r7��(h9)År8��}r9��(hX ���2. Evaluate DataONE Types Schemar:��h j1��h&h'h(h=h*}r;��(h,]h-]h.]h/]h3]uh5M§h6hh7]r<��h@X ���2. Evaluate DataONE Types Schemar=��ÖÅr>��}r?��(hj:��h j8��ubaubhL)År@��}rA��(hX1���The `Types Schema`_ could be changed in two ways:rB��h j1��h&h'h(hOh*}rC��(h,]h-]h.]h/]h3]uh5M¶h6hh7]rD��(h@X���The rE��ÖÅrF��}rG��(hX���The h j@��ubjE
��)ÅrH��}rI��(hX���`Types Schema`_j��Kh j@��h(jM
��h*}rJ��(UnameX���Types Schemaj"��XA���http://mule1.dataone.org/ArchitectureDocs-current/apis/Types.htmlrK��h/]h.]h,]h-]h3]uh7]rL��h@X���Types SchemarM��ÖÅrN��}rO��(hU�h jH��ubaubh@X��� could be changed in two ways:rP��ÖÅrQ��}rR��(hX��� could be changed in two ways:h j@��ubeubhL)ÅrS��}rT��(hX���2.1 Modify the Replica TyperU��h j1��h&h'h(hOh*}rV��(h,]h-]h.]h/]h3]uh5M®h6hh7]rW��h@X���2.1 Modify the Replica TyperX��ÖÅrY��}rZ��(hjU��h jS��ubaubhL)År[��}r\��(hX��By adding an optional `version` attribute to the Replica Type, the Coordinating Nodes would no longer need to rely on the `serialVersion` attribute of the entire system metadata document to manage versions.
A Replica example, with the version line highlighted, would be:h j1��h&h'h(hOh*}r]��(h,]h-]h.]h/]h3]uh5M™h6hh7]r^��(h@X���By adding an optional r_��ÖÅr`��}ra��(hX���By adding an optional h j[��ubj∫
��)Årb��}rc��(hX	���`version`h*}rd��(h,]h-]h.]h/]h3]uh j[��h7]re��h@X���versionrf��ÖÅrg��}rh��(hU�h jb��ubah(j¬
��ubh@X[��� attribute to the Replica Type, the Coordinating Nodes would no longer need to rely on the ri��ÖÅrj��}rk��(hX[��� attribute to the Replica Type, the Coordinating Nodes would no longer need to rely on the h j[��ubj∫
��)Årl��}rm��(hX���`serialVersion`h*}rn��(h,]h-]h.]h/]h3]uh j[��h7]ro��h@X
���serialVersionrp��ÖÅrq��}rr��(hU�h jl��ubah(j¬
��ubh@X��� attribute of the entire system metadata document to manage versions.
A Replica example, with the version line highlighted, would be:rs��ÖÅrt��}ru��(hXÖ��� attribute of the entire system metadata document to manage versions.
A Replica example, with the version line highlighted, would be:h j[��ubeubcdocutils.nodes
literal_block
rv��)Årw��}rx��(hXŒ���<replica version="1">
  <replicaMemberNode>urn:node:PISCO</replicaMemberNode>
  <replicationStatus>completed</replicationStatus>
  <replicaVerified>2012-07-10T00:00:00.000+00:00</replicaVerified>
</replica>h j1��h&h'h(U
literal_blockry��h*}rz��(Ulinenosr{��âUlanguager|��X���xmljÍ
��jÎ
��h/]h.]h,]Uhighlight_argsr}��}r~��Uhl_linesr��]rÄ��Kash-]h3]uh5M≠h6hh7]rÅ��h@XŒ���<replica version="1">
  <replicaMemberNode>urn:node:PISCO</replicaMemberNode>
  <replicationStatus>completed</replicationStatus>
  <replicaVerified>2012-07-10T00:00:00.000+00:00</replicaVerified>
</replica>rÇ��ÖÅrÉ��}rÑ��(hU�h jw��ubaubhL)ÅrÖ��}rÜ��(hX@��By making the `version` attribute optional, this approach would be backwards-compatible with existing system metadata documents in the system.
However, the Replica list in System Metadata documents on the MN may be out of sync with the list on the CN during times of rapid change such as MN-to-MN replication operations.h j1��h&h'h(hOh*}rá��(h,]h-]h.]h/]h3]uh5M∂h6hh7]rà��(h@X���By making the râ��ÖÅrä��}rã��(hX���By making the h jÖ��ubj∫
��)Årå��}rç��(hX	���`version`h*}ré��(h,]h-]h.]h/]h3]uh jÖ��h7]rè��h@X���versionrê��ÖÅrë��}rí��(hU�h jå��ubah(j¬
��ubh@X)�� attribute optional, this approach would be backwards-compatible with existing system metadata documents in the system.
However, the Replica list in System Metadata documents on the MN may be out of sync with the list on the CN during times of rapid change such as MN-to-MN replication operations.rì��ÖÅrî��}rï��(hX)�� attribute optional, this approach would be backwards-compatible with existing system metadata documents in the system.
However, the Replica list in System Metadata documents on the MN may be out of sync with the list on the CN during times of rapid change such as MN-to-MN replication operations.h jÖ��ubeubhL)Årñ��}ró��(hX���2.2 Remove the Replicarò��h j1��h&h'h(hOh*}rô��(h,]h-]h.]h/]h3]uh5Mπh6hh7]rö��h@X���2.2 Remove the Replicarõ��ÖÅrú��}rù��(hjò��h jñ��ubaubhL)Årû��}rü��(hX#��Another approach is to remove the Replica entry from the SystemMetadata Type entirely, and manage replicas separately.
This approach would be backwards-incompatible with existing system metadata documents, but once upgraded, all Replica information would be obtained through the CN services.r†��h j1��h&h'h(hOh*}r°��(h,]h-]h.]h/]h3]uh5Mªh6hh7]r¢��h@X#��Another approach is to remove the Replica entry from the SystemMetadata Type entirely, and manage replicas separately.
This approach would be backwards-incompatible with existing system metadata documents, but once upgraded, all Replica information would be obtained through the CN services.r£��ÖÅr§��}r•��(hj†��h jû��ubaubj…	��)År¶��}rß��(hU�h j1��h&h'h(jÃ	��h*}r®��(h/]h.]h,]h-]h3]jŒ	��Uindex-1r©��uh5Nh6hh7]ubj–	��)År™��}r´��(hX���Needs discussion.r¨��h j1��h&h'j‘	��}h(j’	��h*}r≠��(h,]h-]rÆ��jÿ	��ah.]h/]rØ��j©��ah3]uh5Mæh6hj⁄	��}r∞��j©��j¶��sh7]r±��(h9)År≤��}r≥��(hX���Todor¥��h*}rµ��(h,]h-]h.]h/]h3]uh j™��h7]r∂��h@X���Todor∑��ÖÅr∏��}rπ��(hU�h j≤��ubah(h=ubhL)År∫��}rª��(hj¨��h j™��h&h'h(hOh*}rº��(h,]h-]h.]h/]h3]uh5Mæh7]rΩ��h@X���Needs discussion.ræ��ÖÅrø��}r¿��(hj¨��h j∫��ubaubeubhL)År¡��}r¬��(hXh��2.3 Leave the data types as is and let the CN have control over both the replica list and the serialVersion as it currently does.
We always hope and intend that the MN and CN will have the same consistent SystemMetadata eventually. In this scenario, the CN would ignore any values the MN provided for SM.serialVersion and SM.replica and the MN would accept
those values as provided by the CN's copy of SystemMetadata. This allows much of our processing on the CN to remain as is and the different types of nodes then choose which parts of SM to manage/ignore.
BRL: I believe we decided to pursue this course for now.r√��h j1��h&h'h(hOh*}rƒ��(h,]h-]h.]h/]h3]uh5M¿h6hh7]r≈��h@Xh��2.3 Leave the data types as is and let the CN have control over both the replica list and the serialVersion as it currently does.
We always hope and intend that the MN and CN will have the same consistent SystemMetadata eventually. In this scenario, the CN would ignore any values the MN provided for SM.serialVersion and SM.replica and the MN would accept
those values as provided by the CN's copy of SystemMetadata. This allows much of our processing on the CN to remain as is and the different types of nodes then choose which parts of SM to manage/ignore.
BRL: I believe we decided to pursue this course for now.r∆��ÖÅr«��}r»��(hj√��h j¡��ubaubj…	��)År…��}r ��(hXU���.. _`Types Schema`: http://mule1.dataone.org/ArchitectureDocs-current/apis/Types.htmlj,��Kh j1��h&h'h(jÃ	��h*}rÀ��(j"��jK��h/]rÃ��Utypes-schemarÕ��ah.]h,]h-]h3]rŒ��hauh5M∆h6hh7]ubeubh!)Årœ��}r–��(hU�h jõ
��h&h'h(h)h*}r—��(h,]h-]h.]h/]r“��Uchange-dataone-apisr”��ah3]r‘��hauh5M…h6hh7]r’��(h9)År÷��}r◊��(hX���3. Change DataONE APISrÿ��h jœ��h&h'h(h=h*}rŸ��(h,]h-]h.]h/]h3]uh5M…h6hh7]r⁄��h@X���3. Change DataONE APISr€��ÖÅr‹��}r›��(hjÿ��h j÷��ubaubhL)Årfi��}rfl��(hX∞���Changes would be required for both the Member Node and Coordinating Node APIs, in both the architecture documentation and the `d1_common_java` and `d1_common_python` libraries:r‡��h jœ��h&h'h(hOh*}r·��(h,]h-]h.]h/]h3]uh5MÀh6hh7]r‚��(h@X~���Changes would be required for both the Member Node and Coordinating Node APIs, in both the architecture documentation and the r„��ÖÅr‰��}rÂ��(hX~���Changes would be required for both the Member Node and Coordinating Node APIs, in both the architecture documentation and the h jfi��ubj∫
��)ÅrÊ��}rÁ��(hX���`d1_common_java`h*}rË��(h,]h-]h.]h/]h3]uh jfi��h7]rÈ��h@X���d1_common_javarÍ��ÖÅrÎ��}rÏ��(hU�h jÊ��ubah(j¬
��ubh@X��� and rÌ��ÖÅrÓ��}rÔ��(hX��� and h jfi��ubj∫
��)År��}rÒ��(hX���`d1_common_python`h*}rÚ��(h,]h-]h.]h/]h3]uh jfi��h7]rÛ��h@X���d1_common_pythonrÙ��ÖÅrı��}rˆ��(hU�h j��ubah(j¬
��ubh@X��� libraries:r˜��ÖÅr¯��}r˘��(hX��� libraries:h jfi��ubeubhL)År˙��}r˚��(hX���3.1 MN and CN API changesr¸��h jœ��h&h'h(hOh*}r˝��(h,]h-]h.]h/]h3]uh5MÕh6hh7]r˛��h@X���3.1 MN and CN API changesrˇ��ÖÅr���}r��(hj¸��h j˙��ubaubjo��)År��}r��(hU�h jœ��h&h'h(jr��h*}r��(h,]h-]h.]h/]h3]uh5Nh6hh7]r��ju��)År��}r��(hU�h*}r��(h/]h.]h,]h-]h3]UcolsKuh j��h7]r	��(jz��)År
��}r��(hU�h*}r��(h/]h.]h,]h-]h3]UcolwidthKuh j��h7]h(j~��ubjz��)År
��}r��(hU�h*}r��(h/]h.]h,]h-]h3]UcolwidthK"uh j��h7]h(j~��ubjz��)År��}r��(hU�h*}r��(h/]h.]h,]h-]h3]UcolwidthKuh j��h7]h(j~��ubj’��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r��(jê��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r��(jï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r��hL)År��}r ��(hX
���**Action**r!��h j��h&h'h(hOh*}r"��(h,]h-]h.]h/]h3]uh5M–h7]r#��jc��)År$��}r%��(hj!��h*}r&��(h,]h-]h.]h/]h3]uh j��h7]r'��h@X���Actionr(��ÖÅr)��}r*��(hU�h j$��ubah(jk��ubaubah(j¢��ubjï��)År+��}r,��(hU�h*}r-��(h,]h-]h.]h/]h3]uh j��h7]r.��hL)År/��}r0��(hX
���**Method**r1��h j+��h&h'h(hOh*}r2��(h,]h-]h.]h/]h3]uh5M–h7]r3��jc��)År4��}r5��(hj1��h*}r6��(h,]h-]h.]h/]h3]uh j/��h7]r7��h@X���Methodr8��ÖÅr9��}r:��(hU�h j4��ubah(jk��ubaubah(j¢��ubjï��)År;��}r<��(hU�h*}r=��(h,]h-]h.]h/]h3]uh j��h7]r>��hL)År?��}r@��(hX	���**Notes**rA��h j;��h&h'h(hOh*}rB��(h,]h-]h.]h/]h3]uh5M–h7]rC��jc��)ÅrD��}rE��(hjA��h*}rF��(h,]h-]h.]h/]h3]uh j?��h7]rG��h@X���NotesrH��ÖÅrI��}rJ��(hU�h jD��ubah(jk��ubaubah(j¢��ubeh(j”��ubjê��)ÅrK��}rL��(hU�h*}rM��(h,]h-]h.]h/]h3]uh j��h7]rN��(jï��)ÅrO��}rP��(hU�h*}rQ��(h,]h-]h.]h/]h3]uh jK��h7]rR��hL)ÅrS��}rT��(hX���AddrU��h jO��h&h'h(hOh*}rV��(h,]h-]h.]h/]h3]uh5M“h7]rW��h@X���AddrX��ÖÅrY��}rZ��(hjU��h jS��ubaubah(j¢��ubjï��)År[��}r\��(hU�h*}r]��(h,]h-]h.]h/]h3]uh jK��h7]r^��hL)År_��}r`��(hX ���MNStorage.updateSystemMetadata()ra��h j[��h&h'h(hOh*}rb��(h,]h-]h.]h/]h3]uh5M“h7]rc��h@X ���MNStorage.updateSystemMetadata()rd��ÖÅre��}rf��(hja��h j_��ubaubah(j¢��ubjï��)Årg��}rh��(hU�h*}ri��(h,]h-]h.]h/]h3]uh jK��h7]rj��hL)Årk��}rl��(hX���Instead of multiple methodsrm��h jg��h&h'h(hOh*}rn��(h,]h-]h.]h/]h3]uh5M“h7]ro��h@X���Instead of multiple methodsrp��ÖÅrq��}rr��(hjm��h jk��ubaubah(j¢��ubeh(j”��ubjê��)Års��}rt��(hU�h*}ru��(h,]h-]h.]h/]h3]uh j��h7]rv��(jï��)Årw��}rx��(hU�h*}ry��(h,]h-]h.]h/]h3]uh js��h7]rz��hL)År{��}r|��(hX���Changer}��h jw��h&h'h(hOh*}r~��(h,]h-]h.]h/]h3]uh5M‘h7]r��h@X���ChangerÄ��ÖÅrÅ��}rÇ��(hj}��h j{��ubaubah(j¢��ubjï��)ÅrÉ��}rÑ��(hU�h*}rÖ��(h,]h-]h.]h/]h3]uh js��h7]rÜ��hL)Årá��}rà��(hX���MNRead.systemMetadataChanged()râ��h jÉ��h&h'h(hOh*}rä��(h,]h-]h.]h/]h3]uh5M‘h7]rã��h@X���MNRead.systemMetadataChanged()rå��ÖÅrç��}ré��(hjâ��h já��ubaubah(j¢��ubjï��)Årè��}rê��(hU�h*}rë��(h,]h-]h.]h/]h3]uh js��h7]rí��hL)Årì��}rî��(hX���Move from MNAuthorizationrï��h jè��h&h'h(hOh*}rñ��(h,]h-]h.]h/]h3]uh5M‘h7]ró��h@X���Move from MNAuthorizationrò��ÖÅrô��}rö��(hjï��h jì��ubaubah(j¢��ubeh(j”��ubjê��)Årõ��}rú��(hU�h*}rù��(h,]h-]h.]h/]h3]uh j��h7]rû��(jï��)Årü��}r†��(hU�h*}r°��(h,]h-]h.]h/]h3]uh jõ��h7]r¢��hL)År£��}r§��(hX���Rejectr•��h jü��h&h'h(hOh*}r¶��(h,]h-]h.]h/]h3]uh5M÷h7]rß��h@X���Rejectr®��ÖÅr©��}r™��(hj•��h j£��ubaubah(j¢��ubjï��)År´��}r¨��(hU�h*}r≠��(h,]h-]h.]h/]h3]uh jõ��h7]rÆ��hL)ÅrØ��}r∞��(hX!���MNAuthorization.setRightsHolder()r±��h j´��h&h'h(hOh*}r≤��(h,]h-]h.]h/]h3]uh5M÷h7]r≥��h@X!���MNAuthorization.setRightsHolder()r¥��ÖÅrµ��}r∂��(hj±��h jØ��ubaubah(j¢��ubjï��)År∑��}r∏��(hU�h*}rπ��(h,]h-]h.]h/]h3]uh jõ��h7]h(j¢��ubeh(j”��ubjê��)År∫��}rª��(hU�h*}rº��(h,]h-]h.]h/]h3]uh j��h7]rΩ��(jï��)Åræ��}rø��(hU�h*}r¿��(h,]h-]h.]h/]h3]uh j∫��h7]r¡��hL)År¬��}r√��(hX���Rejectrƒ��h jæ��h&h'h(hOh*}r≈��(h,]h-]h.]h/]h3]uh5Mÿh7]r∆��h@X���Rejectr«��ÖÅr»��}r…��(hjƒ��h j¬��ubaubah(j¢��ubjï��)År ��}rÀ��(hU�h*}rÃ��(h,]h-]h.]h/]h3]uh j∫��h7]rÕ��hL)ÅrŒ��}rœ��(hX!���MNAuthorization.setAccessPolicy()r–��h j ��h&h'h(hOh*}r—��(h,]h-]h.]h/]h3]uh5Mÿh7]r“��h@X!���MNAuthorization.setAccessPolicy()r”��ÖÅr‘��}r’��(hj–��h jŒ��ubaubah(j¢��ubjï��)År÷��}r◊��(hU�h*}rÿ��(h,]h-]h.]h/]h3]uh j∫��h7]h(j¢��ubeh(j”��ubjê��)ÅrŸ��}r⁄��(hU�h*}r€��(h,]h-]h.]h/]h3]uh j��h7]r‹��(jï��)År›��}rfi��(hU�h*}rfl��(h,]h-]h.]h/]h3]uh jŸ��h7]r‡��hL)År·��}r‚��(hX���Rejectr„��h j›��h&h'h(hOh*}r‰��(h,]h-]h.]h/]h3]uh5M⁄h7]rÂ��h@X���RejectrÊ��ÖÅrÁ��}rË��(hj„��h j·��ubaubah(j¢��ubjï��)ÅrÈ��}rÍ��(hU�h*}rÎ��(h,]h-]h.]h/]h3]uh jŸ��h7]rÏ��hL)ÅrÌ��}rÓ��(hX���CNCore.sytemMetadataChanged()rÔ��h jÈ��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5M⁄h7]rÒ��h@X���CNCore.sytemMetadataChanged()rÚ��ÖÅrÛ��}rÙ��(hjÔ��h jÌ��ubaubah(j¢��ubjï��)Årı��}rˆ��(hU�h*}r˜��(h,]h-]h.]h/]h3]uh jŸ��h7]r¯��hL)År˘��}r˙��(hX���Required to push notify CNsr˚��h jı��h&h'h(hOh*}r¸��(h,]h-]h.]h/]h3]uh5M⁄h7]r˝��h@X���Required to push notify CNsr˛��ÖÅrˇ��}r�
��(hj˚��h j˘��ubaubah(j¢��ubeh(j”��ubjê��)År
��}r
��(hU�h*}r
��(h,]h-]h.]h/]h3]uh j��h7]r
��(jï��)År
��}r
��(hU�h*}r
��(h,]h-]h.]h/]h3]uh j
��h7]r
��hL)År	
��}r

��(hX���Addr
��h j
��h&h'h(hOh*}r
��(h,]h-]h.]h/]h3]uh5M‹h7]r

��h@X���Addr
��ÖÅr
��}r
��(hj
��h j	
��ubaubah(j¢��ubjï��)År
��}r
��(hU�h*}r
��(h,]h-]h.]h/]h3]uh j
��h7]r
��hL)År
��}r
��(hX���CNCore.updateSytemMetadata()r
��h j
��h&h'h(hOh*}r
��(h,]h-]h.]h/]h3]uh5M‹h7]r
��h@X���CNCore.updateSytemMetadata()r
��ÖÅr
��}r
��(hj
��h j
��ubaubah(j¢��ubjï��)År
��}r
��(hU�h*}r
��(h,]h-]h.]h/]h3]uh j
��h7]r 
��hL)År!
��}r"
��(hX���Keeps the CN copy in syncr#
��h j
��h&h'h(hOh*}r$
��(h,]h-]h.]h/]h3]uh5M‹h7]r%
��h@X���Keeps the CN copy in syncr&
��ÖÅr'
��}r(
��(hj#
��h j!
��ubaubah(j¢��ubeh(j”��ubjê��)År)
��}r*
��(hU�h*}r+
��(h,]h-]h.]h/]h3]uh j��h7]r,
��(jï��)År-
��}r.
��(hU�h*}r/
��(h,]h-]h.]h/]h3]uh j)
��h7]r0
��hL)År1
��}r2
��(hX	���Deprecater3
��h j-
��h&h'h(hOh*}r4
��(h,]h-]h.]h/]h3]uh5Mfih7]r5
��h@X	���Deprecater6
��ÖÅr7
��}r8
��(hj3
��h j1
��ubaubah(j¢��ubjï��)År9
��}r:
��(hU�h*}r;
��(h,]h-]h.]h/]h3]uh j)
��h7]r<
��hL)År=
��}r>
��(hX���CNCore.archive()r?
��h j9
��h&h'h(hOh*}r@
��(h,]h-]h.]h/]h3]uh5Mfih7]rA
��h@X���CNCore.archive()rB
��ÖÅrC
��}rD
��(hj?
��h j=
��ubaubah(j¢��ubjï��)ÅrE
��}rF
��(hU�h*}rG
��(h,]h-]h.]h/]h3]uh j)
��h7]h(j¢��ubeh(j”��ubjê��)ÅrH
��}rI
��(hU�h*}rJ
��(h,]h-]h.]h/]h3]uh j��h7]rK
��(jï��)ÅrL
��}rM
��(hU�h*}rN
��(h,]h-]h.]h/]h3]uh jH
��h7]rO
��hL)ÅrP
��}rQ
��(hX	���DeprecaterR
��h jL
��h&h'h(hOh*}rS
��(h,]h-]h.]h/]h3]uh5M‡h7]rT
��h@X	���DeprecaterU
��ÖÅrV
��}rW
��(hjR
��h jP
��ubaubah(j¢��ubjï��)ÅrX
��}rY
��(hU�h*}rZ
��(h,]h-]h.]h/]h3]uh jH
��h7]r[
��hL)År\
��}r]
��(hX���CNCore.setObsoletedBy()r^
��h jX
��h&h'h(hOh*}r_
��(h,]h-]h.]h/]h3]uh5M‡h7]r`
��h@X���CNCore.setObsoletedBy()ra
��ÖÅrb
��}rc
��(hj^
��h j\
��ubaubah(j¢��ubjï��)Ård
��}re
��(hU�h*}rf
��(h,]h-]h.]h/]h3]uh jH
��h7]h(j¢��ubeh(j”��ubjê��)Årg
��}rh
��(hU�h*}ri
��(h,]h-]h.]h/]h3]uh j��h7]rj
��(jï��)Årk
��}rl
��(hU�h*}rm
��(h,]h-]h.]h/]h3]uh jg
��h7]rn
��hL)Åro
��}rp
��(hX	���Deprecaterq
��h jk
��h&h'h(hOh*}rr
��(h,]h-]h.]h/]h3]uh5M‚h7]rs
��h@X	���Deprecatert
��ÖÅru
��}rv
��(hjq
��h jo
��ubaubah(j¢��ubjï��)Årw
��}rx
��(hU�h*}ry
��(h,]h-]h.]h/]h3]uh jg
��h7]rz
��hL)År{
��}r|
��(hX!���CNAuthorization.setRightsHolder()r}
��h jw
��h&h'h(hOh*}r~
��(h,]h-]h.]h/]h3]uh5M‚h7]r
��h@X!���CNAuthorization.setRightsHolder()rÄ
��ÖÅrÅ
��}rÇ
��(hj}
��h j{
��ubaubah(j¢��ubjï��)ÅrÉ
��}rÑ
��(hU�h*}rÖ
��(h,]h-]h.]h/]h3]uh jg
��h7]h(j¢��ubeh(j”��ubjê��)ÅrÜ
��}rá
��(hU�h*}rà
��(h,]h-]h.]h/]h3]uh j��h7]râ
��(jï��)Årä
��}rã
��(hU�h*}rå
��(h,]h-]h.]h/]h3]uh jÜ
��h7]rç
��hL)Åré
��}rè
��(hX���Rejectrê
��h jä
��h&h'h(hOh*}rë
��(h,]h-]h.]h/]h3]uh5M‰h7]rí
��h@X���Rejectrì
��ÖÅrî
��}rï
��(hjê
��h jé
��ubaubah(j¢��ubjï��)Årñ
��}ró
��(hU�h*}rò
��(h,]h-]h.]h/]h3]uh jÜ
��h7]rô
��hL)Årö
��}rõ
��(hX!���CNReplication.getReplicaVersion()rú
��h jñ
��h&h'h(hOh*}rù
��(h,]h-]h.]h/]h3]uh5M‰h7]rû
��h@X!���CNReplication.getReplicaVersion()rü
��ÖÅr†
��}r°
��(hjú
��h jö
��ubaubah(j¢��ubjï��)År¢
��}r£
��(hU�h*}r§
��(h,]h-]h.]h/]h3]uh jÜ
��h7]h(j¢��ubeh(j”��ubjê��)År•
��}r¶
��(hU�h*}rß
��(h,]h-]h.]h/]h3]uh j��h7]r®
��(jï��)År©
��}r™
��(hU�h*}r´
��(h,]h-]h.]h/]h3]uh j•
��h7]r¨
��hL)År≠
��}rÆ
��(hX���RejectrØ
��h j©
��h&h'h(hOh*}r∞
��(h,]h-]h.]h/]h3]uh5MÊh7]r±
��h@X���Rejectr≤
��ÖÅr≥
��}r¥
��(hjØ
��h j≠
��ubaubah(j¢��ubjï��)Årµ
��}r∂
��(hU�h*}r∑
��(h,]h-]h.]h/]h3]uh j•
��h7]r∏
��hL)Årπ
��}r∫
��(hX!���CNReplication.setReplicaVersion()rª
��h jµ
��h&h'h(hOh*}rº
��(h,]h-]h.]h/]h3]uh5MÊh7]rΩ
��h@X!���CNReplication.setReplicaVersion()ræ
��ÖÅrø
��}r¿
��(hjª
��h jπ
��ubaubah(j¢��ubjï��)År¡
��}r¬
��(hU�h*}r√
��(h,]h-]h.]h/]h3]uh j•
��h7]h(j¢��ubeh(j”��ubeh(jT	��ubeh(jU	��ubaubhL)Årƒ
��}r≈
��(hXÑ���As an alternative to individual MN APIs above, we might want to consider using a single MN call to update system metadata documents:r∆
��h jœ��h&h'h(hOh*}r«
��(h,]h-]h.]h/]h3]uh5MÈh6hh7]r»
��h@XÑ���As an alternative to individual MN APIs above, we might want to consider using a single MN call to update system metadata documents:r…
��ÖÅr 
��}r��(hj∆
��h jƒ
��ubaubjo��)ÅrÃ
��}rÕ
��(hU�h jœ��h&h'h(jr��h*}rŒ
��(h,]h-]h.]h/]h3]uh5Nh6hh7]rœ
��ju��)År–
��}r—
��(hU�h*}r“
��(h/]h.]h,]h-]h3]UcolsKuh jÃ
��h7]r”
��(jz��)År‘
��}r’
��(hU�h*}r÷
��(h/]h.]h,]h-]h3]UcolwidthKuh j–
��h7]h(j~��ubjz��)År◊
��}rÿ
��(hU�h*}rŸ
��(h/]h.]h,]h-]h3]UcolwidthK"uh j–
��h7]h(j~��ubjz��)År⁄
��}r€
��(hU�h*}r‹
��(h/]h.]h,]h-]h3]UcolwidthKuh j–
��h7]h(j~��ubj’��)År›
��}rfi
��(hU�h*}rfl
��(h,]h-]h.]h/]h3]uh j–
��h7]r‡
��(jê��)År·
��}r‚
��(hU�h*}r„
��(h,]h-]h.]h/]h3]uh j›
��h7]r‰
��(jï��)ÅrÂ
��}rÊ
��(hU�h*}rÁ
��(h,]h-]h.]h/]h3]uh j·
��h7]rË
��hL)ÅrÈ
��}rÍ
��(hX
���**Action**rÎ
��h jÂ
��h&h'h(hOh*}rÏ
��(h,]h-]h.]h/]h3]uh5MÏh7]rÌ
��jc��)ÅrÓ
��}rÔ
��(hjÎ
��h*}r
��(h,]h-]h.]h/]h3]uh jÈ
��h7]rÒ
��h@X���ActionrÚ
��ÖÅrÛ
��}rÙ
��(hU�h jÓ
��ubah(jk��ubaubah(j¢��ubjï��)Årı
��}rˆ
��(hU�h*}r˜
��(h,]h-]h.]h/]h3]uh j·
��h7]r¯
��hL)År˘
��}r˙
��(hX
���**Method**r˚
��h jı
��h&h'h(hOh*}r¸
��(h,]h-]h.]h/]h3]uh5MÏh7]r˝
��jc��)År˛
��}rˇ
��(hj˚
��h*}r���(h,]h-]h.]h/]h3]uh j˘
��h7]r��h@X���Methodr��ÖÅr��}r��(hU�h j˛
��ubah(jk��ubaubah(j¢��ubjï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j·
��h7]r��hL)År	��}r
��(hX	���**Notes**r��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5MÏh7]r
��jc��)År��}r��(hj��h*}r��(h,]h-]h.]h/]h3]uh j	��h7]r��h@X���Notesr��ÖÅr��}r��(hU�h j��ubah(jk��ubaubah(j¢��ubeh(j”��ubjê��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j›
��h7]r��(jï��)År��}r��(hU�h*}r��(h,]h-]h.]h/]h3]uh j��h7]r��hL)År��}r��(hX���Addr��h j��h&h'h(hOh*}r ��(h,]h-]h.]h/]h3]uh5MÓh7]r!��h@X���Addr"��ÖÅr#��}r$��(hj��h j��ubaubah(j¢��ubjï��)År%��}r&��(hU�h*}r'��(h,]h-]h.]h/]h3]uh j��h7]r(��hL)År)��}r*��(hX���MNCore.updateSytemMetadata()r+��h j%��h&h'h(hOh*}r,��(h,]h-]h.]h/]h3]uh5MÓh7]r-��h@X���MNCore.updateSytemMetadata()r.��ÖÅr/��}r0��(hj+��h j)��ubaubah(j¢��ubjï��)År1��}r2��(hU�h*}r3��(h,]h-]h.]h/]h3]uh j��h7]r4��hL)År5��}r6��(hX���Using this method nowr7��h j1��h&h'h(hOh*}r8��(h,]h-]h.]h/]h3]uh5MÓh7]r9��h@X���Using this method nowr:��ÖÅr;��}r<��(hj7��h j5��ubaubah(j¢��ubeh(j”��ubeh(jT	��ubeh(jU	��ubaubcdocutils.nodes
note
r=��)År>��}r?��(hXD��CJ and BRL discussed this and decided the single updateSystemMetadata method would suffice and implementations could determine which mutable fields from the SystemMetadata it would update.
TBD: do we reject updates if an immutable field differs from the original value  even if we never intend to save that new value anyway?h jœ��h&h'h(Unoter@��h*}rA��(h,]h-]h.]h/]h3]uh5Nh6hh7]rB��hL)ÅrC��}rD��(hXD��CJ and BRL discussed this and decided the single updateSystemMetadata method would suffice and implementations could determine which mutable fields from the SystemMetadata it would update.
TBD: do we reject updates if an immutable field differs from the original value  even if we never intend to save that new value anyway?rE��h j>��h&h'h(hOh*}rF��(h,]h-]h.]h/]h3]uh5MÒh7]rG��h@XD��CJ and BRL discussed this and decided the single updateSystemMetadata method would suffice and implementations could determine which mutable fields from the SystemMetadata it would update.
TBD: do we reject updates if an immutable field differs from the original value  even if we never intend to save that new value anyway?rH��ÖÅrI��}rJ��(hjE��h jC��ubaubaubeubh!)ÅrK��}rL��(hU�h jõ
��h&h'h(h)h*}rM��(h,]h-]h.]h/]rN��Uchange-library-implementationsrO��ah3]rP��hauh5Mıh6hh7]rQ��(h9)ÅrR��}rS��(hX!���4. Change Library ImplementationsrT��h jK��h&h'h(h=h*}rU��(h,]h-]h.]h/]h3]uh5Mıh6hh7]rV��h@X!���4. Change Library ImplementationsrW��ÖÅrX��}rY��(hjT��h jR��ubaubhL)ÅrZ��}r[��(hXÓ���The DataONE Client Libraries (d1_libclient_java and d1_libclient_python) will need to be changed to support the above API changes in v2, as well as the existing v1 APIs.  This will help multiple MN software stacks in supporting both APIs.r\��h jK��h&h'h(hOh*}r]��(h,]h-]h.]h/]h3]uh5M˜h6hh7]r^��h@XÓ���The DataONE Client Libraries (d1_libclient_java and d1_libclient_python) will need to be changed to support the above API changes in v2, as well as the existing v1 APIs.  This will help multiple MN software stacks in supporting both APIs.r_��ÖÅr`��}ra��(hj\��h jZ��ubaubeubh!)Årb��}rc��(hU�h jõ
��h&h'h(h)h*}rd��(h,]h-]h.]h/]re��U(change-coordinating-node-implementationsrf��ah3]rg��hauh5M˙h6hh7]rh��(h9)Åri��}rj��(hX+���5. Change Coordinating Node Implementationsrk��h jb��h&h'h(h=h*}rl��(h,]h-]h.]h/]h3]uh5M˙h6hh7]rm��h@X+���5. Change Coordinating Node Implementationsrn��ÖÅro��}rp��(hjk��h ji��ubaubhL)Årq��}rr��(hX���5.1 New CN Rest Service callsrs��h jb��h&h'h(hOh*}rt��(h,]h-]h.]h/]h3]uh5M¸h6hh7]ru��h@X���5.1 New CN Rest Service callsrv��ÖÅrw��}rx��(hjs��h jq��ubaubhL)Åry��}rz��(hXñ���The CN REST Service will need to be modified to add and deprecate the methods listed above. Likewise, the CN REST Proxy will also need to be adjusted.r{��h jb��h&h'h(hOh*}r|��(h,]h-]h.]h/]h3]uh5M˛h6hh7]r}��h@Xñ���The CN REST Service will need to be modified to add and deprecate the methods listed above. Likewise, the CN REST Proxy will also need to be adjusted.r~��ÖÅr��}rÄ��(hj{��h jy��ubaubhL)ÅrÅ��}rÇ��(hX���5.2 MN to CN SynchronizationrÉ��h jb��h&h'h(hOh*}rÑ��(h,]h-]h.]h/]h3]uh5M�h6hh7]rÖ��h@X���5.2 MN to CN SynchronizationrÜ��ÖÅrá��}rà��(hjÉ��h jÅ��ubaubhL)Årâ��}rä��(hX™��With these changes, d1_synchronization classes will need to consult the node registry to determine if an MN implements v1 or v2 of the API, and act accordingly.  As the synchronization code adds in replica entries, it should notify the authoritative Member Node and all replica Member Nodes of the change using MNRead.systemMetadataChanged() calls.  It will also need to call CNReplication.setReplicaVersion() for new entries.rã��h jb��h&h'h(hOh*}rå��(h,]h-]h.]h/]h3]uh5Mh6hh7]rç��h@X™��With these changes, d1_synchronization classes will need to consult the node registry to determine if an MN implements v1 or v2 of the API, and act accordingly.  As the synchronization code adds in replica entries, it should notify the authoritative Member Node and all replica Member Nodes of the change using MNRead.systemMetadataChanged() calls.  It will also need to call CNReplication.setReplicaVersion() for new entries.ré��ÖÅrè��}rê��(hjã��h jâ��ubaubhL)Årë��}rí��(hX���5.3 MN to MN Replicationrì��h jb��h&h'h(hOh*}rî��(h,]h-]h.]h/]h3]uh5Mh6hh7]rï��h@X���5.3 MN to MN Replicationrñ��ÖÅró��}rò��(hjì��h jë��ubaubhL)Årô��}rö��(hX,��The CN ReplicationManager code will need to be adjusted to 1) Get authoritative copies of system metadata from the MN, 2) use CNReplication.getReplicaVersion() and CNReplication.setReplicaVersion() when processing replica tasks rather than setting the `serialVersion` of the system metadata document.rõ��h jb��h&h'h(hOh*}rú��(h,]h-]h.]h/]h3]uh5Mh6hh7]rù��(h@X¸���The CN ReplicationManager code will need to be adjusted to 1) Get authoritative copies of system metadata from the MN, 2) use CNReplication.getReplicaVersion() and CNReplication.setReplicaVersion() when processing replica tasks rather than setting the rû��ÖÅrü��}r†��(hX¸���The CN ReplicationManager code will need to be adjusted to 1) Get authoritative copies of system metadata from the MN, 2) use CNReplication.getReplicaVersion() and CNReplication.setReplicaVersion() when processing replica tasks rather than setting the h jô��ubj∫
��)År°��}r¢��(hX���`serialVersion`h*}r£��(h,]h-]h.]h/]h3]uh jô��h7]r§��h@X
���serialVersionr•��ÖÅr¶��}rß��(hU�h j°��ubah(j¬
��ubh@X!��� of the system metadata document.r®��ÖÅr©��}r™��(hX!��� of the system metadata document.h jô��ubeubhL)År´��}r¨��(hX#���5.4 Metacat CNodeService and schemar≠��h jb��h&h'h(hOh*}rÆ��(h,]h-]h.]h/]h3]uh5Mh6hh7]rØ��h@X#���5.4 Metacat CNodeService and schemar∞��ÖÅr±��}r≤��(hj≠��h j´��ubaubhL)År≥��}r¥��(hXñ��The MetacatCNodeService class will need to be modified to implement the above CN API calls.  Likewise, the database schema will need to change to store a new `version` column in the `smreplicationstatus` SQL table.  This will also affect other classes that manage the persistence of system metadata, namely IndetifierManager.  Upgrade classes and scripts will need to be written for existing installations.rµ��h jb��h&h'h(hOh*}r∂��(h,]h-]h.]h/]h3]uh5M
h6hh7]r∑��(h@Xû���The MetacatCNodeService class will need to be modified to implement the above CN API calls.  Likewise, the database schema will need to change to store a new r∏��ÖÅrπ��}r∫��(hXû���The MetacatCNodeService class will need to be modified to implement the above CN API calls.  Likewise, the database schema will need to change to store a new h j≥��ubj∫
��)Årª��}rº��(hX	���`version`h*}rΩ��(h,]h-]h.]h/]h3]uh j≥��h7]ræ��h@X���versionrø��ÖÅr¿��}r¡��(hU�h jª��ubah(j¬
��ubh@X��� column in the r¬��ÖÅr√��}rƒ��(hX��� column in the h j≥��ubj∫
��)År≈��}r∆��(hX���`smreplicationstatus`h*}r«��(h,]h-]h.]h/]h3]uh j≥��h7]r»��h@X���smreplicationstatusr…��ÖÅr ��}rÀ��(hU�h j≈��ubah(j¬
��ubh@XÀ��� SQL table.  This will also affect other classes that manage the persistence of system metadata, namely IndetifierManager.  Upgrade classes and scripts will need to be written for existing installations.rÃ��ÖÅrÕ��}rŒ��(hXÀ��� SQL table.  This will also affect other classes that manage the persistence of system metadata, namely IndetifierManager.  Upgrade classes and scripts will need to be written for existing installations.h j≥��ubeubeubh!)Årœ��}r–��(hU�h jõ
��h&h'h(h)h*}r—��(h,]h-]h.]h/]r“��U"change-member-node-implementationsr”��ah3]r‘��h	auh5M
h6hh7]r’��(h9)År÷��}r◊��(hX%���6. Change Member Node implementationsrÿ��h jœ��h&h'h(h=h*}rŸ��(h,]h-]h.]h/]h3]uh5M
h6hh7]r⁄��h@X%���6. Change Member Node implementationsr€��ÖÅr‹��}r›��(hjÿ��h j÷��ubaubhL)Årfi��}rfl��(hXw��Member node software stacks will need to implement the API methods listed above, and will need to ensure that other calls that affect system Metadata entries also update Coordinating Node system metadata copy.
For instance, a call to MNStorage.update() should also call CNCore.updateSystemMetadata() so that the CNs remain in sync with the MNs with regard to system metadata.r‡��h jœ��h&h'h(hOh*}r·��(h,]h-]h.]h/]h3]uh5Mh6hh7]r‚��h@Xw��Member node software stacks will need to implement the API methods listed above, and will need to ensure that other calls that affect system Metadata entries also update Coordinating Node system metadata copy.
For instance, a call to MNStorage.update() should also call CNCore.updateSystemMetadata() so that the CNs remain in sync with the MNs with regard to system metadata.r„��ÖÅr‰��}rÂ��(hj‡��h jfi��ubaubeubh!)ÅrÊ��}rÁ��(hU�h jõ
��h&h'h(h)h*}rË��(h,]h-]h.]h/]rÈ��Urelease-and-deploy-new-nodesrÍ��ah3]rÎ��hauh5Mh6hh7]rÏ��(h9)ÅrÌ��}rÓ��(hX���7. Release and Deploy New NodesrÔ��h jÊ��h&h'h(h=h*}r��(h,]h-]h.]h/]h3]uh5Mh6hh7]rÒ��h@X���7. Release and Deploy New NodesrÚ��ÖÅrÛ��}rÙ��(hjÔ��h jÌ��ubaubhL)Årı��}rˆ��(hX^���We will need to establish a release schedule and deploy software stacks, likely in this order:r˜��h jÊ��h&h'h(hOh*}r¯��(h,]h-]h.]h/]h3]uh5Mh6hh7]r˘��h@X^���We will need to establish a release schedule and deploy software stacks, likely in this order:r˙��ÖÅr˚��}r¸��(hj˜��h jı��ubaubcdocutils.nodes
enumerated_list
r˝��)År˛��}rˇ��(hU�h jÊ��h&h'h(Uenumerated_listr���h*}r��(Usuffixr��U.h/]h.]h,]Uprefixr��U�h-]h3]Uenumtyper��Uarabicr��uh5Mh6hh7]r��(cdocutils.nodes
list_item
r��)År��}r	��(hX
���d1_schemasr
��h j˛��h&h'h(U	list_itemr��h*}r��(h,]h-]h.]h/]h3]uh5Nh6hh7]r
��hL)År��}r��(hj
��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Mh7]r��h@X
���d1_schemasr��ÖÅr��}r��(hj
��h j��ubaubaubj��)År��}r��(hX	���d1_commonr��h j˛��h&h'h(j��h*}r��(h,]h-]h.]h/]h3]uh5Nh6hh7]r��hL)År��}r��(hj��h j��h&h'h(hOh*}r��(h,]h-]h.]h/]h3]uh5Mh7]r��h@X	���d1_commonr��ÖÅr��}r ��(hj��h j��ubaubaubj��)År!��}r"��(hX���d1_libclientr#��h j˛��h&h'h(j��h*}r$��(h,]h-]h.]h/]h3]uh5Nh6hh7]r%��hL)År&��}r'��(hj#��h j!��h&h'h(hOh*}r(��(h,]h-]h.]h/]h3]uh5Mh7]r)��h@X���d1_libclientr*��ÖÅr+��}r,��(hj#��h j&��ubaubaubj��)År-��}r.��(hX���CN implementationsr/��h j˛��h&h'h(j��h*}r0��(h,]h-]h.]h/]h3]uh5Nh6hh7]r1��hL)År2��}r3��(hj/��h j-��h&h'h(hOh*}r4��(h,]h-]h.]h/]h3]uh5Mh7]r5��h@X���CN implementationsr6��ÖÅr7��}r8��(hj/��h j2��ubaubaubj��)År9��}r:��(hX���MN implementations
h j˛��h&h'h(j��h*}r;��(h,]h-]h.]h/]h3]uh5Nh6hh7]r<��hL)År=��}r>��(hX���MN implementationsr?��h j9��h&h'h(hOh*}r@��(h,]h-]h.]h/]h3]uh5Mh7]rA��h@X���MN implementationsrB��ÖÅrC��}rD��(hj?��h j=��ubaubaubeubhL)ÅrE��}rF��(hXÌ���Note that we plan on introducing other changes into the DataONE types schema to accommodate mutable content and other features.  Changes to the type schema should be consolidated to reduce the impact on software that depend on the types.rG��h jÊ��h&h'h(hOh*}rH��(h,]h-]h.]h/]h3]uh5Mh6hh7]rI��h@XÌ���Note that we plan on introducing other changes into the DataONE types schema to accommodate mutable content and other features.  Changes to the type schema should be consolidated to reduce the impact on software that depend on the types.rJ��ÖÅrK��}rL��(hjG��h jE��ubaubeubeubeubh&h'h(h)h*}rM��(h,]h-]h.]h/]rN��Uexample-documentrO��ah3]rP��hauh5M#h6hh7]rQ��(h9)ÅrR��}rS��(hX���Example DocumentrT��h h"h&h'h(h=h*}rU��(h,]h-]h.]h/]h3]uh5M#h6hh7]rV��h@X���Example DocumentrW��ÖÅrX��}rY��(hjT��h jR��ubaubhL)ÅrZ��}r[��(hX“���The example instance document included here was auto-generated so does not
include useful values. It is included here to provide a general indication as
to the structure of a populated system metadata document.r\��h h"h&h'h(hOh*}r]��(h,]h-]h.]h/]h3]uh5M%h6hh7]r^��h@X“���The example instance document included here was auto-generated so does not
include useful values. It is included here to provide a general indication as
to the structure of a populated system metadata document.r_��ÖÅr`��}ra��(hj\��h jZ��ubaubeubh&h'h(Usystem_messagerb��h*}rc��(h,]UlevelKh/]h.]Usourceh'h-]h3]UlineM)UtypeUWARNINGrd��uh5Nh6hh7]re��hL)Årf��}rg��(hXû���Include file u'/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/d1_schemas/instance-eg-v11.xml' not found or reading it failedh*}rh��(h,]h-]h.]h/]h3]uh hh7]ri��h@Xû���Include file u'/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/d1_schemas/instance-eg-v11.xml' not found or reading it failedrj��ÖÅrk��}rl��(hU�h jf��ubah(hOubaubh)Årm��}rn��(hU�h*}ro��(h,]UlevelKh/]h.]Usourceh'h-]h3]UlineM§Utypejd��uh7]rp��(hL)Årq��}rr��(hU�h*}rs��(h,]h-]h.]h/]h3]uh jm��h7]rt��h@X���Title underline too short.ru��ÖÅrv��}rw��(hU�h jq��ubah(hOubjv��)Årx��}ry��(hX?���2. Evaluate DataONE Types Schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h*}rz��(jÍ
��jÎ
��h/]h.]h,]h-]h3]uh jm��h7]r{��h@X?���2. Evaluate DataONE Types Schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~r|��ÖÅr}��}r~��(hU�h jx��ubah(jy��ubeh(jb��ubh)År��}rÄ��(hU�h j1��h&h'h(jb��h*}rÅ��(h,]UlevelKh/]h.]Usourceh'h-]h3]UlineM§Utypejd��uh5M§h6hh7]rÇ��(hL)ÅrÉ��}rÑ��(hX���Title underline too short.h*}rÖ��(h,]h-]h.]h/]h3]uh j��h7]rÜ��h@X���Title underline too short.rá��ÖÅrà��}râ��(hU�h jÉ��ubah(hOubjv��)Årä��}rã��(hX?���2. Evaluate DataONE Types Schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h*}rå��(jÍ
��jÎ
��h/]h.]h,]h-]h3]uh j��h7]r�h@X?���2. Evaluate DataONE Types Schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ré��ÖÅrè��}rê��(hU�h jä��ubah(jy��ubeubeUcurrent_sourcerë��NU
decorationrí��NUautofootnote_startrì��KUnameidsrî��}rï��(hjZ	��hjæ	��hh2h	j”��h
jü
��hjO��hjD��h
j	��hj/��hjñ	��hj5��hj 
��hjf��hjÍ��hj��hjÕ��hjO��hj”��uh7]rñ��h$ahU�Utransformerró��NU
footnote_refsrò��}rô��Urefnamesrö��}rõ��(X���types schema]rú��jH��aj!��]rù��j��auUsymbol_footnotesrû��]rü��Uautofootnote_refsr†��]r°��Usymbol_footnote_refsr¢��]r£��U	citationsr§��]r•��h6hUcurrent_liner¶��NUtransform_messagesrß��]r®��(h)År©��}r™��(hU�h*}r´��(h,]UlevelKh/]h.]Usourceh'h-]h3]UtypeUINFOr¨��uh7]r≠��hL)ÅrÆ��}rØ��(hU�h*}r∞��(h,]h-]h.]h/]h3]uh j©��h7]r±��h@X-���Hyperlink target "index-0" is not referenced.r≤��ÖÅr≥��}r¥��(hU�h jÆ��ubah(hOubah(jb��ubh)Årµ��}r∂��(hU�h*}r∑��(h,]UlevelKh/]h.]Usourceh'h-]h3]Utypej¨��uh7]r∏��hL)Årπ��}r∫��(hU�h*}rª��(h,]h-]h.]h/]h3]uh jµ��h7]rº��h@X-���Hyperlink target "index-1" is not referenced.rΩ��ÖÅræ��}rø��(hU�h jπ��ubah(hOubah(jb��ubeUreporterr¿��NUid_startr¡��KU
autofootnotesr¬��]r√��U
citation_refsrƒ��}r≈��Uindirect_targetsr∆��]r«��Usettingsr»��(cdocutils.frontend
Values
r…��or ��}rÀ��(Ufootnote_backlinksrÃ��KUrecord_dependenciesrÕ��NUrfc_base_urlrŒ��Uhttps://tools.ietf.org/html/rœ��U	tracebackr–��àUpep_referencesr—��NUstrip_commentsr“��NU
toc_backlinksr”��j¢��U
language_coder‘��Uenr’��U	datestampr÷��NUreport_levelr◊��KU_destinationrÿ��NU
halt_levelrŸ��KU
strip_classesr⁄��Nh=NUerror_encoding_error_handlerr€��Ubackslashreplacer‹��Udebugr›��NUembed_stylesheetrfi��âUoutput_encoding_error_handlerrfl��Ustrictr‡��U
sectnum_xformr·��KUdump_transformsr‚��NU
docinfo_xformr„��KUwarning_streamr‰��NUpep_file_url_templaterÂ��Upep-%04drÊ��Uexit_status_levelrÁ��KUconfigrË��NUstrict_visitorrÈ��NUcloak_email_addressesrÍ��àUtrim_footnote_reference_spacerÎ��âUenvrÏ��NUdump_pseudo_xmlrÌ��NUexpose_internalsrÓ��NUsectsubtitle_xformrÔ��âUsource_linkr��NUrfc_referencesrÒ��NUoutput_encodingrÚ��Uutf-8rÛ��U
source_urlrÙ��NUinput_encodingrı��U	utf-8-sigrˆ��U_disable_configr˜��NU	id_prefixr¯��U�U	tab_widthr˘��KUerror_encodingr˙��UUTF-8r˚��U_sourcer¸��h'Ugettext_compactr˝��àU	generatorr˛��NUdump_internalsrˇ��NUsmart_quotesr���âUpep_base_urlr��U https://www.python.org/dev/peps/r��Usyntax_highlightr��Ulongr��Uinput_encoding_error_handlerr��j‡��Uauto_id_prefixr��Uidr��Udoctitle_xformr��âUstrip_elements_with_classesr	��NU
_config_filesr
��]Ufile_insertion_enabledr��àUraw_enabledr��KU
dump_settingsr
��NubUsymbol_footnote_startr��K�Uidsr��}r��(j	��jÏ	��h1j…	��)År��}r��(hU�h h$h&h'h(jÃ	��h*}r��(h,]h/]r��h1ah.]Uismodàh-]h3]uh5Kh6hh7]ubjf��jb��j”��jœ��j��j��hûhôjO��h"jœ	��j—	��h2h$j©��j™��jæ	��j∫	��jÕ��j…��jO��jK��j/��j*��j”��jœ��j 
��j∆
��jü
��jõ
��jZ	��jV	��j5��j1��j��j��jÍ��jÊ��jD��j@��jñ	��jí	��uUsubstitution_namesr��}r��h(h6h*}r��(h,]h/]h.]Usourceh'h-]h3]uU	footnotesr��]r��Urefidsr��}r��(jœ	��]r��j 	��aj©��]r��j¶��auub.