cdocutils.nodes document q)q}q(U nametypesq}q(Xmutability of metadataqNX3matt's modification of the notes from robert above:qNXHexternal cn apis (accessible to any caller with appropriate credentials)qNX4internal cn apis (not accessible to mns and clients)q NuUsubstitution_defsq }q Uparse_messagesq ]q (cdocutils.nodes system_message q)q}q(U rawsourceqUU attributesq}q(Udupnamesq]UlevelKUidsq]Ubackrefsq]UsourceXt/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/notes/sysmeta_mutation_20101217.txtqUclassesq]Unamesq]UlineKUtypeUINFOquUparentqcdocutils.nodes block_quote q)q}q(hUhcdocutils.nodes section q)q }q!(hUhhUsourceq"hUtagnameq#Usectionq$h}q%(h]h]h]h]q&Umutability-of-metadataq'ah]q(hauUlineq)KUdocumentq*hUchildrenq+]q,(cdocutils.nodes title q-)q.}q/(hXMutability of Metadataq0hh h"hh#Utitleq1h}q2(h]h]h]h]h]uh)Kh*hh+]q3cdocutils.nodes Text q4XMutability of Metadataq5q6}q7(hh0hh.ubaubcdocutils.nodes paragraph q8)q9}q:(hXVThese notes were initiated by DV with responses by RW and MJ around 17 December, 2010.q;hh h"hh#U paragraphqh4XVThese notes were initiated by DV with responses by RW and MJ around 17 December, 2010.q?q@}qA(hh;hh9ubaubh8)qB}qC(hXNeed a couple of methods internal to the CN to allow efficient updating of mutable content, which includes SystemMetadata and the Node Registry.qDhh h"hh#h(hXrightsHolder - elementr?h}r@(h]h]h]h]h]uhj9h+]rAh8)rB}rC(hj?hj=h"hh#h Types.Identifierhh h"hh#h]h}r(h_h`h]h]h]h]h]uh)Kth*hh+]rh4X^PUT /meta/pid (token, pid, derivation | replicationPolicy | accessControl) -> Types.Identifierrr}r(hUhjubaubh8)r}r(hXRCRUD Api (Methods Overloaded or named separately??? assuming named separately???)rhh h"hh#h booleanhh h"hh#h]h}r(h_h`h]h]h]h]h]uh)Kzh*hh+]rh4XCCN_crud.updateSystemMetadata(token, pid, systemMetadata) -> booleanrr}r(hUhjubaubh8)r}r(hX'externally available through REST API::rhh h"hh#h boolean CN_crud.updateSystemMetadataReplication(token, pid, replicationPolicy) -> boolean CN_crud.updateSystemMetadataAccessControl(token, pid, accessControl) -> booleanhh h"hh#h]h}r(h_h`h]h]h]h]h]uh)K~h*hh+]rh4XCN_crud.updateSystemMetadataProvenance(token, pid, derivation) -> boolean CN_crud.updateSystemMetadataReplication(token, pid, replicationPolicy) -> boolean CN_crud.updateSystemMetadataAccessControl(token, pid, accessControl) -> booleanrr}r(hUhjubaubh)r}r(hUhh h"hh#h$h}r(h]h]h]h]rU2matt-s-modification-of-the-notes-from-robert-aboverah]rhauh)Kh*hh+]r(h-)r}r(hX3Matt's modification of the notes from Robert above:rhjh"hh#h1h}r(h]h]h]h]h]uh)Kh*hh+]rh4X3Matt's modification of the notes from Robert above:rr}r(hjhjubaubh8)r}r(hXI think we need a slightly different set of groups of system metadata elements, which I outline below, and which then lead to a different set of services. Each group should be defined in its own freestanding ComplexType. I don't think we should have a general service for modifying system metadata that is externally accessible, but rather should have a separate method for each system metadata group so that access to the services can be controlled independently.rhjh"hh#hh}r?(h]h]h]h]h]uhj h+]r@h8)rA}rB(hj>hj<h"hh#hhjAubaubah#jubh)rH}rI(hX size elementrJh}rK(h]h]h]h]h]uhj h+]rLh8)rM}rN(hjJhjHh"hh#h(hXThe Overall SystemMetadata object would contain elements for all of these groups, so thet getSystemMetadata() returns all of this information. Updating system metadata would be done with the following calls:r?hjh"hh#h Types.Identifier REST API: PUT /meta/pid (token, pid, SystemMetadata) -> Types.IdentifierhjEh"hh#h]h}rV(h_h`h]h]h]h]h]uh)Kh*hh+]rWh4XCN_crud.updateSystemMetadata(token, pid, systemMetadata) -> Types.Identifier REST API: PUT /meta/pid (token, pid, SystemMetadata) -> Types.IdentifierrXrY}rZ(hUhjTubaubeubh)r[}r\(hUhh h"hh#h$h}r](h]h]h]h]r^UFexternal-cn-apis-accessible-to-any-caller-with-appropriate-credentialsr_ah]r`hauh)Kh*hh+]ra(h-)rb}rc(hXHExternal CN APIs (accessible to any caller with appropriate credentials)rdhj[h"hh#h1h}re(h]h]h]h]h]uh)Kh*hh+]rfh4XHExternal CN APIs (accessible to any caller with appropriate credentials)rgrh}ri(hjdhjbubaubhZ)rj}rk(hXCN_crud.setAccessPolicy(token, pid, AccessPolicy) -> boolean REST API: PUT /access/pid (body containing token, AccessPolicy) -> boolean CN_crud.setReplicationPolicy(token, pid, ReplicationPolicy) -> boolean REST API: PUT /replication/pid (body containing token, AccessPolicy) -> boolean CN_crud.setProvenance(token, pid, Provenance) -> boolean REST API: PUT /provenance/pid (body containing token, AccessPolicy) -> booleanhj[h"hh#h]h}rl(h_h`h]h]h]h]h]uh)Kh*hh+]rmh4XCN_crud.setAccessPolicy(token, pid, AccessPolicy) -> boolean REST API: PUT /access/pid (body containing token, AccessPolicy) -> boolean CN_crud.setReplicationPolicy(token, pid, ReplicationPolicy) -> boolean REST API: PUT /replication/pid (body containing token, AccessPolicy) -> boolean CN_crud.setProvenance(token, pid, Provenance) -> boolean REST API: PUT /provenance/pid (body containing token, AccessPolicy) -> booleanrnro}rp(hUhjjubaubh8)rq}rr(hXo-robert's response: I don't think we have a boolean return type. Everything we return needs to be serializable.rshj[h"hh#h}r?Uindirect_targetsr@]rAUsettingsrB(cdocutils.frontend Values rCorD}rE(Ufootnote_backlinksrFKUrecord_dependenciesrGNU rfc_base_urlrHUhttps://tools.ietf.org/html/rIU tracebackrJUpep_referencesrKNUstrip_commentsrLNU toc_backlinksrMUentryrNU language_coderOUenrPU datestamprQNU report_levelrRKU _destinationrSNU halt_levelrTKU strip_classesrUNh1NUerror_encoding_error_handlerrVUbackslashreplacerWUdebugrXNUembed_stylesheetrYUoutput_encoding_error_handlerrZUstrictr[U sectnum_xformr\KUdump_transformsr]NU docinfo_xformr^KUwarning_streamr_NUpep_file_url_templater`Upep-%04draUexit_status_levelrbKUconfigrcNUstrict_visitorrdNUcloak_email_addressesreUtrim_footnote_reference_spacerfUenvrgNUdump_pseudo_xmlrhNUexpose_internalsriNUsectsubtitle_xformrjU source_linkrkNUrfc_referencesrlNUoutput_encodingrmUutf-8rnU source_urlroNUinput_encodingrpU utf-8-sigrqU_disable_configrrNU id_prefixrsUU tab_widthrtKUerror_encodingruUUTF-8rvU_sourcerwhUgettext_compactrxU generatorryNUdump_internalsrzNU smart_quotesr{U pep_base_urlr|U https://www.python.org/dev/peps/r}Usyntax_highlightr~UlongrUinput_encoding_error_handlerrj[Uauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(jIjEh'h jjj_j[uUsubstitution_namesr}rh#h*h}r(h]h]h]Usourcehh]h]uU footnotesr]rUrefidsr}rub.