System Methods

This page describes miscellaneous system methods. See Search for additional system methods related to finding objects based on certain criteria.

API method: /system/describeDataObjects

Specification

Describes data objects in bulk (providing functionality equivalent to the describe routes, but for multiple data objects at a time). The describe options (the mapping that would be supplied as input to file-XXXX/describe, etc.) for each object are determined from the following sources, in decreasing order of priority:

  • If the object is specified as a mapping that has the describe field set, rather than as just a bare string, this value is used as the describe options (or, if set to the value true, empty describe options are given).
  • Otherwise, if the classDescribeOptions field contains an entry for the class of the data object (e.g. "file"), this value is used as the describe options (or, if set to the value true, empty describe options are given).
  • Otherwise, if the classDescribeOptions field contains an entry for the key "*", this value is used as the describe options (or, if set to the value true, empty describe options are given).
  • Otherwise, empty describe options are given.

Inputs

  • objects array of strings or mappings array of items, each representing a data object to be described. The array may contain up to 1000 elements. Each item is one of the following:
    • a string indicating an data object ID (e.g. "file-XXXX") to be described
    • a mapping with the following fields, indicating that the data object is to be described with the specified options:
    • id string ID of the data object to be described
    • describe mapping or boolean (optional) a mapping containing describe options; or the boolean value true, indicating that empty describe options are to be supplied.
  • classDescribeOptions mapping of strings to mappings or booleans (optional) specifies default describe options for each data object class (which may be overridden on a per-object basis). If supplied, this mapping should contain the following keys/values:
    • The keys may be the names of any data object class (e.g. "file"), indicating a default value to be supplied for all data objects of that class; or the string "*", indicating a default value to be supplied for all data objects that are of classes not otherwise named. For a list of data object classes, see the Data Object Classes reference.
    • The values are mappings containing the describe options that will be supplied, or the boolean value true, indicating that empty describe options are to be supplied.

Outputs

  • results array of mappings the results. This is an array of the same length as the objects field of the input, containing the corresponding describe call results in the same order. For each item in the input, the corresponding item is a mapping with the following fields:
    • describe: mapping (only present if the item was successfully described) the output hash from the describe route
    • error: mapping (only present if the item was NOT successfully described) a mapping, containing at least type and message fields, that indicates the nature of the error. See the Protocols documentation for more info.
    • statusCode: int (only present if the item was NOT successfully described) the HTTP status code that would have been returned if the describe route had been invoked in a standalone manner

Errors

  • InvalidInput (objects is not an array, contains elements that are neither strings nor hashes of the form described above, contains more than 1000 elements, or contains IDs that are not of a data object class; classDescribeOptions contains values that are neither hashes nor the value true)

API method: /system/describeExecutions

Specification

Describes executions in bulk (providing functionality equivalent to the describe routes, but for multiple executions at once). The describe options (the mapping that would be supplied as input to job-XXXX/describe and/or /analysis-XXXX/describe) for each execution are determined from the following sources, in decreasing order of priority:

  • If the execution is specified as a mapping that has the describe field set, rather than as just a bare ID string, the describe field is used as the describe options (or, if set to the value true, empty describe options are given).
  • Otherwise, if the classDescribeOptions field contains an entry for the class of the execution (i.e. "job" or "analysis"), this value is used as the describe options (or, if set to the value true, empty describe options are given).
  • Otherwise, if the classDescribeOptions field contains an entry for the key "*", this value is used as the describe options (or, if set to the value true, empty describe options are given).
  • Otherwise, the empty hash as the describe options is given which would then return the default describe fields of each execution.

Inputs

  • executions array of strings or mappings array of items, each representing an execution to be described. The array may contain up to 1000 elements. Each item is one of the following:
    • a string indicating an execution ID (e.g. "job-XXXX") to be described
    • a mapping with the following fields, indicating that the execution is to be described with the specified options:
    • id string ID of the execution to be described
    • describe mapping or boolean (optional) a mapping containing the describe options to use for the corresponding execution or true, which is equivalent to specifying the empty hash as the describe options
  • classDescribeOptions mapping of strings to mappings or booleans (optional) specifies default describe options for each execution class (which may be overridden on a per-object basis). If supplied, this mapping should contain the following keys/values:
    • The keys may be the names of any execution class (either "job" or "analysis"), indicating a default value to be supplied for all executions of that class; or the string "*", indicating a default value to be supplied for all executions that are of classes not otherwise named.
    • The values are mappings containing the describe options that will be supplied, or the boolean value true, indicating that empty describe options are to be supplied.

