Äcdocutils.nodes document q)Åq}q(U nametypesq}q(X!���mn running v2 of the api (tier 4)qNX���requirementsqNX���overviewqNX ���scenariosq NX!���mn running v1 of the api (tier 1)q NX!���mn running v2 of the api (tier 1)qNX!���mn running v1 of the api (tier 4)qNX ���supporting multiple api versionsq NX���contentsqNuUsubstitution_defsq}qUparse_messagesq]q(cdocutils.nodes system_message q)Åq}q(U rawsourceqU�Uparentqcdocutils.nodes section q)Åq}q(hU�hh)Åq}q(hU�hhUsourceqXd���/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>(hU�hhhhhUindexq?h!}q@(h&]h%]h#]h$]h)]UentriesqA]qB(UsingleqCX ���versioningUindex-0qDU�NtqEaUinlineqFâuh+Kh,hh-]ubcdocutils.nodes target qG)ÅqH}qI(hU�hhhhhUtargetqJh!}qK(h&]h%]h#]h$]h)]h5hDuh+Kh,hh-]ubcdocutils.nodes field_list qL)ÅqM}qN(hU�hhhhUexpect_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(hU�hhMhhhUfieldqYh!}qZ(h#]h$]h%]h&]h)]uh+Kh,hh-]q[(cdocutils.nodes field_name q\)Åq]}q^(hX���Document Statusq_hhWhhhU field_nameq`h!}qa(h#]h$]h%]h&]h)]uh+K�h-]qbh8X���Document 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(hU�h!}qn(h#]h$]h%]h&]h)]uhhgh-]qocdocutils.nodes tgroup qp)Åqq}qr(hU�h!}qs(h&]h%]h#]h$]h)]UcolsKuhhlh-]qt(cdocutils.nodes colspec qu)Åqv}qw(hU�h!}qx(h&]h%]h#]h$]h)]UcolwidthKuhhqh-]hUcolspecqyubhu)Åqz}q{(hU�h!}q|(h&]h%]h#]h$]h)]UcolwidthKBuhhqh-]hhyubcdocutils.nodes thead q})Åq~}q(hU�h!}qÄ(h#]h$]h%]h&]h)]uhhqh-]qÅcdocutils.nodes row qÇ)ÅqÉ}qÑ(hU�h!}qÖ(h#]h$]h%]h&]h)]uhh~h-]qÜ(cdocutils.nodes entry qá)Åqà}qâ(hU�h!}qä(h#]h$]h%]h&]h)]uhhÉh-]qãcdocutils.nodes paragraph qå)Åqç}qé(hX���StatusqèhhàhhhU paragraphqêh!}që(h#]h$]h%]h&]h)]uh+K h-]qíh8X���StatusqìÖÅqî}qï(hhèhhçubaubahUentryqñubhá)Åqó}qò(hU�h!}qô(h#]h$]h%]h&]h)]uhhÉh-]qöhå)Åqõ}qú(hX���Commentqùhhóhhhhêh!}qû(h#]h$]h%]h&]h)]uh+K h-]qüh8X���Commentq†ÖÅq°}q¢(hhùhhõubaubahhñubehUrowq£ubahUtheadq§ubcdocutils.nodes tbody q•)Åq¶}qß(hU�h!}q®(h#]h$]h%]h&]h)]uhhqh-]q©hÇ)Åq™}q´(hU�h!}q¨(h#]h$]h%]h&]h)]uhh¶h-]q≠(há)ÅqÆ}qØ(hU�h!}q∞(h#]h$]h%]h&]h)]uhh™h-]q±hå)Åq≤}q≥(hX���DRAFTq¥hhÆhhhhêh!}qµ(h#]h$]h%]h&]h)]uh+Kh-]q∂h8X���DRAFTq∑ÖÅq∏}qπ(hh¥hh≤ubaubahhñubhá)Åq∫}qª(hU�h!}qº(h#]h$]h%]h&]h)]uhh™h-]qΩhå)Åqæ}qø(hX:���(leinfelder) Listing scenarios for v1 and v2 interactions.q¿hh∫hhhhêh!}q¡(h#]h$]h%]h&]h)]uh+Kh-]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Ã(hU�hhhhhUtopicqÕh!}qŒ(h#]h$]qœUcontentsq–ah%]h&]q—Ucontentsq“ah)]q”hauh+Kh,hh-]q‘(h/)Åq’}q÷(hX���Contentsh!}q◊(h#]h$]h%]h&]h)]uhhÀh-]qÿh8X���ContentsqŸÖÅq⁄}q€(hU�hh’ubahh3ubcdocutils.nodes bullet_list q‹)Åq›}qfi(hU�hhÀhNhUbullet_listqflh!}q‡(h#]h$]h%]h&]h)]uh+Nh,hh-]q·cdocutils.nodes list_item q‚)Åq„}q‰(hU�h!}qÂ(h#]h$]h%]h&]h)]uhh›h-]qÊ(hå)ÅqÁ}qË(hU�h!}qÈ(h#]h$]h%]h&]h)]uhh„h-]qÍcdocutils.nodes reference qÎ)ÅqÏ}qÌ(hU�h!}qÓ(h&]qÔh6ah%]h#]h$]h)]Urefidh(uhhÁh-]qh8X ���Supporting multiple API versionsqÒÖÅqÚ}qÛ(hh2hhÏubahU referenceqÙubahhêubh‹)Åqı}qˆ(hU�h!}q˜(h#]h$]h%]h&]h)]uhh„h-]q¯(h‚)Åq˘}q˙(hU�h!}q˚(h#]h$]h%]h&]h)]uhhıh-]q¸hå)Åq˝}q˛(hU�h!}qˇ(h#]h$]h%]h&]h)]uhh˘h-]r���hÎ)År��}r��(hU�h!}r��(h&]r��Uid2r��ah%]h#]h$]h)]UrefidUoverviewr��uhh˝h-]r��h8X���Overviewr��ÖÅr ��}r ��(hX���Overviewr��hj��ubahhÙubahhêubahU list_itemr��ubh‚)År ��}r��(hU�h!}r��(h#]h$]h%]h&]h)]uhhıh-]r��hå)År��}r��(hU�h!}r��(h#]h$]h%]h&]h)]uhj ��h-]r��hÎ)År��}r��(hU�h!}r��(h&]r��Uid3r��ah%]h#]h$]h)]UrefidUrequirementsr��uhj��h-]r��h8X���Requirementsr��ÖÅr��}r��(hX���Requirementsr��hj��ubahhÙubahhêubahj��ubh‚)År ��}r!��(hU�h!}r"��(h#]h$]h%]h&]h)]uhhıh-]r#��(hå)År$��}r%��(hU�h!}r&��(h#]h$]h%]h&]h)]uhj ��h-]r'��hÎ)År(��}r)��(hU�h!}r*��(h&]r+��Uid4r,��ah%]h#]h$]h)]UrefidU scenariosr-��uhj$��h-]r.��h8X ���Scenariosr/��ÖÅr0��}r1��(hX ���Scenariosr2��hj(��ubahhÙubahhêubh‹)År3��}r4��(hU�h!}r5��(h#]h$]h%]h&]h)]uhj ��h-]r6��(h‚)År7��}r8��(hU�h!}r9��(h#]h$]h%]h&]h)]uhj3��h-]r:��hå)År;��}r<��(hU�h!}r=��(h#]h$]h%]h&]h)]uhj7��h-]r>��hÎ)År?��}r@��(hU�h!}rA��(h&]rB��Uid5rC��ah%]h#]h$]h)]UrefidUmn-running-v1-of-the-api-tier-1rD��uhj;��h-]rE��h8X!���MN running v1 of the API (Tier 1)rF��ÖÅrG��}rH��(hX!���MN running v1 of the API (Tier 1)rI��hj?��ubahhÙubahhêubahj��ubh‚)ÅrJ��}rK��(hU�h!}rL��(h#]h$]h%]h&]h)]uhj3��h-]rM��hå)ÅrN��}rO��(hU�h!}rP��(h#]h$]h%]h&]h)]uhjJ��h-]rQ��hÎ)ÅrR��}rS��(hU�h!}rT��(h&]rU��Uid6rV��ah%]h#]h$]h)]UrefidUmn-running-v2-of-the-api-tier-1rW��uhjN��h-]rX��h8X!���MN running v2 of the API (Tier 1)rY��ÖÅrZ��}r[��(hX!���MN running v2 of the API (Tier 1)r\��hjR��ubahhÙubahhêubahj��ubh‚)År]��}r^��(hU�h!}r_��(h#]h$]h%]h&]h)]uhj3��h-]r`��hå)Åra��}rb��(hU�h!}rc��(h#]h$]h%]h&]h)]uhj]��h-]rd��hÎ)Åre��}rf��(hU�h!}rg��(h&]rh��Uid7ri��ah%]h#]h$]h)]UrefidUmn-running-v1-of-the-api-tier-4rj��uhja��h-]rk��h8X!���MN running v1 of the API (Tier 4)rl��ÖÅrm��}rn��(hX!���MN running v1 of the API (Tier 4)ro��hje��ubahhÙubahhêubahj��ubh‚)Årp��}rq��(hU�h!}rr��(h#]h$]h%]h&]h)]uhj3��h-]rs��hå)Årt��}ru��(hU�h!}rv��(h#]h$]h%]h&]h)]uhjp��h-]rw��hÎ)Årx��}ry��(hU�h!}rz��(h&]r{��Uid8r|��ah%]h#]h$]h)]UrefidUmn-running-v2-of-the-api-tier-4r}��uhjt��h-]r~��h8X!���MN running v2 of the API (Tier 4)r��ÖÅrÄ��}rÅ��(hX!���MN running v2 of the API (Tier 4)rÇ��hjx��ubahhÙubahhêubahj��ubehhflubehj��ubehhflubehj��ubaubeubh)ÅrÉ��}rÑ��(hU�hhhhhh h!}rÖ��(h#]h$]h%]h&]rÜ��j��ah)]rá��hauh+Kh,hh-]rà��(h/)Årâ��}rä��(hj��hjÉ��hhhh3h!}rã��(h&]h%]h#]h$]h)]h5j��uh+Kh,hh-]rå��h8X���Overviewrç��ÖÅ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É��hhhhêh!}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í��hjê��ubaubeubhh)Årò��}rô��(hU�hhhhhh h!}rö��(h#]h$]h%]h&]rõ��j-��ah)]rú��h auh+K"h,hh-]rù��(h/)Årû��}rü��(hj2��hjò��hhhh3h!}r†��(h&]h%]h#]h$]h)]h5j,��uh+K"h,hh-]r°��h8X ���Scenariosr¢��ÖÅr£��}r§��(hj2��hjû��ubaubh)År•��}r¶��(hU�hjò��hhhh h!}rß��(h#]h$]h%]h&]r®��jD��ah)]r©��h auh+K%h,hh-]r™��(h/)År´��}r¨��(hjI��hj•��hhhh3h!}r≠��(h&]h%]h#]h$]h)]h5jC��uh+K%h,hh-]rÆ��h8X!���MN running v1 of the API (Tier 1)rØ��ÖÅr∞��}r±��(hjI��hj´��ubaubhå)År≤��}r≥��(hX���# MN.v1.create() # Synchr¥��hj•��hhhhêh!}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º��(hU�hj•��hNhUblock_quoterΩ��h!}ræ��(h#]h$]h%]h&]h)]uh+Nh,hh-]rø��h‹)År¿��}r¡��(hU�h!}r¬��(Ubulletr√��X���*h&]h%]h#]h$]h)]uhjª��h-]rƒ��(h‚)År≈��}r∆��(hX���MN.v1.listOjects()r«��h!}r»��(h#]h$]h%]h&]h)]uhj¿��h-]r…��hå)År ��}rÀ��(hj«��hj≈��hhhhêh!}rÃ��(h#]h$]h%]h&]h)]uh+K(h-]rÕ��h8X���MN.v1.listOjects()rŒ��ÖÅrœ��}r–��(hj«��hj ��ubaubahj��ubh‚)År—��}r“��(hX���CN.v1.create()r”��h!}r‘��(h#]h$]h%]h&]h)]uhj¿��h-]r’��hå)År÷��}r◊��(hj”��hj—��hhhhêh!}rÿ��(h#]h$]h%]h&]h)]uh+K)h-]rŸ��h8X���CN.v1.create()r⁄��ÖÅr€��}r‹��(hj”��hj÷��ubaubahj��ubehhflubaubcdocutils.nodes definition_list r›��)Årfi��}rfl��(hU�hj•��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 hjfi��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ı��(hU�h!}rˆ��(h#]h$]h%]h&]h)]uhj‰��h-]r˜��h‹)År¯��}r˘��(hU�h!}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¸��hhhhêh!}r��(h#]h$]h%]h&]h)]uh+K+h-]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��hhhhêh!}r��(h#]h$]h%]h&]h)]uh+K,h-]r��h8X/���CN.v1.getSystemMetadata() --> v1.SystemMetadatar��ÖÅr��}r��(hj ��hj ��ubaubahj��ubh‚)År��}r��(hX1���MN.v1.getSystemMetadata() --> v1.SystemMetadata h!}r��(h#]h$]h%]h&]h)]uhj¯��h-]r��hå)År��}r��(hX/���MN.v1.getSystemMetadata() --> v1.SystemMetadatar��hj��hhhhêh!}r��(h#]h$]h%]h&]h)]uh+K-h-]r��h8X/���MN.v1.getSystemMetadata() --> v1.SystemMetadatar��ÖÅr��}r��(hj��hj��ubaubahj��ubehhflubahU definitionr ��ubeubaubeubh)År!��}r"��(hU�hjò��hhhh h!}r#��(h#]h$]h%]h&]r$��jW��ah)]r%��hauh+K1h,hh-]r&��(h/)År'��}r(��(hj\��hj!��hhhh3h!}r)��(h&]h%]h#]h$]h)]h5jV��uh+K1h,hh-]r*��h8X!���MN running v2 of the API (Tier 1)r+��ÖÅr,��}r-��(hj\��hj'��ubaubhå)År.��}r/��(hX���# MN.v2.create() # Synchr0��hj!��hhhhêh!}r1��(h#]h$]h%]h&]h)]uh+K2h,hh-]r2��h8X���# MN.v2.create() # Synchr3��ÖÅr4��}r5��(hj0��hj.��ubaubj∫��)År6��}r7��(hU�hj!��hNhjΩ��h!}r8��(h#]h$]h%]h&]h)]uh+Nh,hh-]r9��h‹)År:��}r;��(hU�h!}r<��(j√��X���*h&]h%]h#]h$]h)]uhj6��h-]r=��(h‚)År>��}r?��(hX���MN.v2.listOjects()r@��h!}rA��(h#]h$]h%]h&]h)]uhj:��h-]rB��hå)ÅrC��}rD��(hj@��hj>��hhhhêh!}rE��(h#]h$]h%]h&]h)]uh+K4h-]rF��h8X���MN.v2.listOjects()rG��ÖÅrH��}rI��(hj@��hjC��ubaubahj��ubh‚)ÅrJ��}rK��(hX���CN.v2.create()rL��h!}rM��(h#]h$]h%]h&]h)]uhj:��h-]rN��hå)ÅrO��}rP��(hjL��hjJ��hhhhêh!}rQ��(h#]h$]h%]h&]h)]uh+K5h-]rR��h8X���CN.v2.create()rS��ÖÅrT��}rU��(hjL��hjO��ubaubahj��ubehhflubaubj›��)ÅrV��}rW��(hU�hj!��hNhj‡��h!}rX��(h#]h$]h%]h&]h)]uh+Nh,hh-]rY��j„��)Å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 hjV��hhhjÊ��h!}r\��(h#]h$]h%]h&]h)]uh+K;h-]r]��(jÈ��)År^��}r_��(hX!���# Valid getSystemMetadata() callsr`��hjZ��hhhjÌ��h!}ra��(h#]h$]h%]h&]h)]uh+K;h-]rb��h8X!���# Valid getSystemMetadata() callsrc��ÖÅrd��}re��(hj`��hj^��ubaubjÛ��)Årf��}rg��(hU�h!}rh��(h#]h$]h%]h&]h)]uhjZ��h-]ri��h‹)Årj��}rk��(hU�h!}rl��(j√��X���*h&]h%]h#]h$]h)]uhjf��h-]rm��(h‚)Årn��}ro��(hX/���CN.v2.getSystemMetadata() --> v2.SystemMetadatarp��h!}rq��(h#]h$]h%]h&]h)]uhjj��h-]rr��hå)Års��}rt��(hjp��hjn��hhhhêh!}ru��(h#]h$]h%]h&]h)]uh+K7h-]rv��h8X/���CN.v2.getSystemMetadata() --> v2.SystemMetadatarw��ÖÅrx��}ry��(hjp��hjs��ubaubahj��ubh‚)Årz��}r{��(hX/���MN.v2.getSystemMetadata() --> v2.SystemMetadatar|��h!}r}��(h#]h$]h%]h&]h)]uhjj��h-]r~��hå)År��}rÄ��(hj|��hjz��hhhhêh!}rÅ��(h#]h$]h%]h&]h)]uh+K8h-]rÇ��h8X/���MN.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)]uhjj��h-]rä��hå)Årã��}rå��(hjà��hjÜ��hhhhêh!}rç��(h#]h$]h%]h&]h)]uh+K9h-]ré��h8X/���CN.v1.getSystemMetadata() --> v1.SystemMetadatarè��ÖÅrê��}rë��(hjà��hjã��ubaubahj��ubh‚)Årí��}rì��(hX1���MN.v1.getSystemMetadata() --> v1.SystemMetadata h!}rî��(h#]h$]h%]h&]h)]uhjj��h-]rï��hå)Årñ��}ró��(hX/���MN.v1.getSystemMetadata() --> v1.SystemMetadatarò��hjí��hhhhêh!}rô��(h#]h$]h%]h&]h)]uh+K:h-]rö��h8X/���MN.v1.getSystemMetadata() --> v1.SystemMetadatarõ��ÖÅrú��}rù��(hjò��hjñ��ubaubahj��ubehhflubahj ��ubeubaubeubh)Årû��}rü��(hU�hjò��hhhh h!}r†��(h#]h$]h%]h&]r°��jj��ah)]r¢��hauh+K>h,hh-]r£��(h/)År§��}r•��(hjo��hjû��hhhh3h!}r¶��(h&]h%]h#]h$]h)]h5ji��uh+K>h,hh-]rß��h8X!���MN running v1 of the API (Tier 4)r®��ÖÅr©��}r™��(hjo��hj§��ubaubhå)År´��}r¨��(hX���# MN.v1.create() # Synchr≠��hjû��hhhhêh!}rÆ��(h#]h$]h%]h&]h)]uh+K?h,hh-]rØ��h8X���# MN.v1.create() # Synchr∞��ÖÅr±��}r≤��(hj≠��hj´��ubaubj∫��)År≥��}r¥��(hU�hjû��hNhjΩ��h!}rµ��(h#]h$]h%]h&]h)]uh+Nh,hh-]r∂��h‹)År∑��}r∏��(hU�h!}rπ��(j√��X���*h&]h%]h#]h$]h)]uhj≥��h-]r∫��(h‚)Årª��}rº��(hX���MN.v1.listOjects()rΩ��h!}ræ��(h#]h$]h%]h&]h)]uhj∑��h-]rø��hå)År¿��}r¡��(hjΩ��hjª��hhhhêh!}r¬��(h#]h$]h%]h&]h)]uh+KAh-]r√��h8X���MN.v1.listOjects()rƒ��ÖÅr≈��}r∆��(hjΩ��hj¿��ubaubahj��ubh‚)År«��}r»��(hX���CN.[v1|v2].create()r…��h!}r ��(h#]h$]h%]h&]h)]uhj∑��h-]rÀ��hå)ÅrÃ��}rÕ��(hj…��hj«��hhhhêh!}rŒ��(h#]h$]h%]h&]h)]uh+KBh-]rœ��h8X���CN.[v1|v2].create()r–��ÖÅr—��}r“��(hj…��hjÃ��ubaubahj��ubehhflubaubj›��)År”��}r‘��(hU�hjû��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!}rfi��(h#]h$]h%]h&]h)]uh+KEh-]rfl��h8X���# Valid get() callsr‡��ÖÅr·��}r‚��(hj›��hj€��ubaubjÛ��)År„��}r‰��(hU�h!}rÂ��(h#]h$]h%]h&]h)]uhj◊��h-]rÊ��h‹)ÅrÁ��}rË��(hU�h!}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Î��hhhhêh!}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˜��hhhhêh!}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.SystemMetadatar��h!}r��(h#]h$]h%]h&]h)]uhjÁ��h-]r��hå)År��}r ��(hj��hj��hhhhêh!}r ��(h#]h$]h%]h&]h)]uh+KFh-]r��h8X/���MN.v1.getSystemMetadata() --> v1.SystemMetadatar��ÖÅr ��}r��(hj��hj��ubaubahj��ubehhflubahj ��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 APIr��hj��hhhjÌ��h!}r��(h#]h$]h%]h&]h)]uh+KHh-]r��h8X*���# Replication to MN.target1 running v1 APIr��ÖÅr��}r��(hj��hj��ubaubjÛ��)År��}r��(hU�h!}r��(h#]h$]h%]h&]h)]uhj��h-]r��h‹)År��}r ��(hU�h!}r!��(j√��X���*h&]h%]h#]h$]h)]uhj��h-]r"��(h‚)År#��}r$��(hX���MN.v1.getReplica()r%��h!}r&��(h#]h$]h%]h&]h)]uhj��h-]r'��hå)År(��}r)��(hj%��hj#��hhhhêh!}r*��(h#]h$]h%]h&]h)]uh+KHh-]r+��h8X���MN.v1.getReplica()r,��ÖÅr-��}r.��(hj%��hj(��ubaubahj��ubh‚)År/��}r0��(hX7���MN.target1.v1.getSystemMetadata() --> v1.SystemMetadatar1��h!}r2��(h#]h$]h%]h&]h)]uhj��h-]r3��hå)År4��}r5��(hj1��hj/��hhhhêh!}r6��(h#]h$]h%]h&]h)]uh+KIh-]r7��h8X7���MN.target1.v1.getSystemMetadata() --> v1.SystemMetadatar8��ÖÅr9��}r:��(hj1��hj4��ubaubahj��ubehhflubahj ��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 APIrA��hj;��hhhjÌ��h!}rB��(h#]h$]h%]h&]h)]uh+KLh-]rC��h8X*���# Replication to MN.target2 running v2 APIrD��ÖÅrE��}rF��(hjA��hj?��ubaubjÛ��)ÅrG��}rH��(hU�h!}rI��(h#]h$]h%]h&]h)]uhj;��h-]rJ��h‹)ÅrK��}rL��(hU�h!}rM��(j√��X���*h&]h%]h#]h$]h)]uhjG��h-]rN��(h‚)ÅrO��}rP��(hX���MN.v1.getReplica()rQ��h!}rR��(h#]h$]h%]h&]h)]uhjK��h-]rS��hå)ÅrT��}rU��(hjQ��hjO��hhhhêh!}rV��(h#]h$]h%]h&]h)]uh+KKh-]rW��h8X���MN.v1.getReplica()rX��ÖÅrY��}rZ��(hjQ��hjT��ubaubahj��ubh‚)År[��}r\��(hX7���MN.target2.v1.getSystemMetadata() --> v1.SystemMetadatar]��h!}r^��(h#]h$]h%]h&]h)]uhjK��h-]r_��hå)År`��}ra��(hj]��hj[��hhhhêh!}rb��(h#]h$]h%]h&]h)]uh+KLh-]rc��h8X7���MN.target2.v1.getSystemMetadata() --> v1.SystemMetadatard��ÖÅre��}rf��(hj]��hj`��ubaubahj��ubh‚)Årg��}rh��(hX7���MN.target2.v2.getSystemMetadata() --> v2.SystemMetadatari��h!}rj��(h#]h$]h%]h&]h)]uhjK��h-]rk��hå)Årl��}rm��(hji��hjg��hhhhêh!}rn��(h#]h$]h%]h&]h)]uh+KMh-]ro��h8X7���MN.target2.v2.getSystemMetadata() --> v2.SystemMetadatarp��ÖÅrq��}rr��(hji��hjl��ubaubahj��ubehhflubahj ��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 ���# Updatesry��hjs��hhhjÌ��h!}rz��(h#]h$]h%]h&]h)]uh+KSh-]r{��h8X ���# Updatesr|��ÖÅr}��}r~��(hjy��hjw��ubaubjÛ��)År��}rÄ��(hU�h!}rÅ��(h#]h$]h%]h&]h)]uhjs��h-]rÇ��h‹)ÅrÉ��}rÑ��(hU�h!}rÖ��(j√��X���*h&]h%]h#]h$]h)]uhj��h-]rÜ��(h‚)Årá��}rà��(hXA���CN.v1.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged()râ��h!}rä��(h#]h$]h%]h&]h)]uhjÉ��h-]rã��hå)Årå��}rç��(hjâ��hjá��hhhhêh!}ré��(h#]h$]h%]h&]h)]uh+KOh-]rè��h8XA���CN.v1.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged()rê��ÖÅrë��}rí��(hjâ��hjå��ubaubahj��ubh‚)Årì��}rî��(hXA���CN.v1.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()rï��h!}rñ��(h#]h$]h%]h&]h)]uhjÉ��h-]ró��hå)Årò��}rô��(hjï��hjì��hhhhêh!}rö��(h#]h$]h%]h&]h)]uh+KPh-]rõ��h8XA���CN.v1.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()rú��ÖÅrù��}rû��(hjï��hjò��ubaubahj��ubh‚)Årü��}r†��(hXJ���CN.v2.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged() ALLOWED?r°��h!}r¢��(h#]h$]h%]h&]h)]uhjÉ��h-]r£��hå)År§��}r•��(hj°��hjü��hhhhêh!}r¶��(h#]h$]h%]h&]h)]uh+KQh-]rß��h8XJ���CN.v2.setAccessPolicy() --> MN.target1.v1.systemMetadataChanged() ALLOWED?r®��ÖÅr©��}r™��(hj°��hj§��ubaubahj��ubh‚)År´��}r¨��(hXC���CN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged() h!}r≠��(h#]h$]h%]h&]h)]uhjÉ��h-]rÆ��hå)ÅrØ��}r∞��(hXA���CN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()r±��hj´��hhhhêh!}r≤��(h#]h$]h%]h&]h)]uh+KRh-]r≥��h8XA���CN.v2.setAccessPolicy() --> MN.target2.v2.systemMetadataChanged()r¥��ÖÅrµ��}r∂��(hj±��hjØ��ubaubahj��ubehhflubahj ��ubeubeubcdocutils.nodes figure r∑��)År∏��}rπ��(hU�hjû��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¡��(UuriX���design/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û��hhhhêh!}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—��(hU�hjÀ��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+Kèh,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 @endumlrfi��ÖÅrfl��}r‡��(hU�hj◊��ubaubeubh)År·��}r‚��(hU�hjò��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·��hhhhêh!}rÒ��(h#]h$]h%]h&]h)]uh+Kíh,hh-]rÚ��h8X���# MN.v2.create() # SynchrÛ��ÖÅrÙ��}rı��(hj��hjÓ��ubaubj∫��)Årˆ��}r˜��(hU�hj·��hNhjΩ��h!}r¯��(h#]h$]h%]h&]h)]uh+Nh,hh-]r˘��h‹)År˙��}r˚��(hU�h!}r¸��(j√��X���*h&]h%]h#]h$]h)]uhjˆ��h-]r˝��(h‚)År˛��}rˇ��(hX���MN.v1.listOjects()r���h!}r��(h#]h$]h%]h&]h)]uhj˙��h-]r��hå)År��}r��(hj���hj˛��hhhhêh!}r��(h#]h$]h%]h&]h)]uh+Kîh-]r��h8X���MN.v1.listOjects()r��ÖÅr��}r ��(hj���hj��ubaubahj��ubh‚)År ��}r��(hX���CN.[v1|v2].create()r��h!}r ��(h#]h$]h%]h&]h)]uhj˙��h-]r��hå)År��}r��(hj��hj ��hhhhêh!}r��(h#]h$]h%]h&]h)]uh+Kïh-]r��h8X���CN.[v1|v2].create()r��ÖÅr��}r��(hj��hj��ubaubahj��ubehhflubaubj›��)År��}r��(hU�hj·��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+Kòh-]r��(jÈ��)År��}r��(hX���# Valid get() callsr ��hj��hhhjÌ��h!}r!��(h#]h$]h%]h&]h)]uh+Kòh-]r"��h8X���# Valid get() callsr#��ÖÅr$��}r%��(hj ��hj��ubaubjÛ��)År&��}r'��(hU�h!}r(��(h#]h$]h%]h&]h)]uhj��h-]r)��h‹)År*��}r+��(hU�h!}r,��(j√��X���*h&]h%]h#]h$]h)]uhj&��h-]r-��(h‚)År.��}r/��(hX/���CN.v2.getSystemMetadata() --> v2.SystemMetadatar0��h!}r1��(h#]h$]h%]h&]h)]uhj*��h-]r2��hå)År3��}r4��(hj0��hj.��hhhhêh!}r5��(h#]h$]h%]h&]h)]uh+Kóh-]r6��h8X/���CN.v2.getSystemMetadata() --> v2.SystemMetadatar7��ÖÅr8��}r9��(hj0��hj3��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:��hhhhêh!}rA��(h#]h$]h%]h&]h)]uh+Kòh-]rB��h8X/���CN.v1.getSystemMetadata() --> v1.SystemMetadatarC��ÖÅrD��}rE��(hj<��hj?��ubaubahj��ubh‚)ÅrF��}rG��(hX/���MN.v1.getSystemMetadata() --> v1.SystemMetadatarH��h!}rI��(h#]h$]h%]h&]h)]uhj*��h-]rJ��hå)ÅrK��}rL��(hjH��hjF��hhhhêh!}rM��(h#]h$]h%]h&]h)]uh+Kôh-]rN��h8X/���MN.v1.getSystemMetadata() --> v1.SystemMetadatarO��ÖÅrP��}rQ��(hjH��hjK��ubaubahj��ubehhflubahj ��ubeubj„��)ÅrR��}rS��(hX7���# Replication to MN.target running v1 API * NOT ALLOWEDhj��hhhjÊ��h!}rT��(h#]h$]h%]h&]h)]uh+Köh,hh-]rU��(jÈ��)ÅrV��}rW��(hX)���# Replication to MN.target running v1 APIrX��hjR��hhhjÌ��h!}rY��(h#]h$]h%]h&]h)]uh+Köh-]rZ��h8X)���# Replication to MN.target running v1 APIr[��ÖÅr\��}r]��(hjX��hjV��ubaubjÛ��)År^��}r_��(hU�h!}r`��(h#]h$]h%]h&]h)]uhjR��h-]ra��h‹)Årb��}rc��(hU�h!}rd��(j√��X���*h&]h%]h#]h$]h)]uhj^��h-]re��h‚)Årf��}rg��(hX���NOT ALLOWEDrh��h!}ri��(h#]h$]h%]h&]h)]uhjb��h-]rj��hå)Årk��}rl��(hjh��hjf��hhhhêh!}rm��(h#]h$]h%]h&]h)]uh+Kõh-]rn��h8X���NOT ALLOWEDro��ÖÅrp��}rq��(hjh��hjk��ubaubahj��ubahhflubahj ��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 hj��hhhjÊ��h!}rt��(h#]h$]h%]h&]h)]uh+K†h,hh-]ru��(jÈ��)Årv��}rw��(hX)���# Replication to MN.target running v2 APIrx��hjr��hhhjÌ��h!}ry��(h#]h$]h%]h&]h)]uh+K†h-]rz��h8X)���# Replication to MN.target running v2 APIr{��ÖÅr|��}r}��(hjx��hjv��ubaubjÛ��)År~��}r��(hU�h!}rÄ��(h#]h$]h%]h&]h)]uhjr��h-]rÅ��h‹)ÅrÇ��}rÉ��(hU�h!}rÑ��(j√��X���*h&]h%]h#]h$]h)]uhj~��h-]rÖ��(h‚)ÅrÜ��}rá��(hX���MN.v1.getReplica()rà��h!}râ��(h#]h$]h%]h&]h)]uhjÇ��h-]rä��hå)Årã��}rå��(hjà��hjÜ��hhhhêh!}rç��(h#]h$]h%]h&]h)]uh+Kùh-]ré��h8X���MN.v1.getReplica()rè��ÖÅrê��}rë��(hjà��hjã��ubaubahj��ubh‚)Årí��}rì��(hX6���MN.target.v1.getSystemMetadata() --> v1.SystemMetadatarî��h!}rï��(h#]h$]h%]h&]h)]uhjÇ��h-]rñ��hå)Åró��}rò��(hjî��hjí��hhhhêh!}rô��(h#]h$]h%]h&]h)]uh+Kûh-]rö��h8X6���MN.target.v1.getSystemMetadata() --> v1.SystemMetadatarõ��ÖÅrú��}rù��(hjî��hjó��ubaubahj��ubh‚)Årû��}rü��(hX8���MN.target.v2.getSystemMetadata() --> v2.SystemMetadata h!}r†��(h#]h$]h%]h&]h)]uhjÇ��h-]r°��hå)År¢��}r£��(hX6���MN.target.v2.getSystemMetadata() --> v2.SystemMetadatar§��hjû��hhhhêh!}r•��(h#]h$]h%]h&]h)]uh+Küh-]r¶��h8X6���MN.target.v2.getSystemMetadata() --> v2.SystemMetadatarß��ÖÅr®��}r©��(hj§��hj¢��ubaubahj��ubehhflubahj ��ubeubeubj∑��)År™��}r´��(hU�hj·��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∞��(UuriX���design/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·��hhhhêh!}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Ω��(hU�hj∑��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«��(hU�hj¡��ubaubeubeubeubhhhh h!}r»��(h#]h$]h%]h&]r…��j��ah)]r ��hauh+Kh,hh-]rÀ��(h/)ÅrÃ��}rÕ��(hj��hhhhhh3h!}rŒ��(h&]h%]h#]h$]h)]h5j��uh+Kh,hh-]rœ��h8X���Requirementsr–��ÖÅr—��}r“��(hj��hjÃ��ubaubh‹)År”��}r‘��(hU�hhhhhhflh!}r’��(j√��X���*h&]h%]h#]h$]h)]uh+Kh,hh-]r÷��(h‚)År◊��}rÿ��(hX8���All 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◊��hhhhêh!}rfi��(h#]h$]h%]h&]h)]uh+Kh-]rfl��h8X8���All v1 objects are valid v2 objects, save for namespace.r‡��ÖÅr·��}r‚��(hjŸ��hj‹��ubaubaubh‚)År„��}r‰��(hX4���All 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„��hhhhêh!}rÍ��(h#]h$]h%]h&]h)]uh+Kh-]rÎ��h8X4���All implementations of v2 must implement v1 methods.rÏ��ÖÅrÌ��}rÓ��(hjÂ��hjË��ubaubaubh‚)ÅrÔ��}r��(hXP���TDB: 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Ô��hhhhêh!}rˆ��(h#]h$]h%]h&]h)]uh+Kh-]r˜��h8XP���TDB: 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˝��hhhhhhêh!}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_messager��h!}r��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKUtypeUWARNINGr��uh+Kh,hh-]r��hå)Å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 ��(hU�hj��ubahhêubaubh)År��}r��(hU�hj•��hhhj��h!}r��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK(UtypeUERRORr��uh+K'h,hh-]r��hå)År��}r��(hX���Unexpected indentation.h!}r��(h#]h$]h%]h&]h)]uhj��h-]r��h8X���Unexpected indentation.r��ÖÅr��}r��(hU�hj��ubahhêubaubh)År��}r��(hU�hj•��hNhj��h!}r��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK*Utypej��uh+Nh,hh-]r��hå)År��}r��(hX;���Block quote ends without a blank line; unexpected unindent.h!}r ��(h#]h$]h%]h&]h)]uhj��h-]r!��h8X;���Block quote ends without a blank line; unexpected unindent.r"��ÖÅr#��}r$��(hU�hj��ubahhêubaubh)År%��}r&��(hU�hj!��hhhj��h!}r'��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK4Utypej��uh+K3h,hh-]r(��hå)År)��}r*��(hX���Unexpected indentation.h!}r+��(h#]h$]h%]h&]h)]uhj%��h-]r,��h8X���Unexpected indentation.r-��ÖÅr.��}r/��(hU�hj)��ubahhêubaubh)År0��}r1��(hU�hj!��hNhj��h!}r2��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineK6Utypej��uh+Nh,hh-]r3��hå)År4��}r5��(hX;���Block quote ends without a blank line; unexpected unindent.h!}r6��(h#]h$]h%]h&]h)]uhj0��h-]r7��h8X;���Block quote ends without a blank line; unexpected unindent.r8��ÖÅr9��}r:��(hU�hj4��ubahhêubaubh)År;��}r<��(hU�hjû��hhhj��h!}r=��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKAUtypej��uh+K@h,hh-]r>��hå)År?��}r@��(hX���Unexpected indentation.h!}rA��(h#]h$]h%]h&]h)]uhj;��h-]rB��h8X���Unexpected indentation.rC��ÖÅrD��}rE��(hU�hj?��ubahhêubaubh)ÅrF��}rG��(hU�hjû��hNhj��h!}rH��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKCUtypej��uh+Nh,hh-]rI��hå)ÅrJ��}rK��(hX;���Block quote ends without a blank line; unexpected unindent.h!}rL��(h#]h$]h%]h&]h)]uhjF��h-]rM��h8X;���Block quote ends without a blank line; unexpected unindent.rN��ÖÅrO��}rP��(hU�hjJ��ubahhêubaubh)ÅrQ��}rR��(hU�hj·��hhhj��h!}rS��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKîUtypej��uh+Kìh,hh-]rT��hå)ÅrU��}rV��(hX���Unexpected indentation.h!}rW��(h#]h$]h%]h&]h)]uhjQ��h-]rX��h8X���Unexpected indentation.rY��ÖÅrZ��}r[��(hU�hjU��ubahhêubaubh)År\��}r]��(hU�hj·��hNhj��h!}r^��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKñUtypej��uh+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-]rc��h8X;���Block quote ends without a blank line; unexpected unindent.rd��ÖÅre��}rf��(hU�hj`��ubahhêubaubeUcurrent_sourcerg��NU decorationrh��NUautofootnote_startri��KUnameidsrj��}rk��(hj}��hj��hj��h j-��h jD��hjW��hjj��h h(hh“uh-]rl��hahU�Utransformerrm��NU footnote_refsrn��}ro��Urefnamesrp��}rq��Usymbol_footnotesrr��]rs��Uautofootnote_refsrt��]ru��Usymbol_footnote_refsrv��]rw��U citationsrx��]ry��h,hUcurrent_linerz��NUtransform_messagesr{��]r|��h)År}��}r~��(hU�h!}r��(h#]UlevelKh&]h%]Usourcehh$]h)]UlineKUtypeUINFOrÄ��uh-]rÅ��hå)ÅrÇ��}rÉ��(hU�h!}rÑ��(h#]h$]h%]h&]h)]uhj}��h-]rÖ��h8X-���Hyperlink target "index-0" is not referenced.rÜ��ÖÅrá��}rà��(hU�hjÇ��ubahhêubahj��ubaUreporterrâ��NUid_starträ��K U autofootnotesrã��]rå��U citation_refsrç��}ré��Uindirect_targetsrè��]rê��Usettingsrë��(cdocutils.frontend Values rí��orì��}rî��(Ufootnote_backlinksrï��KUrecord_dependenciesrñ��NUrfc_base_urlró��Uhttps://tools.ietf.org/html/rò��U tracebackrô��àUpep_referencesrö��NUstrip_commentsrõ��NU toc_backlinksrú��hñU language_coderù��Uenrû��U datestamprü��NUreport_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∏��âUsource_linkrπ��NUrfc_referencesr∫��NUoutput_encodingrª��Uutf-8rº��U source_urlrΩ��NUinput_encodingræ��U utf-8-sigrø��U_disable_configr¿��NU id_prefixr¡��U�U tab_widthr¬��KUerror_encodingr√��UUTF-8rƒ��U_sourcer≈��hUgettext_compactr∆��àU generatorr«��NUdump_internalsr»��NUsmart_quotesr…��âUpep_base_urlr ��U https://www.python.org/dev/peps/rÀ��Usyntax_highlightrÃ��UlongrÕ��Uinput_encoding_error_handlerrŒ��j©��Uauto_id_prefixrœ��Uidr–��Udoctitle_xformr—��âUstrip_elements_with_classesr“��NU _config_filesr”��]Ufile_insertion_enabledr‘��àUraw_enabledr’��KU dump_settingsr÷��NubUsymbol_footnote_startr◊��K�Uidsrÿ��}rŸ��(j}��j·��j��hjW��j!��j|��jx��h(hjV��jR��j��jÉ��j,��j(��jC��j?��j��j��j��j��h6hÏj-��jò��hDhMji��je��jD��j•��h“hÀjj��jû��uUsubstitution_namesr⁄��}r€��hh,h!}r‹��(h#]h&]h%]Usourcehh$]h)]uU footnotesr›��]rfi��Urefidsrfl��}r‡��hD]r·��hHasub.