€cdocutils.nodes document q)q}q(U nametypesq}q(Xchanging system metadata valuesqNX'updating system metadata in version 1.xqNXsystem metadataqNX%6. change member node implementationsq NXCroadmap to system metadata control changes (draft - to be reviewed)q NX!4. change library implementationsq NXmutability of system metadataq NXsystem metadata schemaq NXhereqˆX'updating system metadata in version 2.xqNX 2. evaluate dataone types schemaqNX rationaleqNX+5. change coordinating node implementationsqNX7. release and deploy new nodesqNX01. change architecture to shift authority to mnsqNX types schemaqˆXexample documentqNX3. change dataone apisqNuUsubstitution_defsq}qUparse_messagesq]q(cdocutils.nodes system_message q)q}q(U rawsourceqUUparentq cdocutils.nodes section q!)q"}q#(hUh h!)q$}q%(hUh 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(Xmodule-SystemMetadataq1Usystem-metadataq2eUnamesq3]q4hauUlineq5KUdocumentq6hUchildrenq7]q8(cdocutils.nodes title q9)q:}q;(hXSystem Metadataq(h,]h-]h.]h/]h3]uh5Kh6hh7]q?cdocutils.nodes Text q@XSystem MetadataqA…qB}qC(hh}r?(hXA call since that is the authoritative source for the information.h jubeubeubh!)r@}rA(hUh h$h&h'h(h)h*}rB(h,]h-]h.]h/]rCUmutability-of-system-metadatarDah3]rEh auh5K0h6hh7]rF(h9)rG}rH(hXMutability of System MetadatarIh j@h&h'h(h=h*}rJ(h,]h-]h.]h/]h3]uh5K0h6hh7]rKh@XMutability of System MetadatarL…rM}rN(hjIh jGubaubhL)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.rQh j@h&h'h(hOh*}rR(h,]h-]h.]h/]h3]uh5K2h6hh7]rSh@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(hjQh jOubaubhL)rW}rX(hXCThe mutability of system metadata elements is described in Table 1.rYh j@h&h'h(hOh*}rZ(h,]h-]h.]h/]h3]uh5K6h6hh7]r[h@XCThe mutability of system metadata elements is described in Table 1.r\…r]}r^(hjYh jWubaubhL)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]rgh@XTable 1.rh…ri}rj(hUh jdubah(Ustrongrkubh@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(hUh j@h&Nh(Utablerrh*}rs(h,]h-]h.]h/]h3]uh5Nh6hh7]rtcdocutils.nodes tgroup ru)rv}rw(hUh*}rx(h/]h.]h,]h-]h3]UcolsKuh jph7]ry(cdocutils.nodes colspec rz)r{}r|(hUh*}r}(h/]h.]h,]h-]h3]UcolwidthKuh jvh7]h(Ucolspecr~ubjz)r}r€(hUh*}r(h/]h.]h,]h-]h3]UcolwidthKuh jvh7]h(j~ubjz)r‚}rƒ(hUh*}r„(h/]h.]h,]h-]h3]UcolwidthKuh jvh7]h(j~ubjz)r…}r†(hUh*}r‡(h/]h.]h,]h-]h3]UcolwidthKuh jvh7]h(j~ubjz)rˆ}r‰(hUh*}rŠ(h/]h.]h,]h-]h3]UcolwidthKuh jvh7]h(j~ubcdocutils.nodes thead r‹)rŒ}r(hUh*}rŽ(h,]h-]h.]h/]h3]uh jvh7]rcdocutils.nodes row r)r‘}r’(hUh*}r“(h,]h-]h.]h/]h3]uh jŒh7]r”(cdocutils.nodes entry r•)r–}r—(hUh*}r˜(h,]h-]h.]h/]h3]uh j‘h7]r™hL)rš}r›(hXPropertyrœh j–h&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5KAh7]ržh@XPropertyrŸ…r }r¡(hjœh jšubaubah(Uentryr¢ubj•)r£}r¤(hUh*}r¥(h,]h-]h.]h/]h3]uh j‘h7]r¦hL)r§}r¨(hXMutable?r©h j£h&h'h(hOh*}rª(h,]h-]h.]h/]h3]uh5KBh7]r«h@XMutable?r¬…r­}r®(hj©h j§ubaubah(j¢ubj•)r¯}r°(hUh*}r±(h,]h-]h.]h/]h3]uh j‘h7]r²hL)r³}r´(hXInitialized Byrµh j¯h&h'h(hOh*}r¶(h,]h-]h.]h/]h3]uh5KCh7]r·h@XInitialized Byr¸…r¹}rº(hjµh j³ubaubah(j¢ubj•)r»}r¼(hUh*}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È(hUh*}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×(hUh*}rØ(h,]h-]h.]h/]h3]uh jvh7]rÙ(j)rÚ}rÛ(hUh*}rÜ(h,]h-]h.]h/]h3]uh jÖh7]rÝ(j•)rÞ}rß(hUh*}rà(h,]h-]h.]h/]h3]uh jÚh7]ráhL)râ}rã(hX(:attr:`~Types.SystemMetadata.identifier`räh jÞh&h'h(hOh*}rå(h,]h-]h.]h/]h3]uh5KGh7]ræhU)rç}rè(hjäh jâh&h'h(hYh*}ré(UreftypeXattrh[‰h\XTypes.SystemMetadata.identifierU refdomainXpyrêh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KGh7]rëhy)rì}rí(hjäh*}rî(h,]h-]rï(hfjêXpy-attrrðeh.]h/]h3]uh jçh7]rñh@X identifierrò…ró}rô(hUh jìubah(hƒubaubaubah(j¢ubj•)rõ}rö(hUh*}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(hUh*}r(h,]h-]h.]h/]h3]uh jÚh7]rhL)r}r(hX Client + MNrh jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5KIh7]r h@X Client + MNr …r }r (hjh jubaubah(j¢ubj•)r }r(hUh*}r(h,]h-]h.]h/]h3]uh jÚh7]rhL)r}r(hXMN + CNrh j h&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5KJh7]rh@XMN + CNr…r}r(hjh jubaubah(j¢ubj•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jÚh7]rhL)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.rh jh&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$(hjh jubaubah(j¢ubeh(jÓubj)r%}r&(hUh*}r'(h,]h-]h.]h/]h3]uh jÖh7]r((j•)r)}r*(hUh*}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]r1hU)r2}r3(hj/h j-h&h'h(hYh*}r4(UreftypeXattrh[‰h\XTypes.SystemMetadata.sizeU refdomainXpyr5h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KOh7]r6hy)r7}r8(hj/h*}r9(h,]h-]r:(hfj5Xpy-attrr;eh.]h/]h3]uh j2h7]r<h@Xsizer=…r>}r?(hUh j7ubah(hƒubaubaubah(j¢ubj•)r@}rA(hUh*}rB(h,]h-]h.]h/]h3]uh j%h7]rChL)rD}rE(hX ImmutablerFh j@h&h'h(hOh*}rG(h,]h-]h.]h/]h3]uh5KPh7]rHh@X ImmutablerI…rJ}rK(hjFh jDubaubah(j¢ubj•)rL}rM(hUh*}rN(h,]h-]h.]h/]h3]uh j%h7]rOhL)rP}rQ(hXClientrRh jLh&h'h(hOh*}rS(h,]h-]h.]h/]h3]uh5KQh7]rTh@XClientrU…rV}rW(hjRh jPubaubah(j¢ubj•)rX}rY(hUh*}rZ(h,]h-]h.]h/]h3]uh j%h7]r[hL)r\}r](hXMNr^h jXh&h'h(hOh*}r_(h,]h-]h.]h/]h3]uh5KRh7]r`h@XMNra…rb}rc(hj^h j\ubaubah(j¢ubj•)rd}re(hUh*}rf(h,]h-]h.]h/]h3]uh j%h7]rghL)rh}ri(hX>The object size is set during creation and can not be changed.rjh jdh&h'h(hOh*}rk(h,]h-]h.]h/]h3]uh5KSh7]rlh@X>The object size is set during creation and can not be changed.rm…rn}ro(hjjh jhubaubah(j¢ubeh(jÓubj)rp}rq(hUh*}rr(h,]h-]h.]h/]h3]uh jÖh7]rs(j•)rt}ru(hUh*}rv(h,]h-]h.]h/]h3]uh jph7]rwhL)rx}ry(hX&:attr:`~Types.SystemMetadata.checksum`rzh jth&h'h(hOh*}r{(h,]h-]h.]h/]h3]uh5KUh7]r|hU)r}}r~(hjzh jxh&h'h(hYh*}r(UreftypeXattrh[‰h\XTypes.SystemMetadata.checksumU refdomainXpyr€h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KUh7]rhy)r‚}rƒ(hjzh*}r„(h,]h-]r…(hfj€Xpy-attrr†eh.]h/]h3]uh j}h7]r‡h@Xchecksumrˆ…r‰}rŠ(hUh j‚ubah(hƒubaubaubah(j¢ubj•)r‹}rŒ(hUh*}r(h,]h-]h.]h/]h3]uh jph7]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 jubaubah(j¢ubj•)r—}r˜(hUh*}r™(h,]h-]h.]h/]h3]uh jph7]ršhL)r›}rœ(hXClientrh j—h&h'h(hOh*}rž(h,]h-]h.]h/]h3]uh5KWh7]rŸh@XClientr …r¡}r¢(hjh j›ubaubah(j¢ubj•)r£}r¤(hUh*}r¥(h,]h-]h.]h/]h3]uh jph7]r¦hL)r§}r¨(hXMNr©h j£h&h'h(hOh*}rª(h,]h-]h.]h/]h3]uh5KXh7]r«h@XMNr¬…r­}r®(hj©h j§ubaubah(j¢ubj•)r¯}r°(hUh*}r±(h,]h-]h.]h/]h3]uh jph7]r²hL)r³}r´(hXIThe 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@XIThe object checksum is determined during creation and can not be changed.r¸…r¹}rº(hjµh j³ubaubah(j¢ubeh(jÓubj)r»}r¼(hUh*}r½(h,]h-]h.]h/]h3]uh jÖh7]r¾(j•)r¿}rÀ(hUh*}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Ê(UreftypeXattrh[‰h\XTypes.SystemMetadata.submitterU refdomainXpyrËh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K[h7]rÌhy)rÍ}rÎ(hjÅh*}rÏ(h,]h-]rÐ(hfjËXpy-attrrÑeh.]h/]h3]uh jÈh7]rÒh@X submitterrÓ…rÔ}rÕ(hUh jÍubah(hƒubaubaubah(j¢ubj•)rÖ}r×(hUh*}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]rÞh@X Immutablerß…rà}rá(hjÜh jÚubaubah(j¢ubj•)râ}rã(hUh*}rä(h,]h-]h.]h/]h3]uh j»h7]råhL)ræ}rç(hXMNrèh jâh&h'h(hOh*}ré(h,]h-]h.]h/]h3]uh5K]h7]rêh@XMNrë…rì}rí(hjèh jæubaubah(j¢ubj•)rî}rï(hUh*}rð(h,]h-]h.]h/]h3]uh j»h7]rñhL)rò}ró(hXMNrôh jîh&h'h(hOh*}rõ(h,]h-]h.]h/]h3]uh5K^h7]röh@XMNr÷…rø}rù(hjôh jòubaubah(j¢ubj•)rú}rû(hUh*}rü(h,]h-]h.]h/]h3]uh j»h7]rýhL)rþ}rÿ(hXCThe object submitter is set during creation and can not be changed.rh júh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5K_h7]rh@XCThe object submitter is set during creation and can not be changed.r…r}r(hjh jþubaubah(j¢ubeh(jÓubj)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jÖh7]r (j•)r }r (hUh*}r (h,]h-]h.]h/]h3]uh jh7]r hL)r}r(hX*:attr:`~Types.SystemMetadata.dateUploaded`rh j h&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5Kah7]rhU)r}r(hjh jh&h'h(hYh*}r(UreftypeXattrh[‰h\X!Types.SystemMetadata.dateUploadedU refdomainXpyrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kah7]rhy)r}r(hjh*}r(h,]h-]r(hfjXpy-attrreh.]h/]h3]uh jh7]rh@X dateUploadedr…r}r (hUh jubah(hƒubaubaubah(j¢ubj•)r!}r"(hUh*}r#(h,]h-]h.]h/]h3]uh jh7]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.(hUh*}r/(h,]h-]h.]h/]h3]uh jh7]r0hL)r1}r2(hXMNr3h j-h&h'h(hOh*}r4(h,]h-]h.]h/]h3]uh5Kch7]r5h@XMNr6…r7}r8(hj3h j1ubaubah(j¢ubj•)r9}r:(hUh*}r;(h,]h-]h.]h/]h3]uh jh7]r<hL)r=}r>(hXMNr?h j9h&h'h(hOh*}r@(h,]h-]h.]h/]h3]uh5Kdh7]rAh@XMNrB…rC}rD(hj?h j=ubaubah(j¢ubj•)rE}rF(hUh*}rG(h,]h-]h.]h/]h3]uh jh7]rHhL)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).rKh jEh&h'h(hOh*}rL(h,]h-]h.]h/]h3]uh5Keh7]rMh@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(hjKh jIubaubah(j¢ubeh(jÓubj)rQ}rR(hUh*}rS(h,]h-]h.]h/]h3]uh jÖh7]rT(j•)rU}rV(hUh*}rW(h,]h-]h.]h/]h3]uh jQh7]rXhL)rY}rZ(hX.:attr:`~Types.SystemMetadata.originMemberNode`r[h jUh&h'h(hOh*}r\(h,]h-]h.]h/]h3]uh5Kih7]r]hU)r^}r_(hj[h jYh&h'h(hYh*}r`(UreftypeXattrh[‰h\X%Types.SystemMetadata.originMemberNodeU refdomainXpyrah/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kih7]rbhy)rc}rd(hj[h*}re(h,]h-]rf(hfjaXpy-attrrgeh.]h/]h3]uh j^h7]rhh@XoriginMemberNoderi…rj}rk(hUh jcubah(hƒubaubaubah(j¢ubj•)rl}rm(hUh*}rn(h,]h-]h.]h/]h3]uh jQh7]rohL)rp}rq(hX Immutablerrh jlh&h'h(hOh*}rs(h,]h-]h.]h/]h3]uh5Kjh7]rth@X Immutableru…rv}rw(hjrh jpubaubah(j¢ubj•)rx}ry(hUh*}rz(h,]h-]h.]h/]h3]uh jQh7]r{hL)r|}r}(hXMNr~h jxh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5Kkh7]r€h@XMNr…r‚}rƒ(hj~h j|ubaubah(j¢ubj•)r„}r…(hUh*}r†(h,]h-]h.]h/]h3]uh jQh7]r‡hL)rˆ}r‰(hXMNrŠh j„h&h'h(hOh*}r‹(h,]h-]h.]h/]h3]uh5Klh7]rŒh@XMNr…rŽ}r(hjŠh jˆubaubah(j¢ubj•)r}r‘(hUh*}r’(h,]h-]h.]h/]h3]uh jQh7]r“hL)r”}r•(hX+Value is set once by the origin Member Noder–h jh&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(hUh*}rž(h,]h-]h.]h/]h3]uh jÖh7]rŸ(j•)r }r¡(hUh*}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¬(UreftypeXattrh[‰h\X"v2_0.Types.SystemMetadata.seriesIdU refdomainXpyr­h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Koh7]r®hy)r¯}r°(hj«h*}r±(h,]h-]r²(hfj­Xpy-attrr³eh.]h/]h3]uh j©h7]r´h@XseriesIdrµ…r¶}r·(hUh j¯ubah(hƒubaubh@X (v2)r¸…r¹}rº(hX (v2)h j¤ubeubah(j¢ubj•)r»}r¼(hUh*}r½(h,]h-]h.]h/]h3]uh jœh7]r¾hL)r¿}rÀ(hXSet OncerÁh j»h&h'h(hOh*}rÂ(h,]h-]h.]h/]h3]uh5Kph7]rÃh@XSet OncerÄ…rÅ}rÆ(hjÁh j¿ubaubah(j¢ubj•)rÇ}rÈ(hUh*}rÉ(h,]h-]h.]h/]h3]uh jœh7]rÊhL)rË}rÌ(hXClientrÍh jÇh&h'h(hOh*}rÎ(h,]h-]h.]h/]h3]uh5Kqh7]rÏh@XClientrÐ…rÑ}rÒ(hjÍh jËubaubah(j¢ubj•)rÓ}rÔ(hUh*}rÕ(h,]h-]h.]h/]h3]uh jœh7]rÖhL)r×}rØ(hXMN + CNrÙh jÓh&h'h(hOh*}rÚ(h,]h-]h.]h/]h3]uh5Krh7]rÛh@XMN + CNrÜ…rÝ}rÞ(hjÙh j×ubaubah(j¢ubj•)rß}rà(hUh*}rá(h,]h-]h.]h/]h3]uh jœh7]râhL)rã}rä(hXwThe seriesId can be set if it has no value, but can not be changed once set. Use :func:`MNStorage.updateSystemMetadata`h jßh&h'h(hOh*}rå(h,]h-]h.]h/]h3]uh5Ksh7]ræ(h@XQThe seriesId can be set if it has no value, but can not be changed once set. Use rç…rè}ré(hXQThe 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í(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyrîh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Ksh7]rïhy)rð}rñ(hjìh*}rò(h,]h-]ró(hfjîXpy-funcrôeh.]h/]h3]uh jêh7]rõh@X MNStorage.updateSystemMetadata()rö…r÷}rø(hUh jðubah(hƒubaubeubah(j¢ubeh(jÓubj)rù}rú(hUh*}rû(h,]h-]h.]h/]h3]uh jÖh7]rü(j•)rý}rþ(hUh*}rÿ(h,]h-]h.]h/]h3]uh jùh7]rhL)r}r(hX':attr:`~Types.SystemMetadata.obsoletes`rh jýh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5Kvh7]rhU)r}r(hjh jh&h'h(hYh*}r(UreftypeXattrh[‰h\XTypes.SystemMetadata.obsoletesU refdomainXpyr h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kvh7]r hy)r }r (hjh*}r (h,]h-]r(hfj Xpy-attrreh.]h/]h3]uh jh7]rh@X obsoletesr…r}r(hUh j ubah(hƒubaubaubah(j¢ubj•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jùh7]rhL)r}r(hXSet Oncerh jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5Kwh7]rh@XSet Oncer…r}r(hjh jubaubah(j¢ubj•)r }r!(hUh*}r"(h,]h-]h.]h/]h3]uh jùh7]r#hL)r$}r%(hXClientr&h j h&h'h(hOh*}r'(h,]h-]h.]h/]h3]uh5Kxh7]r(h@XClientr)…r*}r+(hj&h j$ubaubah(j¢ubj•)r,}r-(hUh*}r.(h,]h-]h.]h/]h3]uh jùh7]r/hL)r0}r1(hXMNr2h j,h&h'h(hOh*}r3(h,]h-]h.]h/]h3]uh5Kyh7]r4h@XMNr5…r6}r7(hj2h j0ubaubah(j¢ubj•)r8}r9(hUh*}r:(h,]h-]h.]h/]h3]uh jùh7]r;(hL)r<}r=(hX v1, v2: :func:`MNStorage.update`h j8h&h'h(hOh*}r>(h,]h-]h.]h/]h3]uh5Kzh7]r?(h@Xv1, v2: r@…rA}rB(hXv1, v2: h j<ubhU)rC}rD(hX:func:`MNStorage.update`rEh j<h&h'h(hYh*}rF(UreftypeXfunch[‰h\XMNStorage.updateU refdomainXpyrGh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kzh7]rHhy)rI}rJ(hjEh*}rK(h,]h-]rL(hfjGXpy-funcrMeh.]h/]h3]uh jCh7]rNh@XMNStorage.update()rO…rP}rQ(hUh jIubah(hƒubaubeubhL)rR}rS(hX*v2: :func:`MNStorage.updateSystemMetadata`h j8h&h'h(hOh*}rT(h,]h-]h.]h/]h3]uh5K|h7]rU(h@Xv2: rV…rW}rX(hXv2: h jRubhU)rY}rZ(hX&:func:`MNStorage.updateSystemMetadata`r[h jRh&h'h(hYh*}r\(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyr]h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K|h7]r^hy)r_}r`(hj[h*}ra(h,]h-]rb(hfj]Xpy-funcrceh.]h/]h3]uh jYh7]rdh@X MNStorage.updateSystemMetadata()re…rf}rg(hUh 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 j8h&h'h(hOh*}rj(h,]h-]h.]h/]h3]uh5K~h7]rk(h@XThe rl…rm}rn(hXThe h jhubhy)ro}rp(hX ``obsoletes``h*}rq(h,]h-]h.]h/]h3]uh jhh7]rrh@X obsoletesrs…rt}ru(hUh joubah(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 jhubeubeh(j¢ubeh(jÓubj)ry}rz(hUh*}r{(h,]h-]h.]h/]h3]uh jÖh7]r|(j•)r}}r~(hUh*}r(h,]h-]h.]h/]h3]uh jyh7]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 jh&h'h(hYh*}rˆ(UreftypeXattrh[‰h\X Types.SystemMetadata.obsoletedByU refdomainXpyr‰h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kƒh7]rŠhy)r‹}rŒ(hjƒh*}r(h,]h-]rŽ(hfj‰Xpy-attrreh.]h/]h3]uh j†h7]rh@X obsoletedByr‘…r’}r“(hUh j‹ubah(hƒubaubaubah(j¢ubj•)r”}r•(hUh*}r–(h,]h-]h.]h/]h3]uh jyh7]r—hL)r˜}r™(hXSet Onceršh j”h&h'h(hOh*}r›(h,]h-]h.]h/]h3]uh5K„h7]rœh@XSet Oncer…rž}rŸ(hjšh j˜ubaubah(j¢ubj•)r }r¡(hUh*}r¢(h,]h-]h.]h/]h3]uh jyh7]r£hL)r¤}r¥(hXClientr¦h j h&h'h(hOh*}r§(h,]h-]h.]h/]h3]uh5K…h7]r¨h@XClientr©…rª}r«(hj¦h j¤ubaubah(j¢ubj•)r¬}r­(hUh*}r®(h,]h-]h.]h/]h3]uh jyh7]r¯hL)r°}r±(hXClientr²h j¬h&h'h(hOh*}r³(h,]h-]h.]h/]h3]uh5K†h7]r´h@XClientrµ…r¶}r·(hj²h j°ubaubah(j¢ubj•)r¸}r¹(hUh*}rº(h,]h-]h.]h/]h3]uh jyh7]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@Xv1, v2: rÀ…rÁ}rÂ(hXv1, v2: h j¼ubhU)rÃ}rÄ(hX:func:`MNStorage.update`rÅh j¼h&h'h(hYh*}rÆ(UreftypeXfunch[‰h\XMNStorage.updateU refdomainXpyrÇh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K‡h7]rÈhy)rÉ}rÊ(hjÅh*}rË(h,]h-]rÌ(hfjÇXpy-funcrÍeh.]h/]h3]uh jÃh7]rÎh@XMNStorage.update()rÏ…rÐ}rÑ(hUh 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@Xv1: rÖ…r×}rØ(hXv1: h jÒubhU)rÙ}rÚ(hX:func:`CNCore.setObsoletedBy`rÛh jÒh&h'h(hYh*}rÜ(UreftypeXfunch[‰h\XCNCore.setObsoletedByU refdomainXpyrÝh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K‰h7]rÞhy)rß}rà(hjÛh*}rá(h,]h-]râ(hfjÝXpy-funcrãeh.]h/]h3]uh jÙh7]räh@XCNCore.setObsoletedBy()rå…ræ}rç(hUh jß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@Xv2: rì…rí}rî(hXv2: h jèubhU)rï}rð(hX&:func:`MNStorage.updateSystemMetadata`rñh jèh&h'h(hYh*}rò(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyróh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K‹h7]rôhy)rõ}rö(hjñh*}r÷(h,]h-]rø(hfjóXpy-funcrùeh.]h/]h3]uh jïh7]rúh@X MNStorage.updateSystemMetadata()rû…rü}rý(hUh 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]uh5Kh7]r(h@XThe r…r}r(hXThe h jþubhy)r}r(hX``obsoletedBy``h*}r(h,]h-]h.]h/]h3]uh jþh7]rh@X obsoletedByr …r }r (hUh jubah(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(hUh*}r(h,]h-]h.]h/]h3]uh jÖh7]r(j•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jh7]rhL)r}r(hX&:attr:`~Types.SystemMetadata.archived`rh jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5K’h7]rhU)r}r(hjh jh&h'h(hYh*}r(UreftypeXattrh[‰h\XTypes.SystemMetadata.archivedU refdomainXpyrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K’h7]r hy)r!}r"(hjh*}r#(h,]h-]r$(hfjXpy-attrr%eh.]h/]h3]uh jh7]r&h@Xarchivedr'…r(}r)(hUh j!ubah(hƒubaubaubah(j¢ubj•)r*}r+(hUh*}r,(h,]h-]h.]h/]h3]uh jh7]r-hL)r.}r/(hXSet Oncer0h j*h&h'h(hOh*}r1(h,]h-]h.]h/]h3]uh5K“h7]r2h@XSet Oncer3…r4}r5(hj0h j.ubaubah(j¢ubj•)r6}r7(hUh*}r8(h,]h-]h.]h/]h3]uh jh7]r9hL)r:}r;(hXClientr<h j6h&h'h(hOh*}r=(h,]h-]h.]h/]h3]uh5K”h7]r>h@XClientr?…r@}rA(hj<h j:ubaubah(j¢ubj•)rB}rC(hUh*}rD(h,]h-]h.]h/]h3]uh jh7]rEhL)rF}rG(hXMNrHh jBh&h'h(hOh*}rI(h,]h-]h.]h/]h3]uh5K•h7]rJh@XMNrK…rL}rM(hjHh jFubaubah(j¢ubj•)rN}rO(hUh*}rP(h,]h-]h.]h/]h3]uh jh7]rQ(hL)rR}rS(hXv1, v2: :func:`CNCore.archive`h jNh&h'h(hOh*}rT(h,]h-]h.]h/]h3]uh5K–h7]rU(h@Xv1, v2: rV…rW}rX(hXv1, v2: h jRubhU)rY}rZ(hX:func:`CNCore.archive`r[h jRh&h'h(hYh*}r\(UreftypeXfunch[‰h\XCNCore.archiveU refdomainXpyr]h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K–h7]r^hy)r_}r`(hj[h*}ra(h,]h-]rb(hfj]Xpy-funcrceh.]h/]h3]uh jYh7]rdh@XCNCore.archive()re…rf}rg(hUh j_ubah(hƒubaubeubhL)rh}ri(hX*v2: :func:`MNStorage.updateSystemMetadata`h jNh&h'h(hOh*}rj(h,]h-]h.]h/]h3]uh5K˜h7]rk(h@Xv2: rl…rm}rn(hXv2: h jhubhU)ro}rp(hX&:func:`MNStorage.updateSystemMetadata`rqh jhh&h'h(hYh*}rr(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyrsh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K˜h7]rthy)ru}rv(hjqh*}rw(h,]h-]rx(hfjsXpy-funcryeh.]h/]h3]uh joh7]rzh@X MNStorage.updateSystemMetadata()r{…r|}r}(hUh juubah(hƒubaubeubeh(j¢ubeh(jÓubj)r~}r(hUh*}r€(h,]h-]h.]h/]h3]uh jÖh7]r(j•)r‚}rƒ(hUh*}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(UreftypeXattrh[‰h\X"Types.SystemMetadata.serialVersionU refdomainXpyrŽh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kšh7]rhy)r}r‘(hjˆh*}r’(h,]h-]r“(hfjŽXpy-attrr”eh.]h/]h3]uh j‹h7]r•h@X serialVersionr–…r—}r˜(hUh jubah(hƒubaubaubah(j¢ubj•)r™}rš(hUh*}r›(h,]h-]h.]h/]h3]uh j~h7]rœhL)r}rž(hXMutablerŸh j™h&h'h(hOh*}r (h,]h-]h.]h/]h3]uh5K›h7]r¡h@XMutabler¢…r£}r¤(hjŸh jubaubah(j¢ubj•)r¥}r¦(hUh*}r§(h,]h-]h.]h/]h3]uh j~h7]r¨hL)r©}rª(hXCNr«h j¥h&h'h(hOh*}r¬(h,]h-]h.]h/]h3]uh5Kœh7]r­h@XCNr®…r¯}r°(hj«h j©ubaubah(j¢ubj•)r±}r²(hUh*}r³(h,]h-]h.]h/]h3]uh j~h7]r´hL)rµ}r¶(hXCNr·h j±h&h'h(hOh*}r¸(h,]h-]h.]h/]h3]uh5Kh7]r¹h@XCNrº…r»}r¼(hj·h jµubaubah(j¢ubj•)r½}r¾(hUh*}r¿(h,]h-]h.]h/]h3]uh j~h7]rÀ(hL)rÁ}rÂ(hXHv1: 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@XHv1: Set by CNs in response to any operation that alters System Metadata.rÆ…rÇ}rÈ(hjÃh jÁubaubhL)rÉ}rÊ(hX6v2: 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@X6v2: Used by CNs for management of replication process.rÎ…rÏ}rÐ(hjËh jÉubaubeh(j¢ubeh(jÓubj)rÑ}rÒ(hUh*}rÓ(h,]h-]h.]h/]h3]uh jÖh7]rÔ(j•)rÕ}rÖ(hUh*}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)rÞ}rß(hjÛh jÙh&h'h(hYh*}rà(UreftypeXattrh[‰h\XTypes.SystemMetadata.formatIdU refdomainXpyráh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K¢h7]râhy)rã}rä(hjÛh*}rå(h,]h-]ræ(hfjáXpy-attrrçeh.]h/]h3]uh jÞh7]rèh@XformatIdré…rê}rë(hUh jãubah(hƒubaubaubah(j¢ubj•)rì}rí(hUh*}rî(h,]h-]h.]h/]h3]uh jÑh7]rïhL)rð}rñ(hXMutableròh jìh&h'h(hOh*}ró(h,]h-]h.]h/]h3]uh5K£h7]rôh@XMutablerõ…rö}r÷(hjòh jðubaubah(j¢ubj•)rø}rù(hUh*}rú(h,]h-]h.]h/]h3]uh jÑh7]rûhL)rü}rý(hXClientrþh jøh&h'h(hOh*}rÿ(h,]h-]h.]h/]h3]uh5K¤h7]rh@XClientr…r}r(hjþh jüubaubah(j¢ubj•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jÑh7]rhL)r}r (hXMN + CNr h jh&h'h(hOh*}r (h,]h-]h.]h/]h3]uh5K¥h7]r h@XMN + CNr …r}r(hj h jubaubah(j¢ubj•)r}r(hUh*}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 jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5K¦h7]r(h@XDChange is discouraged, values limited to the formats available from r…r}r(hXDChange is discouraged, values limited to the formats available from h jubhU)r}r(hX:func:`CNCore.listFormats`rh jh&h'h(hYh*}r(UreftypeXfunch[‰h\XCNCore.listFormatsU refdomainXpyrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K¦h7]r hy)r!}r"(hjh*}r#(h,]h-]r$(hfjXpy-funcr%eh.]h/]h3]uh jh7]r&h@XCNCore.listFormats()r'…r(}r)(hUh j!ubah(hƒubaubh@X.…r*}r+(hX.h jubeubhL)r,}r-(hX'v1: :func:`CNCore.updateSystemMetadata`h jh&h'h(hOh*}r.(h,]h-]h.]h/]h3]uh5K©h7]r/(h@Xv1: r0…r1}r2(hXv1: h j,ubhU)r3}r4(hX#:func:`CNCore.updateSystemMetadata`r5h j,h&h'h(hYh*}r6(UreftypeXfunch[‰h\XCNCore.updateSystemMetadataU refdomainXpyr7h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K©h7]r8hy)r9}r:(hj5h*}r;(h,]h-]r<(hfj7Xpy-funcr=eh.]h/]h3]uh j3h7]r>h@XCNCore.updateSystemMetadata()r?…r@}rA(hUh j9ubah(hƒubaubeubhL)rB}rC(hX*v2: :func:`MNStorage.updateSystemMetadata`h jh&h'h(hOh*}rD(h,]h-]h.]h/]h3]uh5K«h7]rE(h@Xv2: rF…rG}rH(hXv2: h jBubhU)rI}rJ(hX&:func:`MNStorage.updateSystemMetadata`rKh jBh&h'h(hYh*}rL(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyrMh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K«h7]rNhy)rO}rP(hjKh*}rQ(h,]h-]rR(hfjMXpy-funcrSeh.]h/]h3]uh jIh7]rTh@X MNStorage.updateSystemMetadata()rU…rV}rW(hUh jOubah(hƒubaubeubeh(j¢ubeh(jÓubj)rX}rY(hUh*}rZ(h,]h-]h.]h/]h3]uh jÖh7]r[(j•)r\}r](hUh*}r^(h,]h-]h.]h/]h3]uh jXh7]r_hL)r`}ra(hX1:attr:`~v2_0.Types.SystemMetadata.mediaType` (v2)rbh j\h&h'h(hOh*}rc(h,]h-]h.]h/]h3]uh5K­h7]rd(hU)re}rf(hX,:attr:`~v2_0.Types.SystemMetadata.mediaType`rgh j`h&h'h(hYh*}rh(UreftypeXattrh[‰h\X#v2_0.Types.SystemMetadata.mediaTypeU refdomainXpyrih/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K­h7]rjhy)rk}rl(hjgh*}rm(h,]h-]rn(hfjiXpy-attrroeh.]h/]h3]uh jeh7]rph@X mediaTyperq…rr}rs(hUh jkubah(hƒubaubh@X (v2)rt…ru}rv(hX (v2)h j`ubeubah(j¢ubj•)rw}rx(hUh*}ry(h,]h-]h.]h/]h3]uh jXh7]rzhL)r{}r|(hXMutabler}h jwh&h'h(hOh*}r~(h,]h-]h.]h/]h3]uh5K®h7]rh@XMutabler€…r}r‚(hj}h j{ubaubah(j¢ubj•)rƒ}r„(hUh*}r…(h,]h-]h.]h/]h3]uh jXh7]r†hL)r‡}rˆ(hXClientr‰h jƒh&h'h(hOh*}rŠ(h,]h-]h.]h/]h3]uh5K¯h7]r‹h@XClientrŒ…r}rŽ(hj‰h j‡ubaubah(j¢ubj•)r}r(hUh*}r‘(h,]h-]h.]h/]h3]uh jXh7]r’hL)r“}r”(hXClientr•h jh&h'h(hOh*}r–(h,]h-]h.]h/]h3]uh5K°h7]r—h@XClientr˜…r™}rš(hj•h j“ubaubah(j¢ubj•)r›}rœ(hUh*}r(h,]h-]h.]h/]h3]uh jXh7]ržhL)rŸ}r (hXAs for ``formatId``.h j›h&h'h(hOh*}r¡(h,]h-]h.]h/]h3]uh5K±h7]r¢(h@XAs for r£…r¤}r¥(hXAs for h jŸubhy)r¦}r§(hX ``formatId``h*}r¨(h,]h-]h.]h/]h3]uh jŸh7]r©h@XformatIdrª…r«}r¬(hUh j¦ubah(hƒubh@X.…r­}r®(hX.h jŸubeubah(j¢ubeh(jÓubj)r¯}r°(hUh*}r±(h,]h-]h.]h/]h3]uh jÖh7]r²(j•)r³}r´(hUh*}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¿(UreftypeXattrh[‰h\X"v2_0.Types.SystemMetadata.fileNameU refdomainXpyrÀh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K³h7]rÁhy)rÂ}rÃ(hj¾h*}rÄ(h,]h-]rÅ(hfjÀXpy-attrrÆeh.]h/]h3]uh j¼h7]rÇh@XfileNamerÈ…rÉ}rÊ(hUh jÂubah(hƒubaubh@X (v2)rË…rÌ}rÍ(hX (v2)h j·ubeubah(j¢ubj•)rÎ}rÏ(hUh*}rÐ(h,]h-]h.]h/]h3]uh j¯h7]rÑhL)rÒ}rÓ(hXMutablerÔh jÎh&h'h(hOh*}rÕ(h,]h-]h.]h/]h3]uh5K´h7]rÖh@XMutabler×…rØ}rÙ(hjÔh jÒubaubah(j¢ubj•)rÚ}rÛ(hUh*}rÜ(h,]h-]h.]h/]h3]uh j¯h7]rÝhL)rÞ}rß(hXClientràh jÚh&h'h(hOh*}rá(h,]h-]h.]h/]h3]uh5Kµh7]râh@XClientrã…rä}rå(hjàh jÞubaubah(j¢ubj•)ræ}rç(hUh*}rè(h,]h-]h.]h/]h3]uh j¯h7]réhL)rê}rë(hXClientrìh jæh&h'h(hOh*}rí(h,]h-]h.]h/]h3]uh5K¶h7]rîh@XClientrï…rð}rñ(hjìh jêubaubah(j¢ubj•)rò}ró(hUh*}rô(h,]h-]h.]h/]h3]uh j¯h7]rõhL)rö}r÷(hXAs for ``formatId``.h jòh&h'h(hOh*}rø(h,]h-]h.]h/]h3]uh5K·h7]rù(h@XAs for rú…rû}rü(hXAs for h jöubhy)rý}rþ(hX ``formatId``h*}rÿ(h,]h-]h.]h/]h3]uh jöh7]rh@XformatIdr…r}r(hUh jýubah(hƒubh@X.…r}r(hX.h jöubeubah(j¢ubeh(jÓubj)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jÖh7]r (j•)r }r (hUh*}r (h,]h-]h.]h/]h3]uh jh7]r hL)r}r(hX*:attr:`~Types.SystemMetadata.rightsHolder`rh j h&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5K¹h7]rhU)r}r(hjh jh&h'h(hYh*}r(UreftypeXattrh[‰h\X!Types.SystemMetadata.rightsHolderU refdomainXpyrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K¹h7]rhy)r}r(hjh*}r(h,]h-]r(hfjXpy-attrreh.]h/]h3]uh jh7]rh@X rightsHolderr…r}r (hUh jubah(hƒubaubaubah(j¢ubj•)r!}r"(hUh*}r#(h,]h-]h.]h/]h3]uh jh7]r$hL)r%}r&(hXMutabler'h j!h&h'h(hOh*}r((h,]h-]h.]h/]h3]uh5Kºh7]r)h@XMutabler*…r+}r,(hj'h j%ubaubah(j¢ubj•)r-}r.(hUh*}r/(h,]h-]h.]h/]h3]uh jh7]r0hL)r1}r2(hXClientr3h j-h&h'h(hOh*}r4(h,]h-]h.]h/]h3]uh5K»h7]r5h@XClientr6…r7}r8(hj3h j1ubaubah(j¢ubj•)r9}r:(hUh*}r;(h,]h-]h.]h/]h3]uh jh7]r<hL)r=}r>(hXClientr?h j9h&h'h(hOh*}r@(h,]h-]h.]h/]h3]uh5K¼h7]rAh@XClientrB…rC}rD(hj?h j=ubaubah(j¢ubj•)rE}rF(hUh*}rG(h,]h-]h.]h/]h3]uh jh7]rH(hL)rI}rJ(hX+Rights holder for an object may be altered.rKh jEh&h'h(hOh*}rL(h,]h-]h.]h/]h3]uh5K½h7]rMh@X+Rights holder for an object may be altered.rN…rO}rP(hjKh jIubaubhL)rQ}rR(hX+v1: :func:`CNAuthorization.setRightsHolder`h jEh&h'h(hOh*}rS(h,]h-]h.]h/]h3]uh5K¿h7]rT(h@Xv1: rU…rV}rW(hXv1: h jQubhU)rX}rY(hX':func:`CNAuthorization.setRightsHolder`rZh jQh&h'h(hYh*}r[(UreftypeXfunch[‰h\XCNAuthorization.setRightsHolderU refdomainXpyr\h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5K¿h7]r]hy)r^}r_(hjZh*}r`(h,]h-]ra(hfj\Xpy-funcrbeh.]h/]h3]uh jXh7]rch@X!CNAuthorization.setRightsHolder()rd…re}rf(hUh j^ubah(hƒubaubeubhL)rg}rh(hX*v2: :func:`MNStorage.updateSystemMetadata`h jEh&h'h(hOh*}ri(h,]h-]h.]h/]h3]uh5KÁh7]rj(h@Xv2: rk…rl}rm(hXv2: h jgubhU)rn}ro(hX&:func:`MNStorage.updateSystemMetadata`rph jgh&h'h(hYh*}rq(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyrrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÁh7]rshy)rt}ru(hjph*}rv(h,]h-]rw(hfjrXpy-funcrxeh.]h/]h3]uh jnh7]ryh@X MNStorage.updateSystemMetadata()rz…r{}r|(hUh jtubah(hƒubaubeubeh(j¢ubeh(jÓubj)r}}r~(hUh*}r(h,]h-]h.]h/]h3]uh jÖh7]r€(j•)r}r‚(hUh*}rƒ(h,]h-]h.]h/]h3]uh j}h7]r„hL)r…}r†(hX*:attr:`~Types.SystemMetadata.accessPolicy`r‡h jh&h'h(hOh*}rˆ(h,]h-]h.]h/]h3]uh5KÃh7]r‰hU)rŠ}r‹(hj‡h j…h&h'h(hYh*}rŒ(UreftypeXattrh[‰h\X!Types.SystemMetadata.accessPolicyU refdomainXpyrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÃh7]rŽhy)r}r(hj‡h*}r‘(h,]h-]r’(hfjXpy-attrr“eh.]h/]h3]uh jŠh7]r”h@X accessPolicyr•…r–}r—(hUh jubah(hƒubaubaubah(j¢ubj•)r˜}r™(hUh*}rš(h,]h-]h.]h/]h3]uh j}h7]r›hL)rœ}r(hXMutableržh j˜h&h'h(hOh*}rŸ(h,]h-]h.]h/]h3]uh5KÄh7]r h@XMutabler¡…r¢}r£(hjžh jœubaubah(j¢ubj•)r¤}r¥(hUh*}r¦(h,]h-]h.]h/]h3]uh j}h7]r§hL)r¨}r©(hXClientrªh j¤h&h'h(hOh*}r«(h,]h-]h.]h/]h3]uh5KÅh7]r¬h@XClientr­…r®}r¯(hjªh j¨ubaubah(j¢ubj•)r°}r±(hUh*}r²(h,]h-]h.]h/]h3]uh j}h7]r³hL)r´}rµ(hXClientr¶h j°h&h'h(hOh*}r·(h,]h-]h.]h/]h3]uh5KÆh7]r¸h@XClientr¹…rº}r»(hj¶h j´ubaubah(j¢ubj•)r¼}r½(hUh*}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@Xv1: rÌ…rÍ}rÎ(hXv1: h jÈubhU)rÏ}rÐ(hX':func:`CNAuthorization.setAccessPolicy`rÑh jÈh&h'h(hYh*}rÒ(UreftypeXfunch[‰h\XCNAuthorization.setAccessPolicyU refdomainXpyrÓh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÉh7]rÔhy)rÕ}rÖ(hjÑh*}r×(h,]h-]rØ(hfjÓXpy-funcrÙeh.]h/]h3]uh jÏh7]rÚh@X!CNAuthorization.setAccessPolicy()rÛ…rÜ}rÝ(hUh jÕ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@Xv2: râ…rã}rä(hXv2: h jÞubhU)rå}ræ(hX&:func:`MNStorage.updateSystemMetadata`rçh jÞh&h'h(hYh*}rè(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyréh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KËh7]rêhy)rë}rì(hjçh*}rí(h,]h-]rî(hfjéXpy-funcrïeh.]h/]h3]uh jåh7]rðh@X MNStorage.updateSystemMetadata()rñ…rò}ró(hUh jëubah(hƒubaubh@X.…rô}rõ(hX.h jÞubeubeh(j¢ubeh(jÓubj)rö}r÷(hUh*}rø(h,]h-]h.]h/]h3]uh jÖh7]rù(j•)rú}rû(hUh*}rü(h,]h-]h.]h/]h3]uh jöh7]rýhL)rþ}rÿ(hX/:attr:`~Types.SystemMetadata.replicationPolicy`rh júh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5KÍh7]rhU)r}r(hjh jþh&h'h(hYh*}r(UreftypeXattrh[‰h\X&Types.SystemMetadata.replicationPolicyU refdomainXpyrh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÍh7]rhy)r}r (hjh*}r (h,]h-]r (hfjXpy-attrr eh.]h/]h3]uh jh7]r h@XreplicationPolicyr…r}r(hUh jubah(hƒubaubaubah(j¢ubj•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jöh7]rhL)r}r(hXMutablerh jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5KÎh7]rh@XMutabler…r}r(hjh jubaubah(j¢ubj•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jöh7]r hL)r!}r"(hXClientr#h jh&h'h(hOh*}r$(h,]h-]h.]h/]h3]uh5KÏh7]r%h@XClientr&…r'}r((hj#h j!ubaubah(j¢ubj•)r)}r*(hUh*}r+(h,]h-]h.]h/]h3]uh jöh7]r,hL)r-}r.(hXClientr/h j)h&h'h(hOh*}r0(h,]h-]h.]h/]h3]uh5KÐh7]r1h@XClientr2…r3}r4(hj/h j-ubaubah(j¢ubj•)r5}r6(hUh*}r7(h,]h-]h.]h/]h3]uh jöh7]r8(hL)r9}r:(hX.v1: :func:`CNReplication.setReplicationPolicy`h j5h&h'h(hOh*}r;(h,]h-]h.]h/]h3]uh5KÑh7]r<(h@Xv1: r=…r>}r?(hXv1: h j9ubhU)r@}rA(hX*:func:`CNReplication.setReplicationPolicy`rBh j9h&h'h(hYh*}rC(UreftypeXfunch[‰h\X"CNReplication.setReplicationPolicyU refdomainXpyrDh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÑh7]rEhy)rF}rG(hjBh*}rH(h,]h-]rI(hfjDXpy-funcrJeh.]h/]h3]uh j@h7]rKh@X$CNReplication.setReplicationPolicy()rL…rM}rN(hUh jFubah(hƒubaubeubhL)rO}rP(hX*v2: :func:`MNStorage.updateSystemMetadata`h j5h&h'h(hOh*}rQ(h,]h-]h.]h/]h3]uh5KÓh7]rR(h@Xv2: rS…rT}rU(hXv2: h jOubhU)rV}rW(hX&:func:`MNStorage.updateSystemMetadata`rXh jOh&h'h(hYh*}rY(UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyrZh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÓh7]r[hy)r\}r](hjXh*}r^(h,]h-]r_(hfjZXpy-funcr`eh.]h/]h3]uh jVh7]rah@X MNStorage.updateSystemMetadata()rb…rc}rd(hUh j\ubah(hƒubaubeubeh(j¢ubeh(jÓubj)re}rf(hUh*}rg(h,]h-]h.]h/]h3]uh jÖh7]rh(j•)ri}rj(hUh*}rk(h,]h-]h.]h/]h3]uh jeh7]rlhL)rm}rn(hX5:attr:`~Types.SystemMetadata.dateSysMetadataModified`roh jih&h'h(hOh*}rp(h,]h-]h.]h/]h3]uh5KÕh7]rqhU)rr}rs(hjoh jmh&h'h(hYh*}rt(UreftypeXattrh[‰h\X,Types.SystemMetadata.dateSysMetadataModifiedU refdomainXpyruh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÕh7]rvhy)rw}rx(hjoh*}ry(h,]h-]rz(hfjuXpy-attrr{eh.]h/]h3]uh jrh7]r|h@XdateSysMetadataModifiedr}…r~}r(hUh jwubah(hƒubaubaubah(j¢ubj•)r€}r(hUh*}r‚(h,]h-]h.]h/]h3]uh jeh7]rƒhL)r„}r…(hXMutabler†h j€h&h'h(hOh*}r‡(h,]h-]h.]h/]h3]uh5KÖh7]rˆh@XMutabler‰…rŠ}r‹(hj†h j„ubaubah(j¢ubj•)rŒ}r(hUh*}rŽ(h,]h-]h.]h/]h3]uh jeh7]rhL)r}r‘(hXMNr’h jŒh&h'h(hOh*}r“(h,]h-]h.]h/]h3]uh5K×h7]r”h@XMNr•…r–}r—(hj’h jubaubah(j¢ubj•)r˜}r™(hUh*}rš(h,]h-]h.]h/]h3]uh jeh7]r›hL)rœ}r(hXMNržh j˜h&h'h(hOh*}rŸ(h,]h-]h.]h/]h3]uh5KØh7]r h@XMNr¡…r¢}r£(hjžh jœubaubah(j¢ubj•)r¤}r¥(hUh*}r¦(h,]h-]h.]h/]h3]uh jeh7]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±(hUh*}r²(h,]h-]h.]h/]h3]uh jÖh7]r³(j•)r´}rµ(hUh*}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¿(UreftypeXattrh[‰h\X,Types.SystemMetadata.authoritativeMemberNodeU refdomainXpyrÀh/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5KÛh7]rÁhy)rÂ}rÃ(hjºh*}rÄ(h,]h-]rÅ(hfjÀXpy-attrrÆeh.]h/]h3]uh j½h7]rÇh@XauthoritativeMemberNoderÈ…rÉ}rÊ(hUh jÂubah(hƒubaubaubah(j¢ubj•)rË}rÌ(hUh*}rÍ(h,]h-]h.]h/]h3]uh j°h7]rÎhL)rÏ}rÐ(hXMutablerÑh jËh&h'h(hOh*}rÒ(h,]h-]h.]h/]h3]uh5KÜh7]rÓh@XMutablerÔ…rÕ}rÖ(hjÑh jÏubaubah(j¢ubj•)r×}rØ(hUh*}rÙ(h,]h-]h.]h/]h3]uh j°h7]rÚhL)rÛ}rÜ(hXMNrÝh j×h&h'h(hOh*}rÞ(h,]h-]h.]h/]h3]uh5KÝh7]rßh@XMNrà…rá}râ(hjÝh jÛubaubah(j¢ubj•)rã}rä(hUh*}rå(h,]h-]h.]h/]h3]uh j°h7]ræhL)rç}rè(hXCNréh jãh&h'h(hOh*}rê(h,]h-]h.]h/]h3]uh5KÞh7]rëh@XCNrì…rí}rî(hjéh jçubaubah(j¢ubj•)rï}rð(hUh*}rñ(h,]h-]h.]h/]h3]uh j°h7]ròhL)ró}rô(hXHManual update process that must be performed by a DataONE administrator.rõh jïh&h'h(hOh*}rö(h,]h-]h.]h/]h3]uh5Kßh7]r÷h@XHManual update process that must be performed by a DataONE administrator.rø…rù}rú(hjõh jóubaubah(j¢ubeh(jÓubj)rû}rü(hUh*}rý(h,]h-]h.]h/]h3]uh jÖh7]rþ(j•)rÿ}r (hUh*}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 (UreftypeXattrh[‰h\XTypes.SystemMetadata.replicaU refdomainXpyr h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Káh7]r hy)r }r (hj h*}r (h,]h-]r (hfj Xpy-attrr eh.]h/]h3]uh j h7]r h@Xreplicar …r }r (hUh j ubah(hƒubaubaubah(j¢ubj•)r }r (hUh*}r (h,]h-]h.]h/]h3]uh jûh7]r hL)r }r (hXMutabler h j h&h'h(hOh*}r (h,]h-]h.]h/]h3]uh5Kâh7]r h@XMutabler …r }r! (hj h j ubaubah(j¢ubj•)r" }r# (hUh*}r$ (h,]h-]h.]h/]h3]uh jûh7]r% hL)r& }r' (hXCNr( h j" h&h'h(hOh*}r) (h,]h-]h.]h/]h3]uh5Kãh7]r* h@XCNr+ …r, }r- (hj( h j& ubaubah(j¢ubj•)r. }r/ (hUh*}r0 (h,]h-]h.]h/]h3]uh jûh7]r1 hL)r2 }r3 (hXCNr4 h j. h&h'h(hOh*}r5 (h,]h-]h.]h/]h3]uh5Käh7]r6 h@XCNr7 …r8 }r9 (hj4 h j2 ubaubah(j¢ubj•)r: }r; (hUh*}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 (UreftypeXfunch[‰h\X'CNReplication.updateReplicationMetadataU refdomainXpyrF h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kåh7]rG hy)rH }rI (hjD h*}rJ (h,]h-]rK (hfjF Xpy-funcrL eh.]h/]h3]uh jB h7]rM h@X)CNReplication.updateReplicationMetadata()rN …rO }rP (hUh 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 (hUh h$h&h'h(h)h*}rX (h,]h-]h.]h/]rY Uchanging-system-metadata-valuesrZ ah3]r[ hauh5Kêh6hh7]r\ (h9)r] }r^ (hXChanging System Metadata Valuesr_ h jV h&h'h(h=h*}r` (h,]h-]h.]h/]h3]uh5Kêh6hh7]ra h@XChanging 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@XCHANGE_PERMISSIONrx …ry }rz (hUh 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„ (hUh 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@XauthoritativeMemberNoderŒ …r }rŽ (hUh 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“ (hUh 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¢ (hXIn 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@XTIn version 2.x, properties of System Metadata are set via the Member Node using the r¥ …r¦ }r§ (hXTIn 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« (UreftypeXfunch[‰h\XMNStorage.updateSystemMetadataU refdomainXpyr¬ h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Kùh7]r­ hy)r® }r¯ (hjª h*}r° (h,]h-]r± (hfj¬ Xpy-funcr² eh.]h/]h3]uh j¨ h7]r³ h@X MNStorage.updateSystemMetadata()r´ …rµ }r¶ (hUh 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» (hUh 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Ë (hUh jº h&h'h(UtargetrÌ h*}rÍ (h/]h.]h,]h-]h3]UrefidrÎ Uindex-0rÏ uh5Nh6hh7]ubcsphinx.ext.todo todo_node rÐ )rÑ }rÒ (hXflesh 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Ý }rÞ (hXTodorß h*}rà (h,]h-]h.]h/]h3]uh jÑ h7]rá h@XTodorâ …rã }rä (hUh jÝ ubah(h=ubhL)rå }ræ (hjÓ h jÑ h&h'h(hOh*}rç (h,]h-]h.]h/]h3]uh5Mh7]rè h@Xflesh this out with examplesré …rê }rë (hjÓ h jå ubaubeubeubeubh!)rì }rí (hUh h$h&h'h(h)h*}rî (h,]h-]h.]h/]rï Usystem-metadata-schemarð ah3]rñ h auh5M h6hh7]rò (h9)ró }rô (hXSystem Metadata Schemarõ h jì h&h'h(h=h*}rö (h,]h-]h.]h/]h3]uh5M h6hh7]r÷ h@XSystem Metadata Schemarø …rù }rú (hjõ h jó ubaubhL)rû }rü (hXMThe 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@XThe structure of r …r }r (hXThe structure of h jû ubhU)r }r (hX#:class:`~v2_0.Types.SystemMetadata`r h jû h&h'h(hYh*}r (UreftypeXclassh[‰h\Xv2_0.Types.SystemMetadataU refdomainXpyr h/]h.]U refexplicit‰h,]h-]h3]h^h_huNhvhwuh5Mh7]r hy)r }r (hj h*}r (h,]h-]r (hfj Xpy-classr eh.]h/]h3]uh j h7]r h@XSystemMetadatar …r }r (hUh 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 (hXGRelease 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@XGRelease versions of the schema are available from their namespace URIs:r" …r# }r$ (hj h j ubaubcdocutils.nodes field_list r% )r& }r' (hUh jì h&h'h(U field_listr( h*}r) (h,]h-]h.]h/]h3]uh5Mh6hh7]r* (cdocutils.nodes field r+ )r, }r- (hUh 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]uh5Kh7]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 (hUh jF ubah(U referencerM ubaubah(U field_bodyrN ubeubj+ )rO }rP (hUh 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]uh5Kh7]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 (hUh jd ubah(jM ubaubah(jN ubeubj+ )rk }rl (hUh 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]uh5Kh7]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† (hUh j€ ubah(jM ubaubah(jN ubeubeubhL)r‡ }rˆ (hXPDevelopment 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@XPDevelopment 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š (hUh j” ubah(jM ubaubeubh"h!)r› }rœ (hUh 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£ (hXCRoadmap 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@XCRoadmap to System Metadata Control Changes (DRAFT - to be reviewed)r§ …r¨ }r© (hj¤ h j¢ ubaubhL)rª }r« (hX7The 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@X7The 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Á (hUh 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Ç (hUh 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Ý }rÞ (hX5Example sequence diagrams show the differnce follows:rß h jÆ h&h'h(hOh*}rà (h,]h-]h.]h/]h3]uh5M8h6hh7]rá h@X5Example sequence diagrams show the differnce follows:râ …rã }rä (hjß 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 <> participant "MN" as MN <> participant "CN" as CN <> 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 ... Potentially long delay due to sync schedule ... 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 <> participant "MN" as MN <> participant "CN" as CN <> 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 ... Potentially long delay due to sync schedule ... 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ï (hUh 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 <> participant "MN" as MN <> participant "CN" as CN <> 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 ... Potentially long delay due to sync schedule ... 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 <> participant "MN" as MN <> participant "CN" as CN <> 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 ... Potentially long delay due to sync schedule ... 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 (hUh 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 (hUh 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 (hX01. Change architecture to shift authority to MNsr h j h&h'h(h=h*}r (h,]h-]h.]h/]h3]uh5Mœh6hh7]r h@X01. 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 (hXhere_Uresolvedr Kh j h(jM h*}r (UnameXherer! 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@Xherer% …r& }r' (hUh 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 (hUh 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 (hX1The `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@XThe rE …rF }rG (hXThe h j@ ubjE )rH }rI (hX`Types Schema`_j Kh j@ h(jM h*}rJ (UnameX Types Schemaj" XAhttp://mule1.dataone.org/ArchitectureDocs-current/apis/Types.htmlrK h/]h.]h,]h-]h3]uh7]rL h@X Types SchemarM …rN }rO (hUh jH ubaubh@X could be changed in two ways:rP …rQ }rR (hX could be changed in two ways:h j@ ubeubhL)rS }rT (hX2.1 Modify the Replica TyperU h j1 h&h'h(hOh*}rV (h,]h-]h.]h/]h3]uh5M¨h6hh7]rW h@X2.1 Modify the Replica TyperX …rY }rZ (hjU h jS ubaubhL)r[ }r\ (hXBy 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@XBy adding an optional r_ …r` }ra (hXBy adding an optional h j[ ubjº )rb }rc (hX `version`h*}rd (h,]h-]h.]h/]h3]uh j[ h7]re h@Xversionrf …rg }rh (hUh 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 (hUh 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Î urn:node:PISCO completed 2012-07-10T00:00:00.000+00:00 h j1 h&h'h(U literal_blockry h*}rz (Ulinenosr{ ‰Ulanguager| Xxmljê jë h/]h.]h,]Uhighlight_argsr} }r~ Uhl_linesr ]r€ Kash-]h3]uh5M­h6hh7]r h@XÎ urn:node:PISCO completed 2012-07-10T00:00:00.000+00:00 r‚ …rƒ }r„ (hUh 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@XBy making the r‰ …rŠ }r‹ (hXBy making the h j… ubjº )rŒ }r (hX `version`h*}rŽ (h,]h-]h.]h/]h3]uh j… h7]r h@Xversionr …r‘ }r’ (hUh 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— (hX2.2 Remove the Replicar˜ h j1 h&h'h(hOh*}r™ (h,]h-]h.]h/]h3]uh5M¹h6hh7]rš h@X2.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§ (hUh j1 h&h'h(jÌ h*}r¨ (h/]h.]h,]h-]h3]jÎ Uindex-1r© uh5Nh6hh7]ubjÐ )rª }r« (hXNeeds 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³ (hXTodor´ h*}rµ (h,]h-]h.]h/]h3]uh jª h7]r¶ h@XTodor· …r¸ }r¹ (hUh j² ubah(h=ubhL)rº }r» (hj¬ h jª h&h'h(hOh*}r¼ (h,]h-]h.]h/]h3]uh5M¾h7]r½ h@XNeeds discussion.r¾ …r¿ }rÀ (hj¬ h jº ubaubeubhL)rÁ }r (hXh2.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@Xh2.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Ð (hUh j› h&h'h(h)h*}rÑ (h,]h-]h.]h/]rÒ Uchange-dataone-apisrÓ ah3]rÔ hauh5MÉh6hh7]rÕ (h9)rÖ }r× (hX3. Change DataONE APISrØ h jÏ h&h'h(h=h*}rÙ (h,]h-]h.]h/]h3]uh5MÉh6hh7]rÚ h@X3. Change DataONE APISrÛ …rÜ }rÝ (hjØ h jÖ ubaubhL)rÞ }rß (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 jÞ ubjº )ræ }rç (hX`d1_common_java`h*}rè (h,]h-]h.]h/]h3]uh jÞ h7]ré h@Xd1_common_javarê …rë }rì (hUh jæ ubah(j ubh@X and rí …rî }rï (hX and h jÞ ubjº )rð }rñ (hX`d1_common_python`h*}rò (h,]h-]h.]h/]h3]uh jÞ h7]ró h@Xd1_common_pythonrô …rõ }rö (hUh jð ubah(j ubh@X libraries:r÷ …rø }rù (hX libraries:h jÞ ubeubhL)rú }rû (hX3.1 MN and CN API changesrü h jÏ h&h'h(hOh*}rý (h,]h-]h.]h/]h3]uh5MÍh6hh7]rþ h@X3.1 MN and CN API changesrÿ …r }r (hjü h jú ubaubjo)r }r (hUh jÏ h&h'h(jrh*}r (h,]h-]h.]h/]h3]uh5Nh6hh7]r ju)r }r (hUh*}r (h/]h.]h,]h-]h3]UcolsKuh j h7]r (jz)r }r (hUh*}r (h/]h.]h,]h-]h3]UcolwidthK uh j h7]h(j~ubjz)r }r (hUh*}r (h/]h.]h,]h-]h3]UcolwidthK"uh j h7]h(j~ubjz)r }r (hUh*}r (h/]h.]h,]h-]h3]UcolwidthKuh j h7]h(j~ubjÕ)r }r (hUh*}r (h,]h-]h.]h/]h3]uh j h7]r (j)r }r (hUh*}r (h,]h-]h.]h/]h3]uh j h7]r (j•)r }r (hUh*}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@XActionr( …r) }r* (hUh j$ ubah(jkubaubah(j¢ubj•)r+ }r, (hUh*}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@XMethodr8 …r9 }r: (hUh j4 ubah(jkubaubah(j¢ubj•)r; }r< (hUh*}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@XNotesrH …rI }rJ (hUh jD ubah(jkubaubah(j¢ubeh(jÓubj)rK }rL (hUh*}rM (h,]h-]h.]h/]h3]uh j h7]rN (j•)rO }rP (hUh*}rQ (h,]h-]h.]h/]h3]uh jK h7]rR hL)rS }rT (hXAddrU h jO h&h'h(hOh*}rV (h,]h-]h.]h/]h3]uh5MÒh7]rW h@XAddrX …rY }rZ (hjU h jS ubaubah(j¢ubj•)r[ }r\ (hUh*}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 (hUh*}ri (h,]h-]h.]h/]h3]uh jK h7]rj hL)rk }rl (hXInstead of multiple methodsrm h jg h&h'h(hOh*}rn (h,]h-]h.]h/]h3]uh5MÒh7]ro h@XInstead of multiple methodsrp …rq }rr (hjm h jk ubaubah(j¢ubeh(jÓubj)rs }rt (hUh*}ru (h,]h-]h.]h/]h3]uh j h7]rv (j•)rw }rx (hUh*}ry (h,]h-]h.]h/]h3]uh js h7]rz hL)r{ }r| (hXChanger} h jw h&h'h(hOh*}r~ (h,]h-]h.]h/]h3]uh5MÔh7]r h@XChanger€ …r }r‚ (hj} h j{ ubaubah(j¢ubj•)rƒ }r„ (hUh*}r… (h,]h-]h.]h/]h3]uh js h7]r† hL)r‡ }rˆ (hXMNRead.systemMetadataChanged()r‰ h jƒ h&h'h(hOh*}rŠ (h,]h-]h.]h/]h3]uh5MÔh7]r‹ h@XMNRead.systemMetadataChanged()rŒ …r }rŽ (hj‰ h j‡ ubaubah(j¢ubj•)r }r (hUh*}r‘ (h,]h-]h.]h/]h3]uh js h7]r’ hL)r“ }r” (hXMove from MNAuthorizationr• h j h&h'h(hOh*}r– (h,]h-]h.]h/]h3]uh5MÔh7]r— h@XMove from MNAuthorizationr˜ …r™ }rš (hj• h j“ ubaubah(j¢ubeh(jÓubj)r› }rœ (hUh*}r (h,]h-]h.]h/]h3]uh j h7]rž (j•)rŸ }r  (hUh*}r¡ (h,]h-]h.]h/]h3]uh j› h7]r¢ hL)r£ }r¤ (hXRejectr¥ h jŸ h&h'h(hOh*}r¦ (h,]h-]h.]h/]h3]uh5MÖh7]r§ h@XRejectr¨ …r© }rª (hj¥ h j£ ubaubah(j¢ubj•)r« }r¬ (hUh*}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¸ (hUh*}r¹ (h,]h-]h.]h/]h3]uh j› h7]h(j¢ubeh(jÓubj)rº }r» (hUh*}r¼ (h,]h-]h.]h/]h3]uh j h7]r½ (j•)r¾ }r¿ (hUh*}rÀ (h,]h-]h.]h/]h3]uh jº h7]rÁ hL)r }rà (hXRejectrÄ h j¾ h&h'h(hOh*}rÅ (h,]h-]h.]h/]h3]uh5MØh7]rÆ h@XRejectrÇ …rÈ }rÉ (hjÄ h j ubaubah(j¢ubj•)rÊ }rË (hUh*}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× (hUh*}rØ (h,]h-]h.]h/]h3]uh jº h7]h(j¢ubeh(jÓubj)rÙ }rÚ (hUh*}rÛ (h,]h-]h.]h/]h3]uh j h7]rÜ (j•)rÝ }rÞ (hUh*}rß (h,]h-]h.]h/]h3]uh jÙ h7]rà hL)rá }râ (hXRejectrã h jÝ h&h'h(hOh*}rä (h,]h-]h.]h/]h3]uh5MÚh7]rå h@XRejectræ …rç }rè (hjã h já ubaubah(j¢ubj•)ré }rê (hUh*}rë (h,]h-]h.]h/]h3]uh jÙ h7]rì hL)rí }rî (hXCNCore.sytemMetadataChanged()rï h jé h&h'h(hOh*}rð (h,]h-]h.]h/]h3]uh5MÚh7]rñ h@XCNCore.sytemMetadataChanged()rò …ró }rô (hjï h jí ubaubah(j¢ubj•)rõ }rö (hUh*}r÷ (h,]h-]h.]h/]h3]uh jÙ h7]rø hL)rù }rú (hXRequired to push notify CNsrû h jõ h&h'h(hOh*}rü (h,]h-]h.]h/]h3]uh5MÚh7]rý h@XRequired to push notify CNsrþ …rÿ }r (hjû h jù ubaubah(j¢ubeh(jÓubj)r }r (hUh*}r (h,]h-]h.]h/]h3]uh j h7]r (j•)r }r (hUh*}r (h,]h-]h.]h/]h3]uh j h7]r hL)r }r (hXAddr h j h&h'h(hOh*}r (h,]h-]h.]h/]h3]uh5MÜh7]r h@XAddr …r }r (hj h j ubaubah(j¢ubj•)r }r (hUh*}r (h,]h-]h.]h/]h3]uh j h7]r hL)r }r (hXCNCore.updateSytemMetadata()r h j h&h'h(hOh*}r (h,]h-]h.]h/]h3]uh5MÜh7]r h@XCNCore.updateSytemMetadata()r …r }r (hj h j ubaubah(j¢ubj•)r }r (hUh*}r (h,]h-]h.]h/]h3]uh j h7]r hL)r! }r" (hXKeeps the CN copy in syncr# h j h&h'h(hOh*}r$ (h,]h-]h.]h/]h3]uh5MÜh7]r% h@XKeeps the CN copy in syncr& …r' }r( (hj# h j! ubaubah(j¢ubeh(jÓubj)r) }r* (hUh*}r+ (h,]h-]h.]h/]h3]uh j h7]r, (j•)r- }r. (hUh*}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]uh5MÞh7]r5 h@X Deprecater6 …r7 }r8 (hj3 h j1 ubaubah(j¢ubj•)r9 }r: (hUh*}r; (h,]h-]h.]h/]h3]uh j) h7]r< hL)r= }r> (hXCNCore.archive()r? h j9 h&h'h(hOh*}r@ (h,]h-]h.]h/]h3]uh5MÞh7]rA h@XCNCore.archive()rB …rC }rD (hj? h j= ubaubah(j¢ubj•)rE }rF (hUh*}rG (h,]h-]h.]h/]h3]uh j) h7]h(j¢ubeh(jÓubj)rH }rI (hUh*}rJ (h,]h-]h.]h/]h3]uh j h7]rK (j•)rL }rM (hUh*}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 (hUh*}rZ (h,]h-]h.]h/]h3]uh jH h7]r[ hL)r\ }r] (hXCNCore.setObsoletedBy()r^ h jX h&h'h(hOh*}r_ (h,]h-]h.]h/]h3]uh5Màh7]r` h@XCNCore.setObsoletedBy()ra …rb }rc (hj^ h j\ ubaubah(j¢ubj•)rd }re (hUh*}rf (h,]h-]h.]h/]h3]uh jH h7]h(j¢ubeh(jÓubj)rg }rh (hUh*}ri (h,]h-]h.]h/]h3]uh j h7]rj (j•)rk }rl (hUh*}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 (hUh*}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„ (hUh*}r… (h,]h-]h.]h/]h3]uh jg h7]h(j¢ubeh(jÓubj)r† }r‡ (hUh*}rˆ (h,]h-]h.]h/]h3]uh j h7]r‰ (j•)rŠ }r‹ (hUh*}rŒ (h,]h-]h.]h/]h3]uh j† h7]r hL)rŽ }r (hXRejectr h jŠ h&h'h(hOh*}r‘ (h,]h-]h.]h/]h3]uh5Mäh7]r’ h@XRejectr“ …r” }r• (hj h jŽ ubaubah(j¢ubj•)r– }r— (hUh*}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£ (hUh*}r¤ (h,]h-]h.]h/]h3]uh j† h7]h(j¢ubeh(jÓubj)r¥ }r¦ (hUh*}r§ (h,]h-]h.]h/]h3]uh j h7]r¨ (j•)r© }rª (hUh*}r« (h,]h-]h.]h/]h3]uh j¥ h7]r¬ hL)r­ }r® (hXRejectr¯ h j© h&h'h(hOh*}r° (h,]h-]h.]h/]h3]uh5Mæh7]r± h@XRejectr² …r³ }r´ (hj¯ h j­ ubaubah(j¢ubj•)rµ }r¶ (hUh*}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 (hUh*}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Í (hUh jÏ h&h'h(jrh*}rÎ (h,]h-]h.]h/]h3]uh5Nh6hh7]rÏ ju)rÐ }rÑ (hUh*}rÒ (h/]h.]h,]h-]h3]UcolsKuh jÌ h7]rÓ (jz)rÔ }rÕ (hUh*}rÖ (h/]h.]h,]h-]h3]UcolwidthK uh jÐ h7]h(j~ubjz)r× }rØ (hUh*}rÙ (h/]h.]h,]h-]h3]UcolwidthK"uh jÐ h7]h(j~ubjz)rÚ }rÛ (hUh*}rÜ (h/]h.]h,]h-]h3]UcolwidthKuh jÐ h7]h(j~ubjÕ)rÝ }rÞ (hUh*}rß (h,]h-]h.]h/]h3]uh jÐ h7]rà (j)rá }râ (hUh*}rã (h,]h-]h.]h/]h3]uh jÝ h7]rä (j•)rå }ræ (hUh*}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@XActionrò …ró }rô (hUh jî ubah(jkubaubah(j¢ubj•)rõ }rö (hUh*}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]rh@XMethodr…r}r(hUh jþ ubah(jkubaubah(j¢ubj•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh já h7]rhL)r }r (hX **Notes**r h jh&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]rh@XNotesr…r}r(hUh jubah(jkubaubah(j¢ubeh(jÓubj)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jÝ h7]r(j•)r}r(hUh*}r(h,]h-]h.]h/]h3]uh jh7]rhL)r}r(hXAddrh jh&h'h(hOh*}r (h,]h-]h.]h/]h3]uh5Mîh7]r!h@XAddr"…r#}r$(hjh jubaubah(j¢ubj•)r%}r&(hUh*}r'(h,]h-]h.]h/]h3]uh jh7]r(hL)r)}r*(hXMNCore.updateSytemMetadata()r+h j%h&h'h(hOh*}r,(h,]h-]h.]h/]h3]uh5Mîh7]r-h@XMNCore.updateSytemMetadata()r.…r/}r0(hj+h j)ubaubah(j¢ubj•)r1}r2(hUh*}r3(h,]h-]h.]h/]h3]uh jh7]r4hL)r5}r6(hXUsing this method nowr7h j1h&h'h(hOh*}r8(h,]h-]h.]h/]h3]uh5Mîh7]r9h@XUsing this method nowr:…r;}r<(hj7h j5ubaubah(j¢ubeh(jÓubeh(jT ubeh(jU ubaubcdocutils.nodes note r=)r>}r?(hXDCJ 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]rBhL)rC}rD(hXDCJ 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?rEh j>h&h'h(hOh*}rF(h,]h-]h.]h/]h3]uh5Mñh7]rGh@XDCJ 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(hjEh jCubaubaubeubh!)rK}rL(hUh j› h&h'h(h)h*}rM(h,]h-]h.]h/]rNUchange-library-implementationsrOah3]rPh auh5Mõh6hh7]rQ(h9)rR}rS(hX!4. Change Library ImplementationsrTh jKh&h'h(h=h*}rU(h,]h-]h.]h/]h3]uh5Mõh6hh7]rVh@X!4. Change Library ImplementationsrW…rX}rY(hjTh jRubaubhL)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 jKh&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 jZubaubeubh!)rb}rc(hUh j› h&h'h(h)h*}rd(h,]h-]h.]h/]reU(change-coordinating-node-implementationsrfah3]rghauh5Múh6hh7]rh(h9)ri}rj(hX+5. Change Coordinating Node Implementationsrkh jbh&h'h(h=h*}rl(h,]h-]h.]h/]h3]uh5Múh6hh7]rmh@X+5. Change Coordinating Node Implementationsrn…ro}rp(hjkh jiubaubhL)rq}rr(hX5.1 New CN Rest Service callsrsh jbh&h'h(hOh*}rt(h,]h-]h.]h/]h3]uh5Müh6hh7]ruh@X5.1 New CN Rest Service callsrv…rw}rx(hjsh jqubaubhL)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 jbh&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 jyubaubhL)r}r‚(hX5.2 MN to CN Synchronizationrƒh jbh&h'h(hOh*}r„(h,]h-]h.]h/]h3]uh5Mh6hh7]r…h@X5.2 MN to CN Synchronizationr†…r‡}rˆ(hjƒh jubaubhL)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 jbh&h'h(hOh*}rŒ(h,]h-]h.]h/]h3]uh5Mh6hh7]rh@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’(hX5.3 MN to MN Replicationr“h jbh&h'h(hOh*}r”(h,]h-]h.]h/]h3]uh5Mh6hh7]r•h@X5.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 jbh&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§(hUh 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 jbh&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 jbh&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@Xversionr¿…rÀ}rÁ(hUh 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@XsmreplicationstatusrÉ…rÊ}rË(hUh 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Ð(hUh 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)rÞ}rß(hXwMember 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@XwMember 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 jÞubaubeubh!)ræ}rç(hUh j› h&h'h(h)h*}rè(h,]h-]h.]h/]réUrelease-and-deploy-new-nodesrêah3]rëhauh5Mh6hh7]rì(h9)rí}rî(hX7. Release and Deploy New Nodesrïh jæh&h'h(h=h*}rð(h,]h-]h.]h/]h3]uh5Mh6hh7]rñh@X7. 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ÿ(hUh jæh&h'h(Uenumerated_listrh*}r(UsuffixrU.h/]h.]h,]UprefixrUh-]h3]UenumtyperUarabicruh5Mh6hh7]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 jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5Mh7]rh@X d1_schemasr…r}r(hj h jubaubaubj)r}r(hX d1_commonrh jþh&h'h(j h*}r(h,]h-]h.]h/]h3]uh5Nh6hh7]rhL)r}r(hjh jh&h'h(hOh*}r(h,]h-]h.]h/]h3]uh5Mh7]rh@X d1_commonr…r}r (hjh jubaubaubj)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.(hXCN implementationsr/h jþh&h'h(j h*}r0(h,]h-]h.]h/]h3]uh5Nh6hh7]r1hL)r2}r3(hj/h j-h&h'h(hOh*}r4(h,]h-]h.]h/]h3]uh5Mh7]r5h@XCN implementationsr6…r7}r8(hj/h j2ubaubaubj)r9}r:(hXMN implementations h jþh&h'h(j h*}r;(h,]h-]h.]h/]h3]uh5Nh6hh7]r<hL)r=}r>(hXMN implementationsr?h j9h&h'h(hOh*}r@(h,]h-]h.]h/]h3]uh5Mh7]rAh@XMN 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.rGh jæh&h'h(hOh*}rH(h,]h-]h.]h/]h3]uh5Mh6hh7]rIh@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(hjGh jEubaubeubeubeubh&h'h(h)h*}rM(h,]h-]h.]h/]rNUexample-documentrOah3]rPhauh5M#h6hh7]rQ(h9)rR}rS(hXExample DocumentrTh h"h&h'h(h=h*}rU(h,]h-]h.]h/]h3]uh5M#h6hh7]rVh@XExample DocumentrW…rX}rY(hjTh jRubaubhL)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 jZubaubeubh&h'h(Usystem_messagerbh*}rc(h,]UlevelKh/]h.]Usourceh'h-]h3]UlineM)UtypeUWARNINGrduh5Nh6hh7]rehL)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]rih@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(hUh jfubah(hOubaubh)rm}rn(hUh*}ro(h,]UlevelKh/]h.]Usourceh'h-]h3]UlineM¤Utypejduh7]rp(hL)rq}rr(hUh*}rs(h,]h-]h.]h/]h3]uh jmh7]rth@XTitle underline too short.ru…rv}rw(hUh jqubah(hOubjv )rx}ry(hX?2. Evaluate DataONE Types Schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h*}rz(jê jë h/]h.]h,]h-]h3]uh jmh7]r{h@X?2. Evaluate DataONE Types Schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~r|…r}}r~(hUh jxubah(jy ubeh(jbubh)r}r€(hUh j1 h&h'h(jbh*}r(h,]UlevelKh/]h.]Usourceh'h-]h3]UlineM¤Utypejduh5M¤h6hh7]r‚(hL)rƒ}r„(hXTitle underline too short.h*}r…(h,]h-]h.]h/]h3]uh jh7]r†h@XTitle underline too short.r‡…rˆ}r‰(hUh jƒubah(hOubjv )rŠ}r‹(hX?2. Evaluate DataONE Types Schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h*}rŒ(jê jë h/]h.]h,]h-]h3]uh jh7]rh@X?2. Evaluate DataONE Types Schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~rŽ…r}r(hUh jŠubah(jy ubeubeUcurrent_sourcer‘NU decorationr’NUautofootnote_startr“KUnameidsr”}r•(hjZ hj¾ hh2h jÓh jŸ h jOh jDh jð hj/ hj– hj5 hjÊ hjfhjêhj hjÍ hjOhjÓ uh7]r–h$ahUU transformerr—NU footnote_refsr˜}r™Urefnamesrš}r›(X types schema]rœjH aj! ]rj auUsymbol_footnotesrž]rŸUautofootnote_refsr ]r¡Usymbol_footnote_refsr¢]r£U citationsr¤]r¥h6hU current_liner¦NUtransform_messagesr§]r¨(h)r©}rª(hUh*}r«(h,]UlevelKh/]h.]Usourceh'h-]h3]UtypeUINFOr¬uh7]r­hL)r®}r¯(hUh*}r°(h,]h-]h.]h/]h3]uh j©h7]r±h@X-Hyperlink target "index-0" is not referenced.r²…r³}r´(hUh j®ubah(hOubah(jbubh)rµ}r¶(hUh*}r·(h,]UlevelKh/]h.]Usourceh'h-]h3]Utypej¬uh7]r¸hL)r¹}rº(hUh*}r»(h,]h-]h.]h/]h3]uh jµh7]r¼h@X-Hyperlink target "index-1" is not referenced.r½…r¾}r¿(hUh j¹ubah(hOubah(jbubeUreporterrÀ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_stylesheetrÞ‰Uoutput_encoding_error_handlerrß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ï‰U source_linkrðNUrfc_referencesrñNUoutput_encodingròUutf-8róU source_urlrôNUinput_encodingrõU utf-8-sigröU_disable_configr÷NU id_prefixrøUU tab_widthrùKUerror_encodingrúUUTF-8rûU_sourcerüh'Ugettext_compactrýˆU generatorrþNUdump_internalsrÿNU smart_quotesr‰U pep_base_urlrU https://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjàUauto_id_prefixrUidrUdoctitle_xformr‰Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr ˆU raw_enabledr KU dump_settingsr NubUsymbol_footnote_startrKUidsr}r(jð jì h1jÉ )r}r(hUh h$h&h'h(jÌ h*}r(h,]h/]rh1ah.]Uismodˆh-]h3]uh5Kh6hh7]ubjfjbjÓ jÏ jjhžh™jOh"jÏ jÑ h2h$j© jª j¾ jº jÍ jÉ jOjKj/ j* jÓjÏjÊ jÆ jŸ j› jZ jV j5 j1 j j jêjæjDj@j– j’ uUsubstitution_namesr}rh(h6h*}r(h,]h/]h.]Usourceh'h-]h3]uU footnotesr]rUrefidsr}r(jÏ ]rjÊ aj© ]rj¦ auub.