All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Name

Within a project, each object has a name, which is a UTF-8 string which must not match the regular expression [\x00-\x1F]. This means non-printable characters like whitespace tabs and newlines are not allowed. Object names need not be unique within the same project.

The name of an object is returned by the "describe" method, and modified by the "rename" method.

API method: /class-xxxx/rename

Specification

Renames an existing object in the specified project.

Inputs

  • project string ID of the project or container containing the object to be modified

  • name string The new name of the object

Outputs

  • id string ID of the manipulated object

Errors

  • InvalidInput (the input is not a hash, project is missing or is not a string, name is missing or is an empty string or matches the regular expression [\x00-\x1F])

  • ResourceNotFound (the specified object does not exist, the specified project does not exist, or the specified project does not contain the specified object)

  • PermissionDenied (If the object is open, UPLOAD access is required, otherwise CONTRIBUTE access is required for the specified project)

Data Object Metadata

Use metadata to keep your data objects organized, as your projects grow larger and more complex.

Metadata makes it easier to keep your projects organized. While some metadata is pre-set and can't be changed, you can set values for the following metadata fields:

  • Name: an arbitrary UTF-8 string

  • Properties: a key-value store

  • : a collection of strings

User-defined metadata is particularly useful in .

Project-specificity of metadata

User-defined metadata is project-specific. Within different projects, the same object can have different metadata.

Tags
search queries

Tags

Each copy of an object also maintains a set of tags associated with it. Tags are strings of nonzero length and can be associated to objects to help organize them or annotate them.

Tags are returned by the describe method, and modified by the addTags and removeTags methods.

API method: /class-xxxx/addTags

Specification

Adds the specified tags to the object in the specified project. If any of the tags are already present, no action is taken for those tags.

Inputs

  • project string ID of the project or container containing the object to be modified

  • tags array of strings Tags to be added

Outputs

  • id string ID of the manipulated object

Errors

  • InvalidInput (the input is not a hash, project is missing or is not a string, the key tags is missing, or its value is not an array, or the array contains at least one invalid (not a string of nonzero length) tag)

  • ResourceNotFound (the specified object does not exist, the specified project does not exist, or the specified project does not contain the specified object)

  • PermissionDenied (If the object is open, UPLOAD access is required, otherwise CONTRIBUTE access is required for the specified project)

API method: /class-xxxx/removeTags

Specification

Removes the specified tags from the object in the specified project. Ensures that the specified tags are not part of the object -- if any of the tags are already missing, no action is taken for those tags.

Inputs

  • project string ID of the project or container containing the object to be modified

  • tags array of strings Tags to be removed

Outputs

  • id string ID of the manipulated object

Errors

  • InvalidInput (the input is not a hash, project is missing or is not a string, or the key tags is missing, or its value is not an array, or the array contains at least one invalid (not a string of nonzero length) tag)

  • ResourceNotFound (the specified object does not exist, the specified project does not exist, or the specified project does not contain the specified object)

  • PermissionDenied (If the object is open, UPLOAD access is required, otherwise CONTRIBUTE access is required for the specified project)

Properties

Properties are custom string key/value pairs that can be attached to a copy of any object. For example, the key/value pair "project"/"cancer" can be attached to an object..

The properties associated with an object are returned by the describe method, and modified by the setProperties method.

API method: /class-xxxx/setProperties

Specification

Sets properties on an object in the specified project. To remove a property altogether, its value needs to be set to the JSON null (instead of a string). This call updates the properties of the object by merging any old (previously existing) ones with what is provided in the input, the newer ones taking precedence when the same key appears in the old.

Best practices: to fully reset properties (remove all existing key/value pairs and replace them with new ones), first issue a describe call to get the names of all properties, then issue a setProperties request to set the values of those properties to null.

Inputs

  • project string ID of the project or container containing the object to be modified

  • properties mapping Properties to modify

    • key Name of property to modify

Outputs

  • id string ID of the manipulated object

Errors

  • InvalidInput

    • There exists at least one value in properties which is neither a string nor the JSON null

    • For each property key-value pair, the size, encoded in UTF-8, of the property key may not exceed 100 bytes and the property value may not exceed 700 bytes

Examples

Input
Action

value string or null Either a new string value for the property, or null to unset the property

ResourceNotFound (the specified object does not exist, the specified project does not exist, or the specified project does not contain the specified object)

  • PermissionDenied (If the object is open, UPLOAD access is required, otherwise CONTRIBUTE access is required for the specified project)

  • {}

    No action taken.

    {"tissue": "liver"}

    The property "tissue" is set to value "liver".

    {"tissue": null}

    The property "tissue" is removed, if it exists.