Outputs

  • results array of mappings an array of the same length as the executions field of the input, containing the corresponding describe call results in the same order. For each item in the input, the corresponding item is a mapping with the following fields:
    • If the execution was successfully described:
      • describe: mapping the output hash from the describe route
    • If the execution was not successfully described (see the Protocols documentation for more information):
      • error: mapping a mapping, containing at least type and message fields, that indicates the nature of the error.
      • statusCode: int the HTTP status code that would have been returned if the describe route had been invoked in a standalone manner.

Errors

  • InvalidInput
    • executions is not an array
    • executions contains elements that are neither strings nor hashes of the form described above
    • executions contains more than 1000 elements, or contains IDs that are not of an execution class (i.e. "job" or "analysis")
    • classDescribeOptions contains values that are neither hashes nor the value true`

API method: /system/describeProjects

Specification

Describes all specified projects. This method provides similar functionality to that of the /project-XXXX/describe method but is used to describe multiple projects at once. Describe options (the mapping normally provided as input to /project-XXXX/describe to customize its output) may be specified for all projects and/or overridden on a per-project basis. The project descriptions and/or error descriptions (for cases in which projects cannot be successfully described) will be returned in the SAME order in which the projects were specified in the input.

Inputs

  • projects array of strings or mappings array of items representing the projects to be described. The array may contain up to 1000 elements. Each element may be one of the following:
    • a string indicating the ID of the project to be described; the describe options for the corresponding project will default to defaultDescribeOptions
    • a mapping with the following fields:
      • id string ID of the project to be described
      • describe mapping or boolean (optional, default defaultDescribeOptions) Mapping containing the describe options to use for the corresponding project or true, which is equivalent to specifying the empty hash as the describe options
  • defaultDescribeOptions mapping or boolean (optional, default true) mapping containing describe options or true; defaultDescribeOptions will be used as the describe options for each project in projects specified as a string or specified as a mapping without the describe field.

Outputs

  • results array of mappings results of invoking /project-XXXX/describe on each project in projects with its corresponding describe options. This is an array of the same length as the projects input, and it contains the results of /project-XXXX/describe in the same order in which the projects were specified in projects. Each result is a mapping with the following fields:
    • If the project was successfully described:
      • describe mapping the output of invoking /project-xxxx/describe
    • If the project was not successfully described (see the Protocols documentation for more information):
      • error mapping a mapping containing the type and message fields to indicate the nature of the error; may contain additional fields
      • statusCode int the HTTP status code that would have been returned had /project-xxxx/describe been individually invoked for the project

Errors

  • InvalidInput: projects is not an array; projects contains elements that are neither strings nor mappings; projects contains more than 1000 elements; projects contains project ids that do not match the project ID syntax

API method: /system/resolveDataObjects

Specification

Resolves data objects in bulk. This method takes as input a list of object specifications, which may include the project id, folder path, and object name. Each object specification is processed in the following way: a search is performed for all data objects that exist in the specified project and folder and have the specified name; an array is returned containing all the matching results, where each element in the array is a mapping with keys project and id and values being the respective DNAnexus IDs for the project and object.

Inputs

  • project string (required unless every objects entry contains project) The ID of the default project context
  • folder string (optional, default "/") Folder path in project that will be used as the default folder for objects that do not explicitly specify a folder path
  • objects array of mappings array of object specifications, each representing a data object to be resolved. The array may contain up to 1000 elements. Each item is a mapping with the following fields:
    • name string the name of the data object to be resolved
    • folder string (required if project is specified; otherwise optional, defaults to top level folder input) folder path of the data object to be resolved
    • project string (optional, defaults to top level project input) ID of the project in which to resolve this data object. If specified, folder must also be specified in this mapping.

Outputs

  • results array of array of mappings the results. This is an array that is parallel to the objects input. Specifically, this means that this array has the same length as objects, and results[i] corresponds to objects[i]. Each entry in results contains zero or more mappings, each with the following fields:
    • project: The project ID in which the data object was resolved
    • id: The data object ID

Errors

  • InvalidInput

    • project is not a project ID. This applies to both the top level project and also to the project input in each element of objects.
    • objects contains more than 1000 elements
    • folder if specified, must be a valid folder path
    • Within each element of objects, folder must be specified if project is specified
  • PermissionDenied

    • At least VIEW access to the specified project is required, as well as at least VIEW access to all of the project IDs specified in the objects mappings.

API method: /system/whoami

Specification

Returns the user ID based on the authentication token.

Inputs

  • None

Outputs

  • id string ID of the user

Errors

  • InvalidAuthentication (the request is not from a legal, validated user)

Last edited by Sean King, 2016-07-22 20:17:18

 Feedback