-
Notifications
You must be signed in to change notification settings - Fork 12
/
DataFileUtil.html
1 lines (1 loc) · 122 KB
/
DataFileUtil.html
1
<!DOCTYPE html><html><head><title>DataFileUtil</title><link rel="stylesheet" href="KIDLspec.css"></head><body><div class="module"><div class="comment"><div>/*</div><div><span class="space"></span><span>*</span><span class="space"></span><span>Contains utilities for saving and retrieving data to and from KBase data</span></div><div><span class="space"></span><span>*</span><span class="space"></span><span>services. Requires Shock 0.9.6+ and Workspace Service 0.4.1+.</span></div><div><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="space"></span><span>*</span><span class="space"></span><span>Note that some calls may create files or directories in the root of the scratch space (typically</span></div><div><span class="space"></span><span>*</span><span class="space"></span><span>/kb/module/work/tmp). For this reason client programmers should not request that DFU archive from</span></div><div><span class="space"></span><span>*</span><span class="space"></span><span>the root of the scratch space - always create a new directory (e.g. using a UUID for a name or a</span></div><div><span class="space"></span><span>*</span><span class="space"></span><span>standard library temporary directory utility) and add the target files to that directory when</span></div><div><span class="space"></span><span>*</span><span class="space"></span><span>archiving.</span></div><div><span class="space"></span><span>*/</span></div></div><span class="keyword">module</span><span class="space"></span><span class="name">DataFileUtil</span><span class="space"></span><span>{</span><br><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>A boolean - 0 for false, 1 for true.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="annotation">@range</span><span class="space"></span><span>(0, 1)</span></span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span class="primitive">int</span><span class="space"></span><span class="name" id="typedefDataFileUtil.boolean">boolean</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>A handle for a file stored in Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>hid - the id of the handle in the Handle Service that references this</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span>shock node</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>id - the id for the shock node</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>url - the url of the shock server</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>type - the type of the handle. This should always be shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>file_name - the name of the file</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>remote_md5 - the md5 digest of the file.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">hid</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_name</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">url</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">type</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">remote_md5</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.Handle">Handle</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input for the shock_to_file function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>shock_id | handle_id - the ID of the Shock node, or the Handle to a shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>file_path - the location to save the file output. If this is a</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>directory, the file will be named as per the filename in Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>unpack - either null, 'uncompress', or 'unpack'. 'uncompress' will cause</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>any bzip or gzip files to be uncompressed. 'unpack' will behave the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>same way, but it will also unpack tar and zip archive files</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>(uncompressing gzipped or bzipped archive files if necessary). If</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>'uncompress' is specified and an archive file is encountered, an</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>error will be thrown. If the file is an archive, it will be</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>unbundled into the directory containing the original output file.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Note that if the file name (either as provided by the user or by</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Shock) without the a decompression extension (e.g. .gz, .zip or</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>.tgz -> .tar) points to an existing file and unpack is specified,</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>that file will be overwritten by the decompressed Shock file.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">handle_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">unpack</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.ShockToFileParams">ShockToFileParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Output from the shock_to_file function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span>node_file_name - the filename of the file as stored in Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span>file_path - the path to the downloaded file. If a directory was</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>specified in the input, this will be the directory appended with the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>shock file name. If a file was specified, it will be that file path.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>In either case, if the file is uncompressed any compression file</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>extensions will be removed (e.g. .gz) and or altered (e.g. .tgz -></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>.tar) as appropriate.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span>size - the size of the file in bytes as stored in Shock, prior to</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>unpacking.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span>attributes - the file attributes, if any, stored in Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">node_file_name</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">int</span><span class="space"></span><span class="name">size</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">mapping</span><span><</span><span class="primitive">string</span><span>,</span><span class="space"></span><span class="primitive">UnspecifiedObject</span><span>></span></span><span class="space"></span><span class="name">attributes</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.ShockToFileOutput">ShockToFileOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Download a file from Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.shock_to_file">shock_to_file</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.ShockToFileParams">ShockToFileParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.ShockToFileOutput">ShockToFileOutput</a></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Download multiple files from Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.shock_to_file_mass">shock_to_file_mass</span><span>(</span><span class="parameters"><span class="parameter"><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.ShockToFileParams">ShockToFileParams</a></span><span>></span></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.ShockToFileOutput">ShockToFileOutput</a></span><span>></span></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input for the file_to_shock function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>file_path - the location of the file (or directory if using the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>pack parameter) to load to Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>attributes - DEPRECATED: attributes are currently ignored by the upload function and</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>will be removed entirely in a future version. User-specified attributes to save to the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Shock node along with the file.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>make_handle - make a Handle Service handle for the shock node. Default</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>false.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>pack - compress a file or archive a directory before loading to Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The file_path argument will be appended with the appropriate file</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>extension prior to writing. For gzips only, if the file extension</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>denotes that the file is already compressed, it will be skipped. If</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_path is a directory and tarring or zipping is specified, the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>created file name will be set to the directory name, possibly</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>overwriting an existing file. Attempting to pack the root directory</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>is an error. Do not attempt to pack the scratch space root as noted</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>in the module description.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The allowed values are:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>gzip - gzip the file given by file_path.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>targz - tar and gzip the directory specified by the directory</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>portion of the file_path into the file specified by the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_path.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>zip - as targz but zip the directory.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">mapping</span><span><</span><span class="primitive">string</span><span>,</span><span class="space"></span><span class="primitive">UnspecifiedObject</span><span>></span></span><span class="space"></span><span class="name">attributes</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.boolean">boolean</a></span><span class="space"></span><span class="name">make_handle</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">pack</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.FileToShockParams">FileToShockParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Output of the file_to_shock function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>shock_id - the ID of the new Shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>handle - the new handle, if created. Null otherwise.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>node_file_name - the name of the file stored in Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>size - the size of the file stored in shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.Handle">Handle</a></span><span class="space"></span><span class="name">handle</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">node_file_name</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">size</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.FileToShockOutput">FileToShockOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Load a file to Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.file_to_shock">file_to_shock</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.FileToShockParams">FileToShockParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.FileToShockOutput">FileToShockOutput</a></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.UnpackFileParams">UnpackFileParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.UnpackFileResult">UnpackFileResult</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Using the same logic as unpacking a Shock file, this method will cause</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>any bzip or gzip files to be uncompressed, and then unpack tar and zip</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>archive files (uncompressing gzipped or bzipped archive files if</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>necessary). If the file is an archive, it will be unbundled into the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>directory containing the original output file.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.unpack_file">unpack_file</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.UnpackFileParams">UnpackFileParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.UnpackFileResult">UnpackFileResult</a></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input for the pack_file function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_path - the location of the file (or directory if using the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>pack parameter) to load to Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>pack - The format into which the file or files will be packed.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The file_path argument will be appended with the appropriate file</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>extension prior to writing. For gzips only, if the file extension</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>denotes that the file is already compressed, it will be skipped. If</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_path is a directory and tarring or zipping is specified, the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>created file name will be set to the directory name, possibly</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>overwriting an existing file. Attempting to pack the root directory</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>is an error. Do not attempt to pack the scratch space root as noted</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>in the module description.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The allowed values are:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>gzip - gzip the file given by file_path.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>targz - tar and gzip the directory specified by the directory</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>portion of the file_path into the file specified by the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_path.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>zip - as targz but zip the directory.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">pack</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.PackFileParams">PackFileParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Output from the pack_file function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_path - the path to the packed file.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.PackFileResult">PackFileResult</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Pack a file or directory into gzip, targz, or zip archives.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.pack_file">pack_file</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.PackFileParams">PackFileParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.PackFileResult">PackFileResult</a></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input for the package_for_download function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>file_path - the location of the directory to compress as zip archive</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>before loading to Shock. This argument will be appended with the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>'.zip' file extension prior to writing. If it is a directory, file</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>name of the created archive will be set to the directory name</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>followed by '.zip', possibly overwriting an existing file.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Attempting to pack the root directory is an error. Do not attempt</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>to pack the scratch space root as noted in the module description.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>ws_ref - list of references to workspace objects which will be used to</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>produce info-files in JSON format containing workspace metadata and</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>provenance structures. It produces new files in folder pointed</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>by file_path (or folder containing file pointed by file_path if</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>it's not folder).</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>attributes - DEPRECATED: attributes are currently ignored by the upload function and</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>will be removed entirely in a future version. User-specified attributes to save to the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Shock node along with the file.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_path</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">mapping</span><span><</span><span class="primitive">string</span><span>,</span><span class="space"></span><span class="primitive">UnspecifiedObject</span><span>></span></span><span class="space"></span><span class="name">attributes</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">list</span><span><</span><span class="primitive">string</span><span>></span></span><span class="space"></span><span class="name">ws_refs</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.PackageForDownloadParams">PackageForDownloadParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Output of the package_for_download function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>shock_id - the ID of the new Shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>node_file_name - the name of the file stored in Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>size - the size of the file stored in shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">node_file_name</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">size</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.PackageForDownloadOutput">PackageForDownloadOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.package_for_download">package_for_download</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.PackageForDownloadParams">PackageForDownloadParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.PackageForDownloadOutput">PackageForDownloadOutput</a></span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Load multiple files to Shock.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.file_to_shock_mass">file_to_shock_mass</span><span>(</span><span class="parameters"><span class="parameter"><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.FileToShockParams">FileToShockParams</a></span><span>></span></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.FileToShockOutput">FileToShockOutput</a></span><span>></span></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input for the copy_shock_node function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>shock_id - the id of the node to copy.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>make_handle - make a Handle Service handle for the shock node. Default</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>false.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.boolean">boolean</a></span><span class="space"></span><span class="name">make_handle</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.CopyShockNodeParams">CopyShockNodeParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Output of the copy_shock_node function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>shock_id - the id of the new Shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>handle - the new handle, if created. Null otherwise.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.Handle">Handle</a></span><span class="space"></span><span class="name">handle</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.CopyShockNodeOutput">CopyShockNodeOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Copy a Shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.copy_shock_node">copy_shock_node</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.CopyShockNodeParams">CopyShockNodeParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.CopyShockNodeOutput">CopyShockNodeOutput</a></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input for the own_shock_node function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>shock_id - the id of the node for which the user needs ownership.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>make_handle - make or find a Handle Service handle for the shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Default false.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.boolean">boolean</a></span><span class="space"></span><span class="name">make_handle</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.OwnShockNodeParams">OwnShockNodeParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Output of the own_shock_node function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>shock_id - the id of the (possibly new) Shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>handle - the handle, if requested. Null otherwise.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">shock_id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.Handle">Handle</a></span><span class="space"></span><span class="name">handle</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.OwnShockNodeOutput">OwnShockNodeOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Gain ownership of a Shock node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Returns a shock node id which is owned by the caller, given a shock</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>node id.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>If the shock node is already owned by the caller, returns the same</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>shock node ID. If not, the ID of a copy of the original node will be</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>returned.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>If a handle is requested, the node is already owned by the caller, and</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>a handle already exists, that handle will be returned. Otherwise a new</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>handle will be created and returned.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.own_shock_node">own_shock_node</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.OwnShockNodeParams">OwnShockNodeParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.OwnShockNodeOutput">OwnShockNodeOutput</a></span><span class="space"></span><span class="name">out</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Translate a workspace name to a workspace ID.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.ws_name_to_id">ws_name_to_id</span><span>(</span><span class="parameters"><span class="parameter"><span class="primitive">string</span><span class="space"></span><span class="name">name</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="primitive">int</span><span class="space"></span><span class="name">id</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Information about an object, including user provided metadata.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>objid - the numerical id of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>name - the name of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>type - the type of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>save_date - the save date of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>ver - the version of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>saved_by - the user that saved or copied the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>wsid - the id of the workspace containing the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>workspace - the name of the workspace containing the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>chsum - the md5 checksum of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>size - the size of the object in bytes.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>meta - arbitrary user-supplied metadata about</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">tuple</span><span><</span><span class="primitive">int</span><span class="space"></span><span class="name">objid</span><span>,</span><span class="space"></span><span class="primitive">string</span><span class="space"></span><span class="name">name</span><span>,</span><span class="space"></span><span class="primitive">string</span><span class="space"></span><span class="name">type</span><span>,</span><span class="space"></span><span class="primitive">string</span><span class="space"></span><span class="name">save_date</span><span>,</span><span class="space"></span><span class="primitive">int</span><span class="space"></span><span class="name">version</span><span>,</span><span class="space"></span><span class="primitive">string</span><span class="space"></span><span class="name">saved_by</span><span>,</span><span class="space"></span><span class="primitive">int</span><span class="space"></span><span class="name">wsid</span><span>,</span><span class="space"></span><span class="primitive">string</span><span class="space"></span><span class="name">workspace</span><span>,</span><span class="space"></span><span class="primitive">string</span><span class="space"></span><span class="name">chsum</span><span>,</span><span class="space"></span><span class="primitive">int</span><span class="space"></span><span class="name">size</span><span>,</span><span class="space"></span><span><span class="primitive">mapping</span><span><</span><span class="primitive">string</span><span>,</span><span class="space"></span><span class="primitive">string</span><span>></span></span><span class="space"></span><span class="name">meta</span><span>></span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.object_info">object_info</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>An object and associated data required for saving.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>type - the workspace type string for the object. Omit the version</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>information to use the latest version.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>data - the object data.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>One of an object name or id:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>name - the name of the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>objid - the id of the object to save over.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>meta - arbitrary user-supplied metadata for the object,</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>not to exceed 16kb; if the object type specifies automatic</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>metadata extraction with the 'meta ws' annotation, and your</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>metadata name conflicts, then your metadata will be silently</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>overwritten.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>hidden - true if this object should not be listed when listing</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>workspace objects.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>extra_provenance_input_refs - (optional) if set, these refs will</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>be appended to the primary ProveanceAction input_ws_objects</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>reference list. In general, if the input WS object ref was</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>passed in from a narrative App, this will be set for you.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>However, there are cases where the object ref passed to</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the App is a container, and you are operating on a member</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>or subobject of the container, in which case to maintain</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>that direct mapping to those subobjects in the provenance</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>of new objects, you can provide additional object refs</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>here. For example, if the input is a ReadsSet, and your</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>App creates a new WS object for each read library in the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>set, you may want a direct reference from each new WS</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>object not only to the set, but also to the individual</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>read library.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">type</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">UnspecifiedObject</span><span class="space"></span><span class="name">data</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">name</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">int</span><span class="space"></span><span class="name">objid</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">mapping</span><span><</span><span class="primitive">string</span><span>,</span><span class="space"></span><span class="primitive">string</span><span>></span></span><span class="space"></span><span class="name">meta</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.boolean">boolean</a></span><span class="space"></span><span class="name">hidden</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">list</span><span><</span><span class="primitive">string</span><span>></span></span><span class="space"></span><span class="name">extra_provenance_input_refs</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.ObjectSaveData">ObjectSaveData</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input parameters for the "save_objects" function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>id - the numerical ID of the workspace.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>objects - the objects to save.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The object provenance is automatically pulled from the SDK runner.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">int</span><span class="space"></span><span class="name">id</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.ObjectSaveData">ObjectSaveData</a></span><span>></span></span><span class="space"></span><span class="name">objects</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.SaveObjectsParams">SaveObjectsParams</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Save objects to the workspace.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>The objects will be sorted prior to saving to avoid the Workspace sort memory limit.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Note that if the object contains workspace object refs in mapping keys that may cause</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>the Workspace to resort the data. To avoid this, convert any refs in mapping keys to UPA</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>format (e.g. #/#/#, where # is a positive integer).</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>If the data is very large, using the WSLargeDataIO SDK module is advised.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Saving over a deleted object undeletes it.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.save_objects">save_objects</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.SaveObjectsParams">SaveObjectsParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.object_info">object_info</a></span><span>></span></span><span class="space"></span><span class="name">info</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input parameters for the "get_objects" function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>object_refs - a list of object references in the form X/Y/Z, where X is</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the workspace name or id, Y is the object name or id, and Z is the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>(optional) object version. In general, always use ids rather than</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>names if possible to avoid race conditions.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>A reference path may be specified by separating references by a semicolon, e.g.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>4/5/6;5/7/2;8/9/4 specifies that the user wishes to retrieve the fourth version of</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the object with id 9 in workspace 8, and that there exists a reference path from</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the sixth version of the object with id 5 in workspace 4, to which the user has access.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The user may or may not have access to workspaces 5 and 8.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Optional parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>ignore_errors - ignore any errors that occur when fetching an object</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>and instead insert a null into the returned list.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">list</span><span><</span><span class="primitive">string</span><span>></span></span><span class="space"></span><span class="name">object_refs</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.boolean">boolean</a></span><span class="space"></span><span class="name">ignore_errors</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.GetObjectsParams">GetObjectsParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>The data and supplemental info for an object.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>UnspecifiedObject data - the object's data or subset data.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>object_info info - information about the object.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">UnspecifiedObject</span><span class="space"></span><span class="name">data</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.object_info">object_info</a></span><span class="space"></span><span class="name">info</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.ObjectData">ObjectData</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Results from the get_objects function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>list<ObjectData> data - the returned objects.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefDataFileUtil.ObjectData">ObjectData</a></span><span>></span></span><span class="space"></span><span class="name">data</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.GetObjectsResults">GetObjectsResults</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Get objects from the workspace.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.get_objects">get_objects</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.GetObjectsParams">GetObjectsParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.GetObjectsResults">GetObjectsResults</a></span><span class="space"></span><span class="name">results</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Get the versions of the Workspace service and Shock service.</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.versions">versions</span><span>(</span><span class="parameters"></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="primitive">string</span><span class="space"></span><span class="name">wsver</span></span><span>,</span><span class="space"></span><span class="parameter"><span class="primitive">string</span><span class="space"></span><span class="name">shockver</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input parameters for the "download_staging_file" function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>staging_file_subdir_path: subdirectory file path</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>e.g.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>for file: /data/bulk/user_name/file_name</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>staging_file_subdir_path is file_name</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>for file: /data/bulk/user_name/subdir_1/subdir_2/file_name</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>staging_file_subdir_path is subdir_1/subdir_2/file_name</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">staging_file_subdir_path</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.DownloadStagingFileParams">DownloadStagingFileParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Results from the download_staging_file function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>copy_file_path: copied file scratch area path</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">copy_file_path</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.DownloadStagingFileOutput">DownloadStagingFileOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Download a staging area file to scratch area</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.download_staging_file">download_staging_file</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.DownloadStagingFileParams">DownloadStagingFileParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.DownloadStagingFileOutput">DownloadStagingFileOutput</a></span><span class="space"></span><span class="name">results</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Input parameters for the "download_web_file" function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>Required parameters:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>file_url: file URL</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>download_type: one of ['Direct Download', 'FTP', 'DropBox', 'Google Drive']</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">file_url</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">download_type</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.DownloadWebFileParams">DownloadWebFileParams</span><span>;</span></span></div><br><div><span class="typedef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Results from the download_web_file function.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span></span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>copy_file_path: copied file scratch area path</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">typedef</span><span class="space"></span><span><span class="primitive">structure</span><span class="space"></span><span>{</span><div><span><span class="tab"></span><span class="tab"></span><span class="primitive">string</span><span class="space"></span><span class="name">copy_file_path</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefDataFileUtil.DownloadWebFileOutput">DownloadWebFileOutput</span><span>;</span></span></div><br><div><span class="funcdef"><div class="comment"><div><span class="tab"></span><span>/*</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Download a web file to scratch area</span></div><div><span class="tab"></span><span class="space"></span><span>*/</span></div></div><span class="tab"></span><span class="keyword">funcdef</span><span class="space"></span><span class="name" id="funcdefDataFileUtil.download_web_file">download_web_file</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.DownloadWebFileParams">DownloadWebFileParams</a></span><span class="space"></span><span class="name">params</span></span></span><span>)</span><span class="space"></span><span class="keyword">returns</span><span>(</span><span class="returns"><span class="parameter"><span class="name"><a href="#typedefDataFileUtil.DownloadWebFileOutput">DownloadWebFileOutput</a></span><span class="space"></span><span class="name">results</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">required</span><span>;</span></span></div><span>}</span><span>;</span></div><div class="index"><h2>Function Index</h2><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.copy_shock_node">copy_shock_node</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.download_staging_file">download_staging_file</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.download_web_file">download_web_file</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.file_to_shock">file_to_shock</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.file_to_shock_mass">file_to_shock_mass</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.get_objects">get_objects</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.own_shock_node">own_shock_node</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.pack_file">pack_file</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.package_for_download">package_for_download</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.save_objects">save_objects</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.shock_to_file">shock_to_file</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.shock_to_file_mass">shock_to_file_mass</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.unpack_file">unpack_file</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.versions">versions</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefDataFileUtil.ws_name_to_id">ws_name_to_id</a></span></div><h2>Type Index</h2><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.boolean">boolean</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.CopyShockNodeOutput">CopyShockNodeOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.CopyShockNodeParams">CopyShockNodeParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.DownloadStagingFileOutput">DownloadStagingFileOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.DownloadStagingFileParams">DownloadStagingFileParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.DownloadWebFileOutput">DownloadWebFileOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.DownloadWebFileParams">DownloadWebFileParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.FileToShockOutput">FileToShockOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.FileToShockParams">FileToShockParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.GetObjectsParams">GetObjectsParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.GetObjectsResults">GetObjectsResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.Handle">Handle</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.object_info">object_info</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.ObjectData">ObjectData</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.ObjectSaveData">ObjectSaveData</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.OwnShockNodeOutput">OwnShockNodeOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.OwnShockNodeParams">OwnShockNodeParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.PackageForDownloadOutput">PackageForDownloadOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.PackageForDownloadParams">PackageForDownloadParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.PackFileParams">PackFileParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.PackFileResult">PackFileResult</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.SaveObjectsParams">SaveObjectsParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.ShockToFileOutput">ShockToFileOutput</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.ShockToFileParams">ShockToFileParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.UnpackFileParams">UnpackFileParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefDataFileUtil.UnpackFileResult">UnpackFileResult</a></span></div></div></body></html>