€cdocutils.nodes document q)q}q(U nametypesq}q(X!mn running v2 of the api (tier 4)qNX requirementsqNXoverviewqNX scenariosq NX!mn running v1 of the api (tier 1)q NX!mn running v2 of the api (tier 1)q NX!mn running v1 of the api (tier 4)q NX supporting multiple api versionsq NXcontentsqNuUsubstitution_defsq}qUparse_messagesq]q(cdocutils.nodes system_message q)q}q(U rawsourceqUUparentqcdocutils.nodes section q)q}q(hUhh)q}q(hUhhUsourceqXd/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/Versions.txtqUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'U supporting-multiple-api-versionsq(aUnamesq)]q*h auUlineq+KUdocumentq,hUchildrenq-]q.(cdocutils.nodes title q/)q0}q1(hX Supporting multiple API versionsq2hhhhhUtitleq3h!}q4(h&]h%]h#]h$]h)]Urefidq5Uid1q6uh+Kh,hh-]q7cdocutils.nodes Text q8X Supporting multiple API versionsq9…q:}q;(hh2hh0ubaubcsphinx.addnodes index q<)q=}q>(hUhhhhhUindexq?h!}q@(h&]h%]h#]h$]h)]UentriesqA]qB(UsingleqCX versioningUindex-0qDUNtqEaUinlineqF‰uh+Kh,hh-]ubcdocutils.nodes target qG)qH}qI(hUhhhhhUtargetqJh!}qK(h&]h%]h#]h$]h)]h5hDuh+Kh,hh-]ubcdocutils.nodes field_list qL)qM}qN(hUhhhhUexpect_referenced_by_nameqO}hU field_listqPh!}qQ(h#]h$]h%]h&]qRhDah)]uh+Kh,hUexpect_referenced_by_idqS}qThDhHsh-]qUcdocutils.nodes field qV)qW}qX(hUhhMhhhUfieldqYh!}qZ(h#]h$]h%]h&]h)]uh+Kh,hh-]q[(cdocutils.nodes field_name q\)q]}q^(hXDocument Statusq_hhWhhhU field_nameq`h!}qa(h#]h$]h%]h&]h)]uh+Kh-]qbh8XDocument Statusqc…qd}qe(hh_hh]ubaubcdocutils.nodes field_body qf)qg}qh(hX9======== ================================================================== Status Comment ======== ================================================================== DRAFT (leinfelder) Listing scenarios for v1 and v2 interactions. ======== ================================================================== h!}qi(h#]h$]h%]h&]h)]uhhWh-]qjcdocutils.nodes table qk)ql}qm(hUh!}qn(h#]h$]h%]h&]h)]uhhgh-]qocdocutils.nodes tgroup qp)qq}qr(hUh!}qs(h&]h%]h#]h$]h)]UcolsKuhhlh-]qt(cdocutils.nodes colspec qu)qv}qw(hUh!}qx(h&]h%]h#]h$]h)]UcolwidthKuhhqh-]hUcolspecqyubhu)qz}q{(hUh!}q|(h&]h%]h#]h$]h)]UcolwidthKBuhhqh-]hhyubcdocutils.nodes thead q})q~}q(hUh!}q€(h#]h$]h%]h&]h)]uhhqh-]qcdocutils.nodes row q‚)qƒ}q„(hUh!}q…(h#]h$]h%]h&]h)]uhh~h-]q†(cdocutils.nodes entry q‡)qˆ}q‰(hUh!}qŠ(h#]h$]h%]h&]h)]uhhƒh-]q‹cdocutils.nodes paragraph qŒ)q}qŽ(hXStatusqhhˆhhhU paragraphqh!}q‘(h#]h$]h%]h&]h)]uh+K h-]q’h8XStatusq“…q”}q•(hhhhubaubahUentryq–ubh‡)q—}q˜(hUh!}q™(h#]h$]h%]h&]h)]uhhƒh-]qšhŒ)q›}qœ(hXCommentqhh—hhhhh!}qž(h#]h$]h%]h&]h)]uh+K h-]qŸh8XCommentq …q¡}q¢(hhhh›ubaubahh–ubehUrowq£ubahUtheadq¤ubcdocutils.nodes tbody q¥)q¦}q§(hUh!}q¨(h#]h$]h%]h&]h)]uhhqh-]q©h‚)qª}q«(hUh!}q¬(h#]h$]h%]h&]h)]uhh¦h-]q­(h‡)q®}q¯(hUh!}q°(h#]h$]h%]h&]h)]uhhªh-]q±hŒ)q²}q³(hXDRAFTq´hh®hhhhh!}qµ(h#]h$]h%]h&]h)]uh+K h-]q¶h8XDRAFTq·…q¸}q¹(hh´hh²ubaubahh–ubh‡)qº}q»(hUh!}q¼(h#]h$]h%]h&]h)]uhhªh-]q½hŒ)q¾}q¿(hX:(leinfelder) Listing scenarios for v1 and v2 interactions.qÀhhºhhhhh!}qÁ(h#]h$]h%]h&]h)]uh+K h-]qÂh8X:(leinfelder) Listing scenarios for v1 and v2 interactions.qÃ…qÄ}qÅ(hhÀhh¾ubaubahh–ubehh£ubahUtbodyqÆubehUtgroupqÇubahUtableqÈubahU field_bodyqÉubeubaubcdocutils.nodes topic qÊ)qË}qÌ(hUhhhhhUtopicqÍh!}qÎ(h#]h$]qÏUcontentsqÐah%]h&]qÑUcontentsqÒah)]qÓhauh+Kh,hh-]qÔ(h/)qÕ}qÖ(hXContentsh!}q×(h#]h$]h%]h&]h)]uhhËh-]qØh8XContentsqÙ…qÚ}qÛ(hUhhÕubahh3ubcdocutils.nodes bullet_list qÜ)qÝ}qÞ(hUhhËhNhU bullet_listqßh!}qà(h#]h$]h%]h&]h)]uh+Nh,hh-]qácdocutils.nodes list_item qâ)qã}qä(hUh!}qå(h#]h$]h%]h&]h)]uhhÝh-]qæ(hŒ)qç}qè(hUh!}qé(h#]h$]h%]h&]h)]uhhãh-]qêcdocutils.nodes reference që)qì}qí(hUh!}qî(h&]qïh6ah%]h#]h$]h)]Urefidh(uhhçh-]qðh8X Supporting multiple API versionsqñ…qò}qó(hh2hhìubahU referenceqôubahhubhÜ)qõ}qö(hUh!}q÷(h#]h$]h%]h&]h)]uhhãh-]qø(hâ)qù}qú(hUh!}qû(h#]h$]h%]h&]h)]uhhõh-]qühŒ)qý}qþ(hUh!}qÿ(h#]h$]h%]h&]h)]uhhùh-]rhë)r}r(hUh!}r(h&]rUid2rah%]h#]h$]h)]UrefidUoverviewruhhýh-]rh8XOverviewr…r }r (hXOverviewr hjubahhôubahhubahU list_itemr ubhâ)r }r(hUh!}r(h#]h$]h%]h&]h)]uhhõh-]rhŒ)r}r(hUh!}r(h#]h$]h%]h&]h)]uhj h-]rhë)r}r(hUh!}r(h&]rUid3rah%]h#]h$]h)]UrefidU requirementsruhjh-]rh8X Requirementsr…r}r(hX Requirementsrhjubahhôubahhubahj ubhâ)r }r!(hUh!}r"(h#]h$]h%]h&]h)]uhhõh-]r#(hŒ)r$}r%(hUh!}r&(h#]h$]h%]h&]h)]uhj h-]r'hë)r(}r)(hUh!}r*(h&]r+Uid4r,ah%]h#]h$]h)]UrefidU scenariosr-uhj$h-]r.h8X Scenariosr/…r0}r1(hX Scenariosr2hj(ubahhôubahhubhÜ)r3}r4(hUh!}r5(h#]h$]h%]h&]h)]uhj h-]r6(hâ)r7}r8(hUh!}r9(h#]h$]h%]h&]h)]uhj3h-]r:hŒ)r;}r<(hUh!}r=(h#]h$]h%]h&]h)]uhj7h-]r>hë)r?}r@(hUh!}rA(h&]rBUid5rCah%]h#]h$]h)]UrefidUmn-running-v1-of-the-api-tier-1rDuhj;h-]rEh8X!MN running v1 of the API (Tier 1)rF…rG}rH(hX!MN running v1 of the API (Tier 1)rIhj?ubahhôubahhubahj ubhâ)rJ}rK(hUh!}rL(h#]h$]h%]h&]h)]uhj3h-]rMhŒ)rN}rO(hUh!}rP(h#]h$]h%]h&]h)]uhjJh-]rQhë)rR}rS(hUh!}rT(h&]rUUid6rVah%]h#]h$]h)]UrefidUmn-running-v2-of-the-api-tier-1rWuhjNh-]rXh8X!MN running v2 of the API (Tier 1)rY…rZ}r[(hX!MN running v2 of the API (Tier 1)r\hjRubahhôubahhubahj ubhâ)r]}r^(hUh!}r_(h#]h$]h%]h&]h)]uhj3h-]r`hŒ)ra}rb(hUh!}rc(h#]h$]h%]h&]h)]uhj]h-]rdhë)re}rf(hUh!}rg(h&]rhUid7riah%]h#]h$]h)]UrefidUmn-running-v1-of-the-api-tier-4rjuhjah-]rkh8X!MN running v1 of the API (Tier 4)rl…rm}rn(hX!MN running v1 of the API (Tier 4)rohjeubahhôubahhubahj ubhâ)rp}rq(hUh!}rr(h#]h$]h%]h&]h)]uhj3h-]rshŒ)rt}ru(hUh!}rv(h#]h$]h%]h&]h)]uhjph-]rwhë)rx}ry(hUh!}rz(h&]r{Uid8r|ah%]h#]h$]h)]UrefidUmn-running-v2-of-the-api-tier-4r}uhjth-]r~h8X!MN running v2 of the API (Tier 4)r…r€}r(hX!MN running v2 of the API (Tier 4)r‚hjxubahhôubahhubahj ubehhßubehj ubehhßubehj ubaubeubh)rƒ}r„(hUhhhhhh h!}r…(h#]h$]h%]h&]r†jah)]r‡hauh+Kh,hh-]rˆ(h/)r‰}rŠ(hj hjƒhhhh3h!}r‹(h&]h%]h#]h$]h)]h5juh+Kh,hh-]rŒh8XOverviewr…rŽ}r(hj hj‰ubaubhŒ)r}r‘(hXñIn order to accommodate changes to the the SystemMetadata type, new API methods will be introduced. Many existing v1 methods will have the same signatures but any method that deals with the SystemMetadata type will need to have a v2 version.r’hjƒhhhhh!}r“(h#]h$]h%]h&]h)]uh+Kh,hh-]r”h8XñIn order to accommodate changes to the the SystemMetadata type, new API methods will be introduced. Many existing v1 methods will have the same signatures but any method that deals with the SystemMetadata type will need to have a v2 version.r•…r–}r—(hj’hjubaubeubhh)r˜}r™(hUhhhhhh h!}rš(h#]h$]h%]h&]r›j-ah)]rœh auh+K"h,hh-]r(h/)rž}rŸ(hj2hj˜hhhh3h!}r (h&]h%]h#]h$]h)]h5j,uh+K"h,hh-]r¡h8X Scenariosr¢…r£}r¤(hj2hjžubaubh)r¥}r¦(hUhj˜hhhh h!}r§(h#]h$]h%]h&]r¨jDah)]r©h auh+K%h,hh-]rª(h/)r«}r¬(hjIhj¥hhhh3h!}r­(h&]h%]h#]h$]h)]h5jCuh+K%h,hh-]r®h8X!MN running v1 of the API (Tier 1)r¯…r°}r±(hjIhj«ubaubhŒ)r²}r³(hX# MN.v1.create() # Synchr´hj¥hhhhh!}rµ(h#]h$]h%]h&]h)]uh+K&h,hh-]r¶h8X# MN.v1.create() # Synchr·…r¸}r¹(hj´hj²ubaubcdocutils.nodes block_quote rº)r»}r¼(hUhj¥hNhU block_quoter½h!}r¾(h#]h$]h%]h&]h)]uh+Nh,hh-]r¿hÜ)rÀ}rÁ(hUh!}rÂ(UbulletrÃX*h&]h%]h#]h$]h)]uhj»h-]rÄ(hâ)rÅ}rÆ(hXMN.v1.listOjects()rÇh!}rÈ(h#]h$]h%]h&]h)]uhjÀh-]rÉhŒ)rÊ}rË(hjÇhjÅhhhhh!}rÌ(h#]h$]h%]h&]h)]uh+K(h-]rÍh8XMN.v1.listOjects()rÎ…rÏ}rÐ(hjÇhjÊubaubahj ubhâ)rÑ}rÒ(hXCN.v1.create()rÓh!}rÔ(h#]h$]h%]h&]h)]uhjÀh-]rÕhŒ)rÖ}r×(hjÓhjÑhhhhh!}rØ(h#]h$]h%]h&]h)]uh+K)h-]rÙh8XCN.v1.create()rÚ…rÛ}rÜ(hjÓhjÖubaubahj ubehhßubaubcdocutils.nodes definition_list rÝ)rÞ}rß(hUhj¥hNhUdefinition_listràh!}rá(h#]h$]h%]h&]h)]uh+Nh,hh-]râcdocutils.nodes definition_list_item rã)rä}rå(hX¹# Valid getSystemMetadata() calls * CN.v2.getSystemMetadata() --> v2.SystemMetadata * CN.v1.getSystemMetadata() --> v1.SystemMetadata * MN.v1.getSystemMetadata() --> v1.SystemMetadata hjÞhhhUdefinition_list_itemræh!}rç(h#]h$]h%]h&]h)]uh+K.h-]rè(cdocutils.nodes term ré)rê}rë(hX!# Valid getSystemMetadata() callsrìhjähhhUtermríh!}rî(h#]h$]h%]h&]h)]uh+K.h-]rïh8X!# Valid getSystemMetadata() callsrð…rñ}rò(hjìhjêubaubcdocutils.nodes definition ró)rô}rõ(hUh!}rö(h#]h$]h%]h&]h)]uhjäh-]r÷hÜ)rø}rù(hUh!}rú(jÃX*h&]h%]h#]h$]h)]uhjôh-]rû(hâ)rü}rý(hX/CN.v2.getSystemMetadata() --> v2.SystemMetadatarþh!}rÿ(h#]h$]h%]h&]h)]uhjøh-]rhŒ)r}r(hjþhjühhhhh!}r(h#]h$]h%]h&]h)]uh+K+h-]rh8X/CN.v2.getSystemMetadata() --> v2.SystemMetadatar…r}r(hjþhjubaubahj ubhâ)r}r (hX/CN.v1.getSystemMetadata() --> v1.SystemMetadatar h!}r (h#]h$]h%]h&]h)]uhjøh-]r hŒ)r }r(hj hjhhhhh!}r(h#]h$]h%]h&]h)]uh+K,h-]rh8X/CN.v1.getSystemMetadata() --> v1.SystemMetadatar…r}r(hj hj ubaubahj ubhâ)r}r(hX1MN.v1.getSystemMetadata() --> v1.SystemMetadata h!}r(h#]h$]h%]h&]h)]uhjøh-]rhŒ)r}r(hX/MN.v1.getSystemMetadata() --> v1.SystemMetadatarhjhhhhh!}r(h#]h$]h%]h&]h)]uh+K-h-]rh8X/MN.v1.getSystemMetadata() --> v1.SystemMetadatar…r}r(hjhjubaubahj ubehhßubahU definitionr ubeubaubeubh)r!}r"(hUhj˜hhhh h!}r#(h#]h$]h%]h&]r$jWah)]r%h auh+K1h,hh-]r&(h/)r'}r((hj\hj!hhhh3h!}r)(h&]h%]h#]h$]h)]h5jVuh+K1h,hh-]r*h8X!MN running v2 of the API (Tier 1)r+…r,}r-(hj\hj'ubaubhŒ)r.}r/(hX# MN.v2.create() # Synchr0hj!hhhhh!}r1(h#]h$]h%]h&]h)]uh+K2h,hh-]r2h8X# MN.v2.create() # Synchr3…r4}r5(hj0hj.ubaubjº)r6}r7(hUhj!hNhj½h!}r8(h#]h$]h%]h&]h)]uh+Nh,hh-]r9hÜ)r:}r;(hUh!}r<(jÃX*h&]h%]h#]h$]h)]uhj6h-]r=(hâ)r>}r?(hXMN.v2.listOjects()r@h!}rA(h#]h$]h%]h&]h)]uhj:h-]rBhŒ)rC}rD(hj@hj>hhhhh!}rE(h#]h$]h%]h&]h)]uh+K4h-]rFh8XMN.v2.listOjects()rG…rH}rI(hj@hjCubaubahj ubhâ)rJ}rK(hXCN.v2.create()rLh!}rM(h#]h$]h%]h&]h)]uhj:h-]rNhŒ)rO}rP(hjLhjJhhhhh!}rQ(h#]h$]h%]h&]h)]uh+K5h-]rRh8XCN.v2.create()rS…rT}rU(hjLhjOubaubahj ubehhßubaubjÝ)rV}rW(hUhj!hNhjàh!}rX(h#]h$]h%]h&]h)]uh+Nh,hh-]rYjã)rZ}r[(hXë# Valid getSystemMetadata() calls * CN.v2.getSystemMetadata() --> v2.SystemMetadata * MN.v2.getSystemMetadata() --> v2.SystemMetadata * CN.v1.getSystemMetadata() --> v1.SystemMetadata * MN.v1.getSystemMetadata() --> v1.SystemMetadata hjVhhhjæh!}r\(h#]h$]h%]h&]h)]uh+K;h-]r](jé)r^}r_(hX!# Valid getSystemMetadata() callsr`hjZhhhjíh!}ra(h#]h$]h%]h&]h)]uh+K;h-]rbh8X!# Valid getSystemMetadata() callsrc…rd}re(hj`hj^ubaubjó)rf}rg(hUh!}rh(h#]h$]h%]h&]h)]uhjZh-]rihÜ)rj}rk(hUh!}rl(jÃX*h&]h%]h#]h$]h)]uhjfh-]rm(hâ)rn}ro(hX/CN.v2.getSystemMetadata() --> v2.SystemMetadatarph!}rq(h#]h$]h%]h&]h)]uhjjh-]rrhŒ)rs}rt(hjphjnhhhhh!}ru(h#]h$]h%]h&]h)]uh+K7h-]rvh8X/CN.v2.getSystemMetadata() --> v2.SystemMetadatarw…rx}ry(hjphjsubaubahj ubhâ)rz}r{(hX/MN.v2.getSystemMetadata() --> v2.SystemMetadatar|h!}r}(h#]h$]h%]h&]h)]uhjjh-]r~hŒ)r}r€(hj|hjzhhhhh!}r(h#]h$]h%]h&]h)]uh+K8h-]r‚h8X/MN.v2.getSystemMetadata() --> v2.SystemMetadatarƒ…r„}r…(hj|hjubaubahj ubhâ)r†}r‡(hX/CN.v1.getSystemMetadata() --> v1.SystemMetadatarˆh!}r‰(h#]h$]h%]h&]h)]uhjjh-]rŠhŒ)r‹}rŒ(hjˆhj†hhhhh!}r(h#]h$]h%]h&]h)]uh+K9h-]rŽh8X/CN.v1.getSystemMetadata() --> v1.SystemMetadatar…r}r‘(hjˆhj‹ubaubahj ubhâ)r’}r“(hX1MN.v1.getSystemMetadata() --> v1.SystemMetadata h!}r”(h#]h$]h%]h&]h)]uhjjh-]r•hŒ)r–}r—(hX/MN.v1.getSystemMetadata() --> v1.SystemMetadatar˜hj’hhhhh!}r™(h#]h$]h%]h&]h)]uh+K:h-]ršh8X/MN.v1.getSystemMetadata() --> v1.SystemMetadatar›…rœ}r(hj˜hj–ubaubahj ubehhßubahj ubeubaubeubh)rž}rŸ(hUhj˜hhhh h!}r (h#]h$]h%]h&]r¡jjah)]r¢h auh+K>h,hh-]r£(h/)r¤}r¥(hjohjžhhhh3h!}r¦(h&]h%]h#]h$]h)]h5jiuh+K>h,hh-]r§h8X!MN running v1 of the API (Tier 4)r¨…r©}rª(hjohj¤ubaubhŒ)r«}r¬(hX# MN.v1.create() # Synchr­hjžhhhhh!}r®(h#]h$]h%]h&]h)]uh+K?h,hh-]r¯h8X# MN.v1.create() # Synchr°…r±}r²(hj­hj«ubaubjº)r³}r´(hUhjžhNhj½h!}rµ(h#]h$]h%]h&]h)]uh+Nh,hh-]r¶hÜ)r·}r¸(hUh!}r¹(jÃX*h&]h%]h#]h$]h)]uhj³h-]rº(hâ)r»}r¼(hXMN.v1.listOjects()r½h!}r¾(h#]h$]h%]h&]h)]uhj·h-]r¿hŒ)rÀ}rÁ(hj½hj»hhhhh!}rÂ(h#]h$]h%]h&]h)]uh+KAh-]rÃh8XMN.v1.listOjects()rÄ…rÅ}rÆ(hj½hjÀubaubahj ubhâ)rÇ}rÈ(hXCN.[v1|v2].create()rÉh!}rÊ(h#]h$]h%]h&]h)]uhj·h-]rËhŒ)rÌ}rÍ(hjÉhjÇhhhhh!}rÎ(h#]h$]h%]h&]h)]uh+KBh-]rÏh8XCN.[v1|v2].create()rÐ…rÑ}rÒ(hjÉhjÌubaubahj ubehhßubaubjÝ)rÓ}rÔ(hUhjžhNhjàh!}rÕ(h#]h$]h%]h&]h)]uh+Nh,hh-]rÖ(jã)r×}rØ(hX©# Valid get() calls * CN.v2.getSystemMetadata() --> v2.SystemMetadata * CN.v1.getSystemMetadata() --> v1.SystemMetadata * MN.v1.getSystemMetadata() --> v1.SystemMetadatahjÓhhhjæh!}rÙ(h#]h$]h%]h&]h)]uh+KEh-]rÚ(jé)rÛ}rÜ(hX# Valid get() callsrÝhj×hhhjíh!}rÞ(h#]h$]h%]h&]h)]uh+KEh-]rßh8X# Valid get() callsrà…rá}râ(hjÝhjÛubaubjó)rã}rä(hUh!}rå(h#]h$]h%]h&]h)]uhj×h-]ræhÜ)rç}rè(hUh!}ré(jÃX*h&]h%]h#]h$]h)]uhjãh-]rê(hâ)rë}rì(hX/CN.v2.getSystemMetadata() --> v2.SystemMetadataríh!}rî(h#]h$]h%]h&]h)]uhjçh-]rïhŒ)rð}rñ(hjíhjëhhhhh!}rò(h#]h$]h%]h&]h)]uh+KDh-]róh8X/CN.v2.getSystemMetadata() --> v2.SystemMetadatarô…rõ}rö(hjíhjðubaubahj ubhâ)r÷}rø(hX/CN.v1.getSystemMetadata() --> v1.SystemMetadatarùh!}rú(h#]h$]h%]h&]h)]uhjçh-]rûhŒ)rü}rý(hjùhj÷hhhhh!}rþ(h#]h$]h%]h&]h)]uh+KEh-]rÿh8X/CN.v1.getSystemMetadata() --> v1.SystemMetadatar…r}r(hjùhjüubaubahj ubhâ)r}r(hX/MN.v1.getSystemMetadata() --> v1.SystemMetadatarh!}r(h#]h$]h%]h&]h)]uhjçh-]rhŒ)r}r (hjhjhhhhh!}r (h#]h$]h%]h&]h)]uh+KFh-]r h8X/MN.v1.getSystemMetadata() --> v1.SystemMetadatar …r }r(hjhjubaubahj ubehhßubahj ubeubjã)r}r(hXy# Replication to MN.target1 running v1 API * MN.v1.getReplica() * MN.target1.v1.getSystemMetadata() --> v1.SystemMetadatahjÓhhhjæh!}r(h#]h$]h%]h&]h)]uh+KHh,hh-]r(jé)r}r(hX*# Replication to MN.target1 running v1 APIrhjhhhjíh!}r(h#]h$]h%]h&]h)]uh+KHh-]rh8X*# Replication to MN.target1 running v1 APIr…r}r(hjhjubaubjó)r}r(hUh!}r(h#]h$]h%]h&]h)]uhjh-]rhÜ)r}r (hUh!}r!(jÃX*h&]h%]h#]h$]h)]uhjh-]r"(hâ)r#}r$(hXMN.v1.getReplica()r%h!}r&(h#]h$]h%]h&]h)]uhjh-]r'hŒ)r(}r)(hj%hj#hhhhh!}r*(h#]h$]h%]h&]h)]uh+KHh-]r+h8XMN.v1.getReplica()r,…r-}r.(hj%hj(ubaubahj ubhâ)r/}r0(hX7MN.target1.v1.getSystemMetadata() --> v1.SystemMetadatar1h!}r2(h#]h$]h%]h&]h)]uhjh-]r3hŒ)r4}r5(hj1hj/hhhhh!}r6(h#]h$]h%]h&]h)]uh+KIh-]r7h8X7MN.target1.v1.getSystemMetadata() --> v1.SystemMetadatar8…r9}r:(hj1hj4ubaubahj ubehhßubahj ubeubjã)r;}r<(hX³# Replication to MN.target2 running v2 API * MN.v1.getReplica() * MN.target2.v1.getSystemMetadata() --> v1.SystemMetadata * MN.target2.v2.getSystemMetadata() --> v2.SystemMetadatahjÓhhhjæh!}r=(h#]h$]h%]h&]h)]uh+KLh,hh-]r>(jé)r?}r@(hX*# Replication to MN.target2 running v2 APIrAhj;hhhjíh!}rB(h#]h$]h%]h&]h)]uh+KLh-]rCh8X*# Replication to MN.target2 running v2 APIrD…rE}rF(hjAhj?ubaubjó)rG}rH(hUh!}rI(h#]h$]h%]h&]h)]uhj;h-]rJhÜ)rK}rL(hUh!}rM(jÃX*h&]h%]h#]h$]h)]uhjGh-]rN(hâ)rO}rP(hXMN.v1.getReplica()rQh!}rR(h#]h$]h%]h&]h)]uhjKh-]rShŒ)rT}rU(hjQhjOhhhhh!}rV(h#]h$]h%]h&]h)]uh+KKh-]rWh8XMN.v1.getReplica()rX…rY}rZ(hjQhjTubaubahj ubhâ)r[}r\(hX7MN.target2.v1.getSystemMetadata() --> v1.SystemMetadatar]h!}r^(h#]h$]h%]h&]h)]uhjKh-]r_hŒ)r`}ra(hj]hj[hhhhh!}rb(h#]h$]h%]h&]h)]uh+KLh-]rch8X7MN.target2.v1.getSystemMetadata() --> v1.SystemMetadatard…re}rf(hj]hj`ubaubahj ubhâ)rg}rh(hX7MN.target2.v2.getSystemMetadata() --> v2.SystemMetadatarih!}rj(h#]h$]h%]h&]h)]uhjKh-]rkhŒ)rl}rm(hjihjghhhhh!}rn(h#]h$]h%]h&]h)]uh+KMh-]roh8X7MN.target2.v2.getSystemMetadata() --> v2.SystemMetadatarp…rq}rr(hjihjlubaubahj ubehhßubahj ubeubjã)rs}rt(hX$# Updates * CN.v1.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged() * CN.v1.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged() * CN.v2.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged() ALLOWED? * CN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged() hjÓhhhjæh!}ru(h#]h$]h%]h&]h)]uh+KSh,hh-]rv(jé)rw}rx(hX # Updatesryhjshhhjíh!}rz(h#]h$]h%]h&]h)]uh+KSh-]r{h8X # Updatesr|…r}}r~(hjyhjwubaubjó)r}r€(hUh!}r(h#]h$]h%]h&]h)]uhjsh-]r‚hÜ)rƒ}r„(hUh!}r…(jÃX*h&]h%]h#]h$]h)]uhjh-]r†(hâ)r‡}rˆ(hXACN.v1.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged()r‰h!}rŠ(h#]h$]h%]h&]h)]uhjƒh-]r‹hŒ)rŒ}r(hj‰hj‡hhhhh!}rŽ(h#]h$]h%]h&]h)]uh+KOh-]rh8XACN.v1.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged()r…r‘}r’(hj‰hjŒubaubahj ubhâ)r“}r”(hXACN.v1.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()r•h!}r–(h#]h$]h%]h&]h)]uhjƒh-]r—hŒ)r˜}r™(hj•hj“hhhhh!}rš(h#]h$]h%]h&]h)]uh+KPh-]r›h8XACN.v1.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()rœ…r}rž(hj•hj˜ubaubahj ubhâ)rŸ}r (hXJCN.v2.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged() ALLOWED?r¡h!}r¢(h#]h$]h%]h&]h)]uhjƒh-]r£hŒ)r¤}r¥(hj¡hjŸhhhhh!}r¦(h#]h$]h%]h&]h)]uh+KQh-]r§h8XJCN.v2.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged() ALLOWED?r¨…r©}rª(hj¡hj¤ubaubahj ubhâ)r«}r¬(hXCCN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged() h!}r­(h#]h$]h%]h&]h)]uhjƒh-]r®hŒ)r¯}r°(hXACN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()r±hj«hhhhh!}r²(h#]h$]h%]h&]h)]uh+KRh-]r³h8XACN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()r´…rµ}r¶(hj±hj¯ubaubahj ubehhßubahj ubeubeubcdocutils.nodes figure r·)r¸}r¹(hUhjžhhhUfigurerºh!}r»(h#]h$]h%]h&]h)]uh+KVh,hh-]r¼cdocutils.nodes image r½)r¾}r¿(hX#.. figure:: images/versions_01.png hj¸hhhUimagerÀh!}rÁ(UuriXdesign/images/versions_01.pngrÂh&]h%]h#]h$]U candidatesrÃ}rÄU*jÂsh)]uh+KVh-]ubaubhŒ)rÅ}rÆ(hX@**Figure 1.** Mixed MN API version interactions with replicationrÇhjžhhhhh!}rÈ(h#]h$]h%]h&]h)]uh+KWh,hh-]rÉ(cdocutils.nodes strong rÊ)rË}rÌ(hX **Figure 1.**h!}rÍ(h#]h$]h%]h&]h)]uhjÅh-]rÎh8X Figure 1.rÏ…rÐ}rÑ(hUhjËubahUstrongrÒubh8X3 Mixed MN API version interactions with replicationrÓ…rÔ}rÕ(hX3 Mixed MN API version interactions with replicationhjÅubeubcdocutils.nodes comment rÖ)r×}rØ(hX@startuml images/versions_01.png title Replicate content across mixed API versions (authMN.v1) participant "User" as client participant "MN.v1" as MN participant "MN.target.v1" as MN.target.v1 participant "MN.target.v2" as MN.target.v2 participant "CN" as CN group Create, Synch, Read 'create content on the MN client -> MN: v1.create() 'Synchronize on the CN CN -> MN: v1.listObjects() CN -> CN: v1.create() 'Retrieve objects client --> MN: v1.getSystemMetadata() client <-- MN: v1.SystemMetadata client --> CN: v1.getSystemMetadata() client <-- CN: v1.SystemMetadata client --> CN: v2.getSystemMetadata() client <-- CN: v2.SystemMetadata end ... group Replicate 'replicate to a v1 MN CN -> MN.target.v1: v1.replicate() MN.target.v1 -> MN: v1.getReplica() client --> MN.target.v1: v1.getSystemMetadata() client <-- MN.target.v1: v1.SystemMetadata 'replicate to a v2 MN CN -> MN.target.v2: v1.replicate() MN.target.v2 -> MN: v1.getReplica() client --> MN.target.v2: v1.getSystemMetadata() client <-- MN.target.v2: v1.SystemMetadata client --> MN.target.v2: v2.getSystemMetadata() client <-- MN.target.v2: v2.SystemMetadata end ... group Update 'update the access policy client -> CN: v1.setAccessPolicy() CN -> MN.target.v1: v1.systemMetadataChanged() MN.target.v1 -> CN: v1.getSystemMetadata() MN.target.v1 <- CN: v1.SystemMetadata CN -> MN.target.v2: v1.systemMetadataChanged() MN.target.v2 -> CN: v1.getSystemMetadata() MN.target.v2 <- CN: v1.SystemMetadata end @endumlhjžhhhUcommentrÙh!}rÚ(U xml:spacerÛUpreserverÜh&]h%]h#]h$]h)]uh+Kh,hh-]rÝh8X@startuml images/versions_01.png title Replicate content across mixed API versions (authMN.v1) participant "User" as client participant "MN.v1" as MN participant "MN.target.v1" as MN.target.v1 participant "MN.target.v2" as MN.target.v2 participant "CN" as CN group Create, Synch, Read 'create content on the MN client -> MN: v1.create() 'Synchronize on the CN CN -> MN: v1.listObjects() CN -> CN: v1.create() 'Retrieve objects client --> MN: v1.getSystemMetadata() client <-- MN: v1.SystemMetadata client --> CN: v1.getSystemMetadata() client <-- CN: v1.SystemMetadata client --> CN: v2.getSystemMetadata() client <-- CN: v2.SystemMetadata end ... group Replicate 'replicate to a v1 MN CN -> MN.target.v1: v1.replicate() MN.target.v1 -> MN: v1.getReplica() client --> MN.target.v1: v1.getSystemMetadata() client <-- MN.target.v1: v1.SystemMetadata 'replicate to a v2 MN CN -> MN.target.v2: v1.replicate() MN.target.v2 -> MN: v1.getReplica() client --> MN.target.v2: v1.getSystemMetadata() client <-- MN.target.v2: v1.SystemMetadata client --> MN.target.v2: v2.getSystemMetadata() client <-- MN.target.v2: v2.SystemMetadata end ... group Update 'update the access policy client -> CN: v1.setAccessPolicy() CN -> MN.target.v1: v1.systemMetadataChanged() MN.target.v1 -> CN: v1.getSystemMetadata() MN.target.v1 <- CN: v1.SystemMetadata CN -> MN.target.v2: v1.systemMetadataChanged() MN.target.v2 -> CN: v1.getSystemMetadata() MN.target.v2 <- CN: v1.SystemMetadata end @endumlrÞ…rß}rà(hUhj×ubaubeubh)rá}râ(hUhj˜hhhh h!}rã(h#]h$]h%]h&]räj}ah)]råhauh+K‘h,hh-]ræ(h/)rç}rè(hj‚hjáhhhh3h!}ré(h&]h%]h#]h$]h)]h5j|uh+K‘h,hh-]rêh8X!MN running v2 of the API (Tier 4)rë…rì}rí(hj‚hjçubaubhŒ)rî}rï(hX# MN.v2.create() # Synchrðhjáhhhhh!}rñ(h#]h$]h%]h&]h)]uh+K’h,hh-]ròh8X# MN.v2.create() # Synchró…rô}rõ(hjðhjîubaubjº)rö}r÷(hUhjáhNhj½h!}rø(h#]h$]h%]h&]h)]uh+Nh,hh-]rùhÜ)rú}rû(hUh!}rü(jÃX*h&]h%]h#]h$]h)]uhjöh-]rý(hâ)rþ}rÿ(hXMN.v1.listOjects()rh!}r(h#]h$]h%]h&]h)]uhjúh-]rhŒ)r}r(hjhjþhhhhh!}r(h#]h$]h%]h&]h)]uh+K”h-]rh8XMN.v1.listOjects()r…r}r (hjhjubaubahj ubhâ)r }r (hXCN.[v1|v2].create()r h!}r (h#]h$]h%]h&]h)]uhjúh-]rhŒ)r}r(hj hj hhhhh!}r(h#]h$]h%]h&]h)]uh+K•h-]rh8XCN.[v1|v2].create()r…r}r(hj hjubaubahj ubehhßubaubjÝ)r}r(hUhjáhNhjàh!}r(h#]h$]h%]h&]h)]uh+Nh,hh-]r(jã)r}r(hX©# Valid get() calls * CN.v2.getSystemMetadata() --> v2.SystemMetadata * CN.v1.getSystemMetadata() --> v1.SystemMetadata * MN.v1.getSystemMetadata() --> v1.SystemMetadatahjhhhjæh!}r(h#]h$]h%]h&]h)]uh+K˜h-]r(jé)r}r(hX# Valid get() callsr hjhhhjíh!}r!(h#]h$]h%]h&]h)]uh+K˜h-]r"h8X# Valid get() callsr#…r$}r%(hj hjubaubjó)r&}r'(hUh!}r((h#]h$]h%]h&]h)]uhjh-]r)hÜ)r*}r+(hUh!}r,(jÃX*h&]h%]h#]h$]h)]uhj&h-]r-(hâ)r.}r/(hX/CN.v2.getSystemMetadata() --> v2.SystemMetadatar0h!}r1(h#]h$]h%]h&]h)]uhj*h-]r2hŒ)r3}r4(hj0hj.hhhhh!}r5(h#]h$]h%]h&]h)]uh+K—h-]r6h8X/CN.v2.getSystemMetadata() --> v2.SystemMetadatar7…r8}r9(hj0hj3ubaubahj ubhâ)r:}r;(hX/CN.v1.getSystemMetadata() --> v1.SystemMetadatar<h!}r=(h#]h$]h%]h&]h)]uhj*h-]r>hŒ)r?}r@(hj<hj:hhhhh!}rA(h#]h$]h%]h&]h)]uh+K˜h-]rBh8X/CN.v1.getSystemMetadata() --> v1.SystemMetadatarC…rD}rE(hj<hj?ubaubahj ubhâ)rF}rG(hX/MN.v1.getSystemMetadata() --> v1.SystemMetadatarHh!}rI(h#]h$]h%]h&]h)]uhj*h-]rJhŒ)rK}rL(hjHhjFhhhhh!}rM(h#]h$]h%]h&]h)]uh+K™h-]rNh8X/MN.v1.getSystemMetadata() --> v1.SystemMetadatarO…rP}rQ(hjHhjKubaubahj ubehhßubahj ubeubjã)rR}rS(hX7# Replication to MN.target running v1 API * NOT ALLOWEDhjhhhjæh!}rT(h#]h$]h%]h&]h)]uh+Kšh,hh-]rU(jé)rV}rW(hX)# Replication to MN.target running v1 APIrXhjRhhhjíh!}rY(h#]h$]h%]h&]h)]uh+Kšh-]rZh8X)# Replication to MN.target running v1 APIr[…r\}r](hjXhjVubaubjó)r^}r_(hUh!}r`(h#]h$]h%]h&]h)]uhjRh-]rahÜ)rb}rc(hUh!}rd(jÃX*h&]h%]h#]h$]h)]uhj^h-]rehâ)rf}rg(hX NOT ALLOWEDrhh!}ri(h#]h$]h%]h&]h)]uhjbh-]rjhŒ)rk}rl(hjhhjfhhhhh!}rm(h#]h$]h%]h&]h)]uh+K›h-]rnh8X NOT ALLOWEDro…rp}rq(hjhhjkubaubahj ubahhßubahj ubeubjã)rr}rs(hX²# Replication to MN.target running v2 API * MN.v1.getReplica() * MN.target.v1.getSystemMetadata() --> v1.SystemMetadata * MN.target.v2.getSystemMetadata() --> v2.SystemMetadata hjhhhjæh!}rt(h#]h$]h%]h&]h)]uh+K h,hh-]ru(jé)rv}rw(hX)# Replication to MN.target running v2 APIrxhjrhhhjíh!}ry(h#]h$]h%]h&]h)]uh+K h-]rzh8X)# Replication to MN.target running v2 APIr{…r|}r}(hjxhjvubaubjó)r~}r(hUh!}r€(h#]h$]h%]h&]h)]uhjrh-]rhÜ)r‚}rƒ(hUh!}r„(jÃX*h&]h%]h#]h$]h)]uhj~h-]r…(hâ)r†}r‡(hXMN.v1.getReplica()rˆh!}r‰(h#]h$]h%]h&]h)]uhj‚h-]rŠhŒ)r‹}rŒ(hjˆhj†hhhhh!}r(h#]h$]h%]h&]h)]uh+Kh-]rŽh8XMN.v1.getReplica()r…r}r‘(hjˆhj‹ubaubahj ubhâ)r’}r“(hX6MN.target.v1.getSystemMetadata() --> v1.SystemMetadatar”h!}r•(h#]h$]h%]h&]h)]uhj‚h-]r–hŒ)r—}r˜(hj”hj’hhhhh!}r™(h#]h$]h%]h&]h)]uh+Kžh-]ršh8X6MN.target.v1.getSystemMetadata() --> v1.SystemMetadatar›…rœ}r(hj”hj—ubaubahj ubhâ)rž}rŸ(hX8MN.target.v2.getSystemMetadata() --> v2.SystemMetadata h!}r (h#]h$]h%]h&]h)]uhj‚h-]r¡hŒ)r¢}r£(hX6MN.target.v2.getSystemMetadata() --> v2.SystemMetadatar¤hjžhhhhh!}r¥(h#]h$]h%]h&]h)]uh+KŸh-]r¦h8X6MN.target.v2.getSystemMetadata() --> v2.SystemMetadatar§…r¨}r©(hj¤hj¢ubaubahj ubehhßubahj ubeubeubj·)rª}r«(hUhjáhhhjºh!}r¬(h#]h$]h%]h&]h)]uh+K£h,hh-]r­j½)r®}r¯(hX#.. figure:: images/versions_02.png hjªhhhjÀh!}r°(UuriXdesign/images/versions_02.pngr±h&]h%]h#]h$]jÃ}r²U*j±sh)]uh+K£h-]ubaubhŒ)r³}r´(hXi**Figure 2.** Mixed MN API version interactions with replication The original MN is running v2 of the APIhjáhhhhh!}rµ(h#]h$]h%]h&]h)]uh+K¤h,hh-]r¶(jÊ)r·}r¸(hX **Figure 2.**h!}r¹(h#]h$]h%]h&]h)]uhj³h-]rºh8X Figure 2.r»…r¼}r½(hUhj·ubahjÒubh8X\ Mixed MN API version interactions with replication The original MN is running v2 of the APIr¾…r¿}rÀ(hX\ Mixed MN API version interactions with replication The original MN is running v2 of the APIhj³ubeubjÖ)rÁ}rÂ(hX @startuml images/versions_02.png title Replicate content across mixed API versions (authMN.v2) participant "User" as client participant "MN.v2" as MN participant "MN.target.v1" as MN.target.v1 participant "MN.target.v2" as MN.target.v2 participant "CN" as CN group Create, Synch, Read 'create content on the MN client -> MN: create() 'Synchronize on the CN CN -> MN: v2.listObjects() CN -> CN: v2.create() ... 'Retrieve objects client --> MN: v1.getSystemMetadata() client <-- MN: v1.SystemMetadata client --> MN: v2.getSystemMetadata() client <-- MN: v2.SystemMetadata client --> CN: v1.getSystemMetadata() client <-- CN: v1.SystemMetadata client --> CN: v2.getSystemMetadata() client <-- CN: v2.SystemMetadata end ... group Replicate CN -> MN.target.v2: v2.replicate() MN.target.v2 -> MN: v2.getReplica() client --> MN.target.v2: v1.getSystemMetadata() client <-- MN.target.v2: v1.SystemMetadata client --> MN.target.v2: v2.getSystemMetadata() client <-- MN.target.v2: v2.SystemMetadata CN --> MN.target.v1: v1.replicate() NOT ALLOWED end ... group Update 'update the access policy using v1 client -> CN: v1.setAccessPolicy() CN -> MN.target.v2: v1.systemMetadataChanged() MN.target.v2 -> CN: v1.getSystemMetadata() MN.target.v2 <- CN: v1.SystemMetadata ... 'update the access policy using v2 client -> CN: v2.setAccessPolicy() CN -> MN.target.v2: v2.systemMetadataChanged() MN.target.v2 -> CN: v2.getSystemMetadata() MN.target.v2 <- CN: v2.SystemMetadata end @endumlhjáhhhjÙh!}rÃ(jÛjÜh&]h%]h#]h$]h)]uh+KÚh,hh-]rÄh8X @startuml images/versions_02.png title Replicate content across mixed API versions (authMN.v2) participant "User" as client participant "MN.v2" as MN participant "MN.target.v1" as MN.target.v1 participant "MN.target.v2" as MN.target.v2 participant "CN" as CN group Create, Synch, Read 'create content on the MN client -> MN: create() 'Synchronize on the CN CN -> MN: v2.listObjects() CN -> CN: v2.create() ... 'Retrieve objects client --> MN: v1.getSystemMetadata() client <-- MN: v1.SystemMetadata client --> MN: v2.getSystemMetadata() client <-- MN: v2.SystemMetadata client --> CN: v1.getSystemMetadata() client <-- CN: v1.SystemMetadata client --> CN: v2.getSystemMetadata() client <-- CN: v2.SystemMetadata end ... group Replicate CN -> MN.target.v2: v2.replicate() MN.target.v2 -> MN: v2.getReplica() client --> MN.target.v2: v1.getSystemMetadata() client <-- MN.target.v2: v1.SystemMetadata client --> MN.target.v2: v2.getSystemMetadata() client <-- MN.target.v2: v2.SystemMetadata CN --> MN.target.v1: v1.replicate() NOT ALLOWED end ... group Update 'update the access policy using v1 client -> CN: v1.setAccessPolicy() CN -> MN.target.v2: v1.systemMetadataChanged() MN.target.v2 -> CN: v1.getSystemMetadata() MN.target.v2 <- CN: v1.SystemMetadata ... 'update the access policy using v2 client -> CN: v2.setAccessPolicy() CN -> MN.target.v2: v2.systemMetadataChanged() MN.target.v2 -> CN: v2.getSystemMetadata() MN.target.v2 <- CN: v2.SystemMetadata end @endumlrÅ…rÆ}rÇ(hUhjÁubaubeubeubeubhhhh h!}rÈ(h#]h$]h%]h&]rÉjah)]rÊhauh+Kh,hh-]rË(h/)rÌ}rÍ(hjhhhhhh3h!}rÎ(h&]h%]h#]h$]h)]h5juh+Kh,hh-]rÏh8X RequirementsrÐ…rÑ}rÒ(hjhjÌubaubhÜ)rÓ}rÔ(hUhhhhhhßh!}rÕ(jÃX*h&]h%]h#]h$]h)]uh+Kh,hh-]rÖ(hâ)r×}rØ(hX8All v1 objects are valid v2 objects, save for namespace.rÙhjÓhhhj h!}rÚ(h#]h$]h%]h&]h)]uh+Nh,hh-]rÛhŒ)rÜ}rÝ(hjÙhj×hhhhh!}rÞ(h#]h$]h%]h&]h)]uh+Kh-]rßh8X8All v1 objects are valid v2 objects, save for namespace.rà…rá}râ(hjÙhjÜubaubaubhâ)rã}rä(hX4All implementations of v2 must implement v1 methods.råhjÓhhhj h!}ræ(h#]h$]h%]h&]h)]uh+Nh,hh-]rçhŒ)rè}ré(hjåhjãhhhhh!}rê(h#]h$]h%]h&]h)]uh+Kh-]rëh8X4All implementations of v2 must implement v1 methods.rì…rí}rî(hjåhjèubaubaubhâ)rï}rð(hXPTDB: only the minimally-necessary v2 methods will be defined. This would requirerñhjÓhhhj h!}rò(h#]h$]h%]h&]h)]uh+Nh,hh-]róhŒ)rô}rõ(hjñhjïhhhhh!}rö(h#]h$]h%]h&]h)]uh+Kh-]r÷h8XPTDB: only the minimally-necessary v2 methods will be defined. This would requirerø…rù}rú(hjñhjôubaubaubeubhŒ)rû}rü(hX-mixed-calls in when interacting with the API.rýhhhhhhh!}rþ(h#]h$]h%]h&]h)]uh+Kh,hh-]rÿh8X-mixed-calls in when interacting with the API.r…r}r(hjýhjûubaubeubhhhUsystem_messagerh!}r(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKUtypeUWARNINGruh+Kh,hh-]rhŒ)r}r(hX;Bullet list ends without a blank line; unexpected unindent.h!}r (h#]h$]h%]h&]h)]uhhh-]r h8X;Bullet list ends without a blank line; unexpected unindent.r …r }r (hUhjubahhubaubh)r}r(hUhj¥hhhjh!}r(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK(UtypeUERRORruh+K'h,hh-]rhŒ)r}r(hXUnexpected indentation.h!}r(h#]h$]h%]h&]h)]uhjh-]rh8XUnexpected indentation.r…r}r(hUhjubahhubaubh)r}r(hUhj¥hNhjh!}r(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK*Utypejuh+Nh,hh-]rhŒ)r}r(hX;Block quote ends without a blank line; unexpected unindent.h!}r (h#]h$]h%]h&]h)]uhjh-]r!h8X;Block quote ends without a blank line; unexpected unindent.r"…r#}r$(hUhjubahhubaubh)r%}r&(hUhj!hhhjh!}r'(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK4Utypejuh+K3h,hh-]r(hŒ)r)}r*(hXUnexpected indentation.h!}r+(h#]h$]h%]h&]h)]uhj%h-]r,h8XUnexpected indentation.r-…r.}r/(hUhj)ubahhubaubh)r0}r1(hUhj!hNhjh!}r2(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK6Utypejuh+Nh,hh-]r3hŒ)r4}r5(hX;Block quote ends without a blank line; unexpected unindent.h!}r6(h#]h$]h%]h&]h)]uhj0h-]r7h8X;Block quote ends without a blank line; unexpected unindent.r8…r9}r:(hUhj4ubahhubaubh)r;}r<(hUhjžhhhjh!}r=(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKAUtypejuh+K@h,hh-]r>hŒ)r?}r@(hXUnexpected indentation.h!}rA(h#]h$]h%]h&]h)]uhj;h-]rBh8XUnexpected indentation.rC…rD}rE(hUhj?ubahhubaubh)rF}rG(hUhjžhNhjh!}rH(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKCUtypejuh+Nh,hh-]rIhŒ)rJ}rK(hX;Block quote ends without a blank line; unexpected unindent.h!}rL(h#]h$]h%]h&]h)]uhjFh-]rMh8X;Block quote ends without a blank line; unexpected unindent.rN…rO}rP(hUhjJubahhubaubh)rQ}rR(hUhjáhhhjh!}rS(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK”Utypejuh+K“h,hh-]rThŒ)rU}rV(hXUnexpected indentation.h!}rW(h#]h$]h%]h&]h)]uhjQh-]rXh8XUnexpected indentation.rY…rZ}r[(hUhjUubahhubaubh)r\}r](hUhjáhNhjh!}r^(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK–Utypejuh+Nh,hh-]r_hŒ)r`}ra(hX;Block quote ends without a blank line; unexpected unindent.h!}rb(h#]h$]h%]h&]h)]uhj\h-]rch8X;Block quote ends without a blank line; unexpected unindent.rd…re}rf(hUhj`ubahhubaubeUcurrent_sourcergNU decorationrhNUautofootnote_startriKUnameidsrj}rk(hj}hjhjh j-h jDh jWh jjh h(hhÒuh-]rlhahUU transformerrmNU footnote_refsrn}roUrefnamesrp}rqUsymbol_footnotesrr]rsUautofootnote_refsrt]ruUsymbol_footnote_refsrv]rwU citationsrx]ryh,hU current_linerzNUtransform_messagesr{]r|h)r}}r~(hUh!}r(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKUtypeUINFOr€uh-]rhŒ)r‚}rƒ(hUh!}r„(h#]h$]h%]h&]h)]uhj}h-]r…h8X-Hyperlink target "index-0" is not referenced.r†…r‡}rˆ(hUhj‚ubahhubahjubaUreporterr‰NUid_startrŠK U autofootnotesr‹]rŒU citation_refsr}rŽUindirect_targetsr]rUsettingsr‘(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œh–U language_coderUenržU datestamprŸNU report_levelr KU _destinationr¡NU halt_levelr¢KU strip_classesr£Nh3NUerror_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ÅhUgettext_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ÔˆU raw_enabledrÕKU dump_settingsrÖNubUsymbol_footnote_startr×KUidsrØ}rÙ(j}jájhjWj!j|jxh(hjVjRjjƒj,j(jCj?jjjjh6hìj-j˜hDhMjijejDj¥hÒhËjjjžuUsubstitution_namesrÚ}rÛhh,h!}rÜ(h#]h&]h%]Usourcehh$]h)]uU footnotesrÝ]rÞUrefidsrß}ràhD]ráhHasub.