<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi all,<br>
</p>
<p>I'm trying to create a perl program to add archival_objects and digital_objects into our ArchivesSpace system. I can query the database fine, and I seem to be able to get to the right API, but I can't seem to find any combination that allows me to embed
 a "resource" reference into my JSON for the post call.<br>
</p>
<p><br>
</p>
<p>I have gotten a variety of errors, but they are all telling me that the way I have specified the "resource/ref" is invalid, for example:<br>
</p>
<p><br>
</p>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>'resource/ref' => <span style="font-size: 12pt;">'Must be a JSONModel(:resource) uri (you provided a Hash) (malformed or invalid uri? check if referenced object exists.)'</span></div>
</blockquote>
<span style="font-size: 12pt;">​</span>
<div>I am assuming the real problem is that I "provided a Hash", not the "malformed or invalid uri", but in case it's relevant, the uri looks like this: "/repositories/3/resources/391".<br>
</div>
<div><br>
</div>
<div><span style="font-size: 12pt;"></span>I am defining the archival_object as a perl hash, with the various JSON elements as hash entries, e.g.:<br>
<p><br>
</p>
<div>    my %archival_object =</div>
<div>    (</div>
<div>        jsonmodel_type          =>  "archival_object",</div>
<div>        subjects                =>  [],</div>
<div>        linked_events           =>  [],</div>
<div>        extents                 =>  [],</div>
<div>        lang_materials          =>  [],<br>
</div>
<div>        ...<br>
</div>
<div>    );<br>
</div>
<div><br>
</div>
<div>I was able to specify the "dates", "notes", and "external_ids" sections as arrays with a hash as their only value, and that seems to work:<br>
</div>
<div><br>
</div>
<div>        dates                   =></div>
<div>        [</div>
<div>            {</div>
<div>                expression          =>  $rosDate,</div>
<div>                date_type           =>  "inclusive",</div>
<div>                label               =>  "creation",</div>
<div>                jsonmodel_type      =>  "date"</div>
<div>            }</div>
<div>        ],<br>
</div>
<div><br>
</div>
<div>But I haven't been able to find any way to specify the "resource" section in such a way that the API recognises my "ref" value. I have tried lots of ways, but always get one of these errors:<br>
</div>
<span style="font-size: 12pt;">​</span></div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>'resource' => <span style="font-size: 12pt;">'Property is required but was missing'</span></div>
<div><span style="font-size: 12pt;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);">'resource' => </span><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">'Must
 be a object (you provided a String)'</span><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">​</span><br>
</span></div>
<div>
<div>'resource/ref' => <span style="font-size: 12pt;">'Must be a JSONModel(:resource) uri (you provided a Hash) (malformed or invalid uri? check if referenced object exists.)'</span><span style="font-size: 12pt;">​</span><span style="font-size: 12pt;">​​</span></div>
</div>
</blockquote>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>'resource/ref' => <span style="font-size: 12pt;">'Must be a JSONModel(:resource) uri (you provided a String) (malformed or invalid uri? check if referenced object exists.)'</span><span style="font-size: 12pt;">​</span></div>
<div>
<div>'resource/ref' => <span style="font-size: 12pt;">'Must be a JSONModel(:resource) uri (you provided a Array) (malformed or invalid uri? check if referenced object exists.)'</span><span style="font-size: 12pt;">​</span><span style="font-size: 12pt;">​</span></div>
</div>
</blockquote>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div><span style="font-size: 12pt;">​<br>
</span></div>
</blockquote>
<div>
<div>
<div>I can't think of any other data types, pointers, or combinations that I can try, and I don't know what the API is looking for. I even tried doing a search to get a Resource record and plugging the result directly into my archival_object structure, but
 that didn't change anything.</div>
<div><br>
</div>
<div>How can I define my archival_object structure so that it will validate? Unfortunately, using python or ruby in place of perl probably isn't an option. I'm happy to provide more information, including more of my code, but didn't want to spam everybody with
 it.<br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Alan Manifold</div>
<div>State Library Victoria<br>
</div>
</div>
</div>
<br>
<div style="font-size:11pt;font-family:Century 
Gothic"><b>Alan Manifold | Library Systems & Digital Preservation Manager | Collection Development & Description
</b><br>
State Library Victoria | 328 Swanston Street | Melbourne VIC 3000 <br>
T +61 3 8664 7122 | amanifold@slv.vic.gov.au <br>
<a tabindex="0" href="http://slv.vic.gov.au">slv.vic.gov.au</a><br>
<br>
<table>
<tbody>
<tr>
<td colspan="3"><a tabindex="0" href="https://www.slv.vic.gov.au/email_campaign"><img src="https://www.slv.vic.gov.au/sites/default/files/email_signature/signature.jpg?9"></a></td>
<td></td>
</tr>
<tr>
<td colspan="3"><img src="https://www.slv.vic.gov.au/sites/default/files/email_signature/follow-us.png" alt="follow 
us"></td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr>
<td><a tabindex="0" style="text-decoration:none;" href="http://www.facebook.com/pages/Melbourne-Australia/State-Library-of-Victoria/32256104331"><img src="https://www.slv.vic.gov.au/sites/default/files/email_signature/facebook.png" alt="SLV facebook"></a></td>
<td><a tabindex="0" style="text-decoration:none;" href="http://twitter.com/Library_Vic"><img src="http://www.slv.vic.gov.au/sites/default/files/email_signature/twitter.png" alt="SLV twitter"></a></td>
<td><a tabindex="0" style="text-decoration:none;" href="http://www.youtube.com/user/statelibraryvictoria"><img src="https://www.slv.vic.gov.au/sites/default/files/email_signature/youtube.png" alt="SLV youtube"></a></td>
<td><a tabindex="0" style="text-decoration:none;" href="http://instagram.com/library_vic"><img src="https://secure.slv.vic.gov.au/cdn/email_signature/instagram.png" alt="SLV 
instagram"></a></td>
<td><img src="https://www.slv.vic.gov.au/sites/default/files/email_signature/racv-logo-small.png" alt="Gold Winner 2018 RACV Victorian Tourism Awards"></td>
<td width="30"> </td>
<td><img src="https://www.slv.vic.gov.au/sites/default/files/email_signature/mea-logo.jpg" alt="MEA Awards 2018 National Winner"></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
This message and any attachment is intended only for the use of the Addressee and may contain information that is PRIVILEGED and CONFIDENTIAL. If you are not the intended recipient, you are hereby notified that any dissemination of this communication is strictly
 prohibited. If you have received this communication in error, please delete all copies of the message and its attachments and notify the sender immediately. Thank you.
</body>
</html>