-
Notifications
You must be signed in to change notification settings - Fork 0
/
SampleService.html
1 lines (1 loc) · 156 KB
/
SampleService.html
1
<!DOCTYPE html><html><head><title>SampleService</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>A KBase module: SampleService</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>Handles creating, updating, retriving samples and linking data to samples.</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 usage of the administration flags will be logged by the service.</span></div><div><span class="space"></span><span>*/</span></div></div><span class="keyword">module</span><span class="space"></span><span class="name">SampleService</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 value, 0 for false, 1 for true.</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="typedefSampleService.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 timestamp in epoch milliseconds.</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="typedefSampleService.timestamp">timestamp</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 user's username.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.user">user</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 SampleNode ID. Must be unique within a Sample and be less than 255 characters.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.node_id">node_id</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 type of a sample node. One of:</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>BioReplicate - a biological replicate. Always at the top of the sample tree.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>TechReplicate - a technical replicate.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>SubSample - a sub sample that is not a technical replicate.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.samplenode_type">samplenode_type</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 Sample ID. Must be globally unique. Always assigned by the Sample service.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.sample_id">sample_id</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 link ID. Must be globally unique. Always assigned by the Sample service.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Typically only of use to service admins.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.link_id">link_id</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 sample name. Must be less than 255 characters.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.sample_name">sample_name</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 version of a sample. Always > 0.</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="typedefSampleService.version">version</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 key in a metadata key/value pair. Less than 1000 unicode characters.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.metadata_key">metadata_key</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 key for a value associated with a piece of metadata. Less than 1000 unicode characters.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Examples: units, value, species</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.metadata_value_key">metadata_value_key</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 workspace type string.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Specifies the workspace data type a single string in the format</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>[module].[typename]:</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>module - a string. The module name of the typespec containing the type.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>typename - a string. The name of the type as assigned by the typedef</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>statement.</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>Example: KBaseSets.SampleSet</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.ws_type_string">ws_type_string</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 metadata value, represented by a mapping of value keys to primitive values. An example for</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>a location metadata key might be:</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>"name": "Castle Geyser",</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>"lat": 44.463816,</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>"long": -110.836471</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span><span class="space"></span>}</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>"primitive values" means an int, float, string, or equivalent typedefs. Including any</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>collection types is an error.</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">mapping</span><span><</span><span class="name"><a href="#typedefSampleService.metadata_value_key">metadata_value_key</a></span><span>,</span><span class="space"></span><span class="primitive">UnspecifiedObject</span><span>></span></span><span class="space"></span><span class="name" id="typedefSampleService.metadata_value">metadata_value</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>Metadata attached to a sample.</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">mapping</span><span><</span><span class="name"><a href="#typedefSampleService.metadata_key">metadata_key</a></span><span>,</span><span class="space"></span><span class="name"><a href="#typedefSampleService.metadata_value">metadata_value</a></span><span>></span></span><span class="space"></span><span class="name" id="typedefSampleService.metadata">metadata</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 a metadata key as it appeared at the data source.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>The source key and value represents the original state of the metadata before it was</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>tranformed for ingestion by the sample service.</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>key - the metadata key.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>skey - the key as it appeared at the data source.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>svalue - the value as it appeared at the data source.</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="name"><a href="#typedefSampleService.metadata_key">metadata_key</a></span><span class="space"></span><span class="name">key</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata_key">metadata_key</a></span><span class="space"></span><span class="name">skey</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata_value">metadata_value</a></span><span class="space"></span><span class="name">svalue</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.SourceMetadata">SourceMetadata</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 KBase Workspace service Unique Permanent Address (UPA). E.g. 5/6/7 where 5 is the</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>workspace ID, 6 the object ID, and 7 the object version.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.ws_upa">ws_upa</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 id for a unit of data within a KBase Workspace object. A single object may contain</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>many data units. A dataid is expected to be unique within a single object. Must be less</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>than 255 characters.</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">string</span><span class="space"></span><span class="name" id="typedefSampleService.data_id">data_id</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 node in a sample tree.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>id - the ID of the node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>parent - the id of the parent node for the current node. BioReplicate nodes, and only</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>BioReplicate nodes, do not have a parent.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>type - the type of the node.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>meta_controlled - metadata restricted by the sample controlled vocabulary and validators.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>source_meta - the pre-transformation keys and values of the controlled metadata at 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>data source for controlled metadata keys. In some cases the source metadata</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>may be transformed prior to ingestion by the Sample Service; the contents of 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><span class="space"></span>data structure allows for reconstructing the original representation. The metadata</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>here is not validated other than basic size checks and is provided on 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>informational basis only. The metadata keys in the SourceMetadata data structure</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>must be a subset of the meta_controlled mapping keys.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>meta_user - unrestricted metadata.</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="name"><a href="#typedefSampleService.node_id">node_id</a></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="name"><a href="#typedefSampleService.node_id">node_id</a></span><span class="space"></span><span class="name">parent</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.samplenode_type">samplenode_type</a></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="name"><a href="#typedefSampleService.metadata">metadata</a></span><span class="space"></span><span class="name">meta_controlled</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="#typedefSampleService.SourceMetadata">SourceMetadata</a></span><span>></span></span><span class="space"></span><span class="name">source_meta</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata">metadata</a></span><span class="space"></span><span class="name">meta_user</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.SampleNode">SampleNode</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 Sample, consisting of a tree of subsamples and replicates.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>id - the ID of the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>user - the user that saved the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>node_tree - the tree(s) of sample nodes in the sample. The the roots of all trees must</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>be BioReplicate nodes. All the BioReplicate nodes must be at the start of the list,</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>and all child nodes must occur after their parents in the list.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>name - the name of the sample. Must be less than 255 characters.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>save_date - the date the sample version was saved.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>version - the version of the sample.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">user</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="#typedefSampleService.SampleNode">SampleNode</a></span><span>></span></span><span class="space"></span><span class="name">node_tree</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_name">sample_name</a></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="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">save_date</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.Sample">Sample</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>Access control lists for a sample. Access levels include the privileges of the lower</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>access levels.</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>owner - the user that created and owns the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>admin - users that can administrate (e.g. alter ACLs) the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>write - users that can write (e.g. create a new version) to the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>read - users that can view the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>public_read - whether any user can read the sample, regardless of permissions.</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="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">owner</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">admin</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">write</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">read</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">public_read</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.SampleACLs">SampleACLs</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 Sample ID and version.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>id - the ID of the sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>version - the version of the sample.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.SampleAddress">SampleAddress</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>Parameters for creating a sample.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>If Sample.id is null, a new Sample is created along with a new ID.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Otherwise, a new version of Sample.id is created. If Sample.id does not exist, an error</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>is returned.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>Any incoming user, version or timestamp in the incoming sample is ignored.</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>sample - the sample to save.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>prior_version - if non-null, ensures that no other sample version is saved between</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>prior_version and the version that is created by this save. If this is not the case,</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 sample will fail to save.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>as_admin - run the method as a service administrator. The user must have full</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>administration permissions.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>as_user - create the sample as a different user. Ignored if as_admin is not true. Neither</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 administrator nor the impersonated user need have permissions to the sample if 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>new version is saved.</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="name"><a href="#typedefSampleService.Sample">Sample</a></span><span class="space"></span><span class="name">sample</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">prior_version</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">as_user</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.CreateSampleParams">CreateSampleParams</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>Create a new sample or a sample version.</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="funcdefSampleService.create_sample">create_sample</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.CreateSampleParams">CreateSampleParams</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="#typedefSampleService.SampleAddress">SampleAddress</a></span><span class="space"></span><span class="name">address</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>get_sample parameters.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>id - the ID of the sample to retrieve.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>version - the version of the sample to retrieve, or the most recent sample if omitted.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>as_admin - get the sample regardless of ACLs as long as the user has administration read</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>permissions.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetSampleParams">GetSampleParams</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 a sample. If the version is omitted the most recent sample is 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="funcdefSampleService.get_sample">get_sample</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetSampleParams">GetSampleParams</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="#typedefSampleService.Sample">Sample</a></span><span class="space"></span><span class="name">sample</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">optional</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.SampleIdentifier">SampleIdentifier</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><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefSampleService.SampleIdentifier">SampleIdentifier</a></span><span>></span></span><span class="space"></span><span class="name">samples</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetSamplesParams">GetSamplesParams</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="funcdefSampleService.get_samples">get_samples</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetSamplesParams">GetSamplesParams</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="#typedefSampleService.Sample">Sample</a></span><span>></span></span><span class="space"></span><span class="name">samples</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">optional</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>get_sample_acls parameters.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>id - the ID of the sample to retrieve.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>as_admin - get the sample acls regardless of ACL contents as long as the user has</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>administration read permissions.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetSampleACLsParams">GetSampleACLsParams</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 a sample's ACLs.</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="funcdefSampleService.get_sample_acls">get_sample_acls</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetSampleACLsParams">GetSampleACLsParams</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="#typedefSampleService.SampleACLs">SampleACLs</a></span><span class="space"></span><span class="name">acls</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">optional</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>update_sample_acls parameters.</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>id - the ID of the sample to modify.</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>admin - a list of users that will receive admin privileges. Default none.</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>write - a list of users that will receive write privileges. Default none.</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 - a list of users that will receive read privileges. Default none.</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>remove - a list of users that will have all privileges removed. Default none.</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>public_read - an integer that determines whether the sample will be set to publicly</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>readable:</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>> 0: public read.</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>0: No change (the 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><span class="space"></span>< 0: private.</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>at_least - false, the default, indicates that the users should get the exact permissions</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>as specified in the user lists, which may mean a reduction in permissions. If true,</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>users that already exist in the sample ACLs will not have their permissions reduced</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>as part of the ACL update unless they are in the remove list. E.g. if a user has</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>write permissions and read permissions are specified in the update, no changes 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>be made to the user's permission.</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>as_admin - update the sample acls regardless of sample ACL contents as long as the user has</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>full service administration permissions.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">admin</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">write</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">read</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">remove</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">public_read</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">at_least</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.UpdateSampleACLsParams">UpdateSampleACLsParams</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>Update a sample's ACLs.</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="funcdefSampleService.update_sample_acls">update_sample_acls</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.UpdateSampleACLsParams">UpdateSampleACLsParams</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><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>update_samples_acls parameters.</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>These parameters are the same as update_sample_acls, except:</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>ids - a list of IDs of samples to modify.</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="#typedefSampleService.sample_id">sample_id</a></span><span>></span></span><span class="space"></span><span class="name">ids</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">admin</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">write</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">read</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="#typedefSampleService.user">user</a></span><span>></span></span><span class="space"></span><span class="name">remove</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">public_read</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">at_least</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.UpdateSamplesACLsParams">UpdateSamplesACLsParams</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>Update the ACLs of many samples.</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="funcdefSampleService.update_samples_acls">update_samples_acls</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.UpdateSamplesACLsParams">UpdateSamplesACLsParams</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><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>replace_sample_acls parameters.</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>id - the ID of the sample to modify.</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>acls - the ACLs to set on the sample.</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>as_admin - replace the sample acls regardless of sample ACL contents as long as the user</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>has full service administration permissions.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.SampleACLs">SampleACLs</a></span><span class="space"></span><span class="name">acls</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.ReplaceSampleACLsParams">ReplaceSampleACLsParams</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>Completely overwrite a sample's ACLs. Any current ACLs are replaced by the provided</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>ACLs, even if empty, and gone forever.</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 sample owner cannot be changed via this method.</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="funcdefSampleService.replace_sample_acls">replace_sample_acls</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.ReplaceSampleACLsParams">ReplaceSampleACLsParams</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><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>get_metadata_key_static_metadata parameters.</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>keys - the list of metadata keys to interrogate.</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>prefix -</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>0 (the default) to interrogate standard metadata keys.</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>1 to interrogate prefix metadata keys, but require an exact match to the prefix key.</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>2 to interrogate prefix metadata keys, but any keys which are a prefix of 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>provided keys will be included in the results.</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="#typedefSampleService.metadata_key">metadata_key</a></span><span>></span></span><span class="space"></span><span class="name">keys</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">prefix</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetMetadataKeyStaticMetadataParams">GetMetadataKeyStaticMetadataParams</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>get_metadata_key_static_metadata results.</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>static_metadata - the static metadata for the requested keys.</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="name"><a href="#typedefSampleService.metadata">metadata</a></span><span class="space"></span><span class="name">static_metadata</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetMetadataKeyStaticMetadataResults">GetMetadataKeyStaticMetadataResults</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 static metadata for one or more metadata keys.</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>The static metadata for a metadata key is metadata *about* the key - e.g. it may</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>define the key's semantics or denote that the key is linked to an ontological 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><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 static metadata does not change without the service being restarted. Client caching 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>recommended to improve performance.</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="funcdefSampleService.get_metadata_key_static_metadata">get_metadata_key_static_metadata</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetMetadataKeyStaticMetadataParams">GetMetadataKeyStaticMetadataParams</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="#typedefSampleService.GetMetadataKeyStaticMetadataResults">GetMetadataKeyStaticMetadataResults</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">none</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>create_data_link parameters.</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>upa - the workspace UPA of the object to be linked.</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>dataid - the dataid of the data to be linked, if any, within the object. If omitted 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>entire object is linked to the sample.</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>id - the sample 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>version - the sample 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>node - the sample 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>update - if false (the default), fail if a link already exists from the data unit (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>combination of the UPA and dataid). if true, expire the old link and create the new</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>link unless the link is already to the requested sample node, in which case 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>operation is a no-op.</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>as_admin - run the method as a service administrator. The user must have full</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>administration permissions.</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>as_user - create the link as a different user. Ignored if as_admin is not true. Neither</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>the administrator nor the impersonated user need have permissions to the data 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><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>sample.</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="name"><a href="#typedefSampleService.ws_upa">ws_upa</a></span><span class="space"></span><span class="name">upa</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.data_id">data_id</a></span><span class="space"></span><span class="name">dataid</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.node_id">node_id</a></span><span class="space"></span><span class="name">node</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">update</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">as_user</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.CreateDataLinkParams">CreateDataLinkParams</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 data link from a KBase workspace object to a sample.</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>upa - the workspace UPA of the linked 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>dataid - the dataid of the linked data, if any, within the object. If omitted 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>entire object is linked to the sample.</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>id - the sample 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>version - the sample 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>node - the sample 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>createdby - the user that created the link.</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>created - the time the link was created.</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>expiredby - the user that expired the link, if any.</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>expired - the time the link was expired, if at all.</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="name"><a href="#typedefSampleService.link_id">link_id</a></span><span class="space"></span><span class="name">linkid</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.ws_upa">ws_upa</a></span><span class="space"></span><span class="name">upa</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.data_id">data_id</a></span><span class="space"></span><span class="name">dataid</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.node_id">node_id</a></span><span class="space"></span><span class="name">node</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">createdby</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">created</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">expiredby</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">expired</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.DataLink">DataLink</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>create_data_link results.</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>new_link - the new link.</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="name"><a href="#typedefSampleService.DataLink">DataLink</a></span><span class="space"></span><span class="name">new_link</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.CreateDataLinkResults">CreateDataLinkResults</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>Create a link from a KBase Workspace object to a sample.</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>The user must have admin permissions for the sample and write permissions for 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>Workspace object.</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="funcdefSampleService.create_data_link">create_data_link</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.CreateDataLinkParams">CreateDataLinkParams</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="#typedefSampleService.CreateDataLinkResults">CreateDataLinkResults</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>propagate_data_links parameters.</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>id - the sample 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>version - the sample version. (data links are propagated 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>previous_version - the previouse sample version. (data links are propagated 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>ignore_types - the workspace data type ignored from propagating. default empty.</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>update - if false (the default), fail if a link already exists from the data unit (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>combination of the UPA and dataid). if true, expire the old link and create the new</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>link unless the link is already to the requested sample node, in which case 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>operation is a no-op.</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>effective_time - the effective time at which the query should be run - the default 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the current time. Providing a time allows for reproducibility of previous results.</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>as_admin - run the method as a service administrator. The user must have full</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>administration permissions.</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>as_user - create the link as a different user. Ignored if as_admin is not true. Neither</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>the administrator nor the impersonated user need have permissions to the data 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><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>sample.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">previous_version</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="#typedefSampleService.ws_type_string">ws_type_string</a></span><span>></span></span><span class="space"></span><span class="name">ignore_types</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">update</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">effective_time</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">as_user</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.PropagateDataLinkParams">PropagateDataLinkParams</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>propagate_data_links results.</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>links - the links.</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="#typedefSampleService.DataLink">DataLink</a></span><span>></span></span><span class="space"></span><span class="name">links</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.PropagateDataLinkResults">PropagateDataLinkResults</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>Propagates data links from a previous sample to the current (latest) version</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>The user must have admin permissions for the sample and write permissions for 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>Workspace object.</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="funcdefSampleService.propagate_data_links">propagate_data_links</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.PropagateDataLinkParams">PropagateDataLinkParams</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="#typedefSampleService.PropagateDataLinkResults">PropagateDataLinkResults</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>expire_data_link parameters.</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>upa - the workspace upa of the object from which the link originates.</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>dataid - the dataid, if any, of the data within the object from which the link originates.</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>Omit for links where the link is from the entire 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>as_admin - run the method as a service administrator. The user must have full</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>administration permissions.</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>as_user - expire the link as a different user. Ignored if as_admin is not true. Neither</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>the administrator nor the impersonated user need have permissions to the link if 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><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>new version is saved.</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="name"><a href="#typedefSampleService.ws_upa">ws_upa</a></span><span class="space"></span><span class="name">upa</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.data_id">data_id</a></span><span class="space"></span><span class="name">dataid</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span><span class="space"></span><span class="name">as_user</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.ExpireDataLinkParams">ExpireDataLinkParams</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>Expire a link from a KBase Workspace 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>The user must have admin permissions for the sample and write permissions for 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>Workspace object.</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="funcdefSampleService.expire_data_link">expire_data_link</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.ExpireDataLinkParams">ExpireDataLinkParams</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><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>get_data_links_from_sample parameters.</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>id - the sample 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>version - the sample 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>effective_time - the effective time at which the query should be run - the default 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the current time. Providing a time allows for reproducibility of previous results.</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>as_admin - run the method as a service administrator. The user must have read</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>administration permissions.</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="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">effective_time</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetDataLinksFromSampleParams">GetDataLinksFromSampleParams</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>get_data_links_from_sample results.</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>links - the links.</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>effective_time - the time at which the query was run. This timestamp, if saved, can 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><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>used when running the method again to ensure reproducible results. Note that changes</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>to workspace permissions may cause results to change over time.</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="#typedefSampleService.DataLink">DataLink</a></span><span>></span></span><span class="space"></span><span class="name">links</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">effective_time</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetDataLinksFromSampleResults">GetDataLinksFromSampleResults</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 data links to Workspace objects originating from a sample.</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>The user must have read permissions to the sample. Only Workspace objects the user</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>can read are 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="funcdefSampleService.get_data_links_from_sample">get_data_links_from_sample</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetDataLinksFromSampleParams">GetDataLinksFromSampleParams</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="#typedefSampleService.GetDataLinksFromSampleResults">GetDataLinksFromSampleResults</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">optional</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>get_data_links_from_sample_set parameters.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>sample_ids - a list of sample ids and versions</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>effective_time - the time at which the query was run. This timestamp, if saved, can 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>used when running the method again to enqure reproducible results. Note that changes</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 workspace permissions may cause results to change over time.</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>as_admin - run the method as a service administrator. The user must have read</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>administration permissions.</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="#typedefSampleService.SampleIdentifier">SampleIdentifier</a></span><span>></span></span><span class="space"></span><span class="name">sample_ids</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">effective_time</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetDataLinksFromSampleSetParams">GetDataLinksFromSampleSetParams</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 all workspace object metadata linked to samples in a list of samples or sample set</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>refs. Returns metadata about links to data objects. A batch version of</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>get_data_links_from_sample.</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 user must have read permissions to the sample. A permissions error is thrown when a</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>sample is found that the user has no access to.</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="funcdefSampleService.get_data_links_from_sample_set">get_data_links_from_sample_set</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetDataLinksFromSampleSetParams">GetDataLinksFromSampleSetParams</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="#typedefSampleService.GetDataLinksFromSampleResults">GetDataLinksFromSampleResults</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">optional</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>get_data_links_from_data parameters.</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>upa - the data UPA.</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>effective_time - the effective time at which the query should be run - the default 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>the current time. Providing a time allows for reproducibility of previous results.</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>as_admin - run the method as a service administrator. The user must have read</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>administration permissions.</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="name"><a href="#typedefSampleService.ws_upa">ws_upa</a></span><span class="space"></span><span class="name">upa</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">effective_time</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span><span class="space"></span><span class="name">as_admin</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetDataLinksFromDataParams">GetDataLinksFromDataParams</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>get_data_links_from_data results.</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>links - the links.</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>effective_time - the time at which the query was run. This timestamp, if saved, can 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><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>used when running the method again to ensure reproducible results.</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="#typedefSampleService.DataLink">DataLink</a></span><span>></span></span><span class="space"></span><span class="name">links</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span><span class="space"></span><span class="name">effective_time</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetDataLinksFromDataResults">GetDataLinksFromDataResults</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 data links to samples originating from Workspace data.</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>The user must have read permissions to the workspace data.</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="funcdefSampleService.get_data_links_from_data">get_data_links_from_data</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetDataLinksFromDataParams">GetDataLinksFromDataParams</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="#typedefSampleService.GetDataLinksFromDataResults">GetDataLinksFromDataResults</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">optional</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>get_sample_via_data parameters.</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>upa - the workspace UPA of the target 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>id - the target sample 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><span class="space"></span><span class="space"></span><span class="space"></span><span class="space"></span>version - the target sample version.</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="name"><a href="#typedefSampleService.ws_upa">ws_upa</a></span><span class="space"></span><span class="name">upa</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_id">sample_id</a></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="name"><a href="#typedefSampleService.version">version</a></span><span class="space"></span><span class="name">version</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetSampleViaDataParams">GetSampleViaDataParams</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 a sample via a workspace object. Read permissions to a workspace object grants</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>read permissions to all versions of any linked samples, whether the links are expired or</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>not. This method allows for fetching samples when the user does not have explicit</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>read access to the sample.</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="funcdefSampleService.get_sample_via_data">get_sample_via_data</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetSampleViaDataParams">GetSampleViaDataParams</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="#typedefSampleService.Sample">Sample</a></span><span class="space"></span><span class="name">sample</span></span></span><span>)</span><span class="space"></span><span class="keyword">authentication</span><span class="space"></span><span class="keyword">optional</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>get_data_link parameters.</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>linkid - the link ID.</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="name"><a href="#typedefSampleService.link_id">link_id</a></span><span class="space"></span><span class="name">linkid</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.GetDataLinkParams">GetDataLinkParams</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 a link, expired or not, by its ID. This method requires read administration privileges</span></div><div><span class="tab"></span><span class="space"></span><span>*</span><span class="space"></span><span>for the 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="funcdefSampleService.get_data_link">get_data_link</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.GetDataLinkParams">GetDataLinkParams</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="#typedefSampleService.DataLink">DataLink</a></span><span class="space"></span><span class="name">link</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>Provide sample and run through the validation steps, but without saving them. Allows all the samples to be evaluated for validity first so potential errors can be addressed.</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="#typedefSampleService.Sample">Sample</a></span><span>></span></span><span class="space"></span><span class="name">samples</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.ValidateSamplesParams">ValidateSamplesParams</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">message</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">dev_message</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_name">sample_name</a></span><span class="space"></span><span class="name">sample_name</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.node_id">node_id</a></span><span class="space"></span><span class="name">node</span><span>;</span></span></div><div><span><span class="tab"></span><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata_key">metadata_key</a></span><span class="space"></span><span class="name">key</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">subkey</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.ValidateSamplesError">ValidateSamplesError</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><span class="primitive">list</span><span><</span><span class="name"><a href="#typedefSampleService.ValidateSamplesError">ValidateSamplesError</a></span><span>></span></span><span class="space"></span><span class="name">errors</span><span>;</span></span></div><span class="tab"></span><span>}</span></span><span class="space"></span><span class="name" id="typedefSampleService.ValidateSamplesResults">ValidateSamplesResults</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="funcdefSampleService.validate_samples">validate_samples</span><span>(</span><span class="parameters"><span class="parameter"><span class="name"><a href="#typedefSampleService.ValidateSamplesParams">ValidateSamplesParams</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="#typedefSampleService.ValidateSamplesResults">ValidateSamplesResults</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="#funcdefSampleService.create_data_link">create_data_link</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.create_sample">create_sample</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.expire_data_link">expire_data_link</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_data_link">get_data_link</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_data_links_from_data">get_data_links_from_data</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_data_links_from_sample">get_data_links_from_sample</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_data_links_from_sample_set">get_data_links_from_sample_set</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_metadata_key_static_metadata">get_metadata_key_static_metadata</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_sample">get_sample</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_sample_acls">get_sample_acls</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_sample_via_data">get_sample_via_data</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.get_samples">get_samples</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.propagate_data_links">propagate_data_links</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.replace_sample_acls">replace_sample_acls</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.update_sample_acls">update_sample_acls</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.update_samples_acls">update_samples_acls</a></span></div><div><span class="tab"></span><span class="name"><a href="#funcdefSampleService.validate_samples">validate_samples</a></span></div><h2>Type Index</h2><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.boolean">boolean</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.CreateDataLinkParams">CreateDataLinkParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.CreateDataLinkResults">CreateDataLinkResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.CreateSampleParams">CreateSampleParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.data_id">data_id</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.DataLink">DataLink</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ExpireDataLinkParams">ExpireDataLinkParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetDataLinkParams">GetDataLinkParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetDataLinksFromDataParams">GetDataLinksFromDataParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetDataLinksFromDataResults">GetDataLinksFromDataResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetDataLinksFromSampleParams">GetDataLinksFromSampleParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetDataLinksFromSampleResults">GetDataLinksFromSampleResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetDataLinksFromSampleSetParams">GetDataLinksFromSampleSetParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetMetadataKeyStaticMetadataParams">GetMetadataKeyStaticMetadataParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetMetadataKeyStaticMetadataResults">GetMetadataKeyStaticMetadataResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetSampleACLsParams">GetSampleACLsParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetSampleParams">GetSampleParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetSamplesParams">GetSamplesParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.GetSampleViaDataParams">GetSampleViaDataParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.link_id">link_id</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata">metadata</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata_key">metadata_key</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata_value">metadata_value</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.metadata_value_key">metadata_value_key</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.node_id">node_id</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.PropagateDataLinkParams">PropagateDataLinkParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.PropagateDataLinkResults">PropagateDataLinkResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ReplaceSampleACLsParams">ReplaceSampleACLsParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.Sample">Sample</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_id">sample_id</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.sample_name">sample_name</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.SampleACLs">SampleACLs</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.SampleAddress">SampleAddress</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.SampleIdentifier">SampleIdentifier</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.SampleNode">SampleNode</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.samplenode_type">samplenode_type</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.SourceMetadata">SourceMetadata</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.timestamp">timestamp</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.UpdateSampleACLsParams">UpdateSampleACLsParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.UpdateSamplesACLsParams">UpdateSamplesACLsParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.user">user</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ValidateSamplesError">ValidateSamplesError</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ValidateSamplesParams">ValidateSamplesParams</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ValidateSamplesResults">ValidateSamplesResults</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.version">version</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ws_type_string">ws_type_string</a></span></div><div><span class="tab"></span><span class="name"><a href="#typedefSampleService.ws_upa">ws_upa</a></span></div></div></body></html>