10346: Checkpoint. Merge schema and method docs. Write doc describing syntax of...
authorPeter Amstutz <peter.amstutz@curoverse.com>
Fri, 28 Oct 2016 19:35:24 +0000 (15:35 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Fri, 28 Oct 2016 19:35:24 +0000 (15:35 -0400)
30 files changed:
doc/_config.yml
doc/api/examples.html.textile.liquid [new file with mode: 0644]
doc/api/index.html.textile.liquid
doc/api/methods.html.textile.liquid
doc/api/methods/api_client_authorizations.html.textile.liquid
doc/api/methods/api_clients.html.textile.liquid
doc/api/methods/authorized_keys.html.textile.liquid
doc/api/methods/collections.html.textile.liquid
doc/api/methods/container_requests.html.textile.liquid
doc/api/methods/containers.html.textile.liquid
doc/api/methods/groups.html.textile.liquid
doc/api/methods/humans.html.textile.liquid
doc/api/methods/job_tasks.html.textile.liquid
doc/api/methods/jobs.html.textile.liquid
doc/api/methods/keep_disks.html.textile.liquid
doc/api/methods/keep_services.html.textile.liquid
doc/api/methods/links.html.textile.liquid
doc/api/methods/logs.html.textile.liquid
doc/api/methods/nodes.html.textile.liquid
doc/api/methods/pipeline_instances.html.textile.liquid
doc/api/methods/pipeline_templates.html.textile.liquid
doc/api/methods/repositories.html.textile.liquid
doc/api/methods/specimens.html.textile.liquid
doc/api/methods/traits.html.textile.liquid
doc/api/methods/users.html.textile.liquid
doc/api/methods/virtual_machines.html.textile.liquid
doc/api/methods/workflows.html.textile.liquid
doc/api/requests.html.textile.liquid [new file with mode: 0644]
doc/api/resources.html.textile.liquid
doc/api/schema/PipelineTemplate.html.textile.liquid

index 5ed5af5cb58c3757fe36758b5d8bea8fa6d4413c..87aa1ce9bdb46bcc5178a74e35be5f31d6baa314 100644 (file)
@@ -97,59 +97,41 @@ navbar:
   api:
     - Concepts:
       - api/index.html.textile.liquid
-      - api/authentication.html.textile.liquid
+      - api/requests.html.textile.liquid
       - api/methods.html.textile.liquid
       - api/resources.html.textile.liquid
-      - api/crunch-scripts.html.textile.liquid
       - api/permission-model.html.textile.liquid
-    - API Methods:
+      - api/examples.html.textile.liquid
+    - Permission and authentication:
+      - api/methods/users.html.textile.liquid
+      - api/methods/groups.html.textile.liquid
       - api/methods/api_client_authorizations.html.textile.liquid
       - api/methods/api_clients.html.textile.liquid
       - api/methods/authorized_keys.html.textile.liquid
+    - System resources:
+      - api/methods/keep_services.html.textile.liquid
+      - api/methods/links.html.textile.liquid
+      - api/methods/logs.html.textile.liquid
+      - api/methods/nodes.html.textile.liquid
+      - api/methods/virtual_machines.html.textile.liquid
+      - api/methods/keep_disks.html.textile.liquid
+    - Data management:
       - api/methods/collections.html.textile.liquid
+      - api/methods/repositories.html.textile.liquid
+    - Container engine:
       - api/methods/container_requests.html.textile.liquid
       - api/methods/containers.html.textile.liquid
-      - api/methods/groups.html.textile.liquid
-      - api/methods/humans.html.textile.liquid
+      - api/methods/workflows.html.textile.liquid
+    - Jobs engine (deprecated):
+      - api/crunch-scripts.html.textile.liquid
       - api/methods/jobs.html.textile.liquid
       - api/methods/job_tasks.html.textile.liquid
-      - api/methods/keep_disks.html.textile.liquid
-      - api/methods/keep_services.html.textile.liquid
-      - api/methods/links.html.textile.liquid
-      - api/methods/logs.html.textile.liquid
-      - api/methods/nodes.html.textile.liquid
       - api/methods/pipeline_instances.html.textile.liquid
       - api/methods/pipeline_templates.html.textile.liquid
-      - api/methods/repositories.html.textile.liquid
+    - Metadata for bioinformatics:
+      - api/methods/humans.html.textile.liquid
       - api/methods/specimens.html.textile.liquid
       - api/methods/traits.html.textile.liquid
-      - api/methods/users.html.textile.liquid
-      - api/methods/virtual_machines.html.textile.liquid
-      - api/methods/workflows.html.textile.liquid
-    - Schema:
-      - api/schema/ApiClientAuthorization.html.textile.liquid
-      - api/schema/ApiClient.html.textile.liquid
-      - api/schema/AuthorizedKey.html.textile.liquid
-      - api/schema/Collection.html.textile.liquid
-      - api/schema/Container.html.textile.liquid
-      - api/schema/ContainerRequest.html.textile.liquid
-      - api/schema/Group.html.textile.liquid
-      - api/schema/Human.html.textile.liquid
-      - api/schema/Job.html.textile.liquid
-      - api/schema/JobTask.html.textile.liquid
-      - api/schema/KeepDisk.html.textile.liquid
-      - api/schema/KeepService.html.textile.liquid
-      - api/schema/Link.html.textile.liquid
-      - api/schema/Log.html.textile.liquid
-      - api/schema/Node.html.textile.liquid
-      - api/schema/PipelineInstance.html.textile.liquid
-      - api/schema/PipelineTemplate.html.textile.liquid
-      - api/schema/Repository.html.textile.liquid
-      - api/schema/Specimen.html.textile.liquid
-      - api/schema/Trait.html.textile.liquid
-      - api/schema/User.html.textile.liquid
-      - api/schema/VirtualMachine.html.textile.liquid
-      - api/schema/Workflow.html.textile.liquid
   installguide:
     - Overview:
       - install/index.html.textile.liquid
diff --git a/doc/api/examples.html.textile.liquid b/doc/api/examples.html.textile.liquid
new file mode 100644 (file)
index 0000000..2bcebc1
--- /dev/null
@@ -0,0 +1,6 @@
+---
+layout: default
+navsection: api
+navmenu: Concepts
+title: Examples
+...
index 81b2c1ce6a482418f8302fde597e0ff1bdce300b..726255bdd0677b9cf29d5515268893988e7eecf1 100644 (file)
@@ -5,46 +5,6 @@ title: API Reference
 
 ...
 
+This reference describes the semantics of Arvados resources and how to programatically access Arvados via its REST API.  Each resource listed in this section is exposed on the Arvados API server under the @/arvados/v1/@ path prefix, for example, @https://{{ site.arvados_api_host }}/arvados/v1/collections@.
 
-
-h2. Concepts
-
-* Each API uses the same "authentication mechanism":authentication.html.
-* Resources in requests and responses adhere to a "common structure":resources.html.
-* API transactions use common "REST methods":methods.html.
-* API transactions are subject to a "permission model":permission-model.html.
-* "Job tasks":schema/JobTask.html use some special API features.
-
-h2. Resources
-
-h3. Generic Resources
-
-* "Collection":schema/Collection.html
-* "Job":schema/Job.html
-* "JobTask":schema/JobTask.html
-* "Link":schema/Link.html
-* "Log":schema/Log.html
-* "PipelineTemplate":schema/PipelineTemplate.html
-* "PipelineInstance":schema/PipelineInstance.html
-* "Group":schema/Group.html
-* "Human":schema/Human.html
-* "Specimen":schema/Specimen.html
-* "Trait":schema/Trait.html
-* "User":schema/User.html
-
-h3. Authentication
-
-These Arvados resources govern authorization and "authentication":authentication.html:
-
-* "ApiClient":schema/ApiClient.html
-* "ApiClientAuthorization":schema/ApiClientAuthorization.html
-* "AuthorizedKey":schema/AuthorizedKey.html
-
-h3. Arvados Infrastructure
-
-These resources govern the Arvados infrastructure itself: Git repositories, Keep disks, active nodes, etc.
-
-* "KeepDisk":schema/KeepDisk.html
-* "Node":schema/Node.html
-* "Repository":schema/Repository.html
-* "VirtualMachine":schema/VirtualMachine.html
+The API server publishes a machine-readable description of its endpoints and some additional site configuration values via a JSON-formatted discovery document.  This is available at @/discovery/v1/apis/arvados/v1/rest@, for example @https://{{ site.arvados_api_host }}/discovery/v1/apis/arvados/v1/rest@.  Some Arvados SDKs use the discovery document to generate language bindings.
index 2d530d147385a5ba529814f53f912c7b1f515126..90fbdcf2ffb29939af67cf55eae6be3d21f34d76 100644 (file)
@@ -2,12 +2,10 @@
 layout: default
 navsection: api
 navmenu: Concepts
-title: REST methods
+title: Common resource methods
 
 ...
 
-
-
 (using Group as an example)
 
 h2(#index). Index, list, search
index 7af9711b9d17e95d3a524c6e895446f8b8f17058..82dac7dafe57c8e8c29499e79fa7dfe74473f3dc 100644 (file)
@@ -12,8 +12,25 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/api_client_au
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+An ApiClientAuthorization is not a generic Arvados resource.  The full list of properties that belong to an ApiClientAuthorization is:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|api_token|string|||
+|api_client_id|integer|||
+|user_id|integer|||
+|created_by_ip_address|string|||
+|last_used_by_ip_address|string|||
+|last_used_at|datetime|||
+|expires_at|datetime|||
+|default_owner_uuid|string|||
+|scopes|array|||
+
+h2. Methods
+
+h3. create
 
 Create a new ApiClientAuthorization.
 
@@ -23,7 +40,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |api_client_authorization|object||query||
 
-h2. create_system_auth
+h3. create_system_auth
 
 create_system_auth api_client_authorizations
 
@@ -34,7 +51,7 @@ table(table table-bordered table-condensed).
 |api_client_id|integer||query||
 |scopes|array||query||
 
-h2. delete
+h3. delete
 
 Delete an existing ApiClientAuthorization.
 
@@ -44,7 +61,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the ApiClientAuthorization in question.|path||
 
-h2. get
+h3. get
 
 Gets a ApiClientAuthorization's metadata by UUID.
 
@@ -54,7 +71,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the ApiClientAuthorization in question.|path||
 
-h2. list
+h3. list
 
 List api_client_authorizations.
 
@@ -66,7 +83,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching api_client_authorizations.|query||
 |filters|array|Conditions for filtering api_client_authorizations.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing ApiClientAuthorization.
 
index 056cc30812c767ea06b8ec53310dc1c8bc362fa0..fa4d9d23fe33deacb8f985f18d408ca4d7a35ff1 100644 (file)
@@ -12,7 +12,19 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/api_clients@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
-h2. create
+h2. Resource
+
+Each ApiClient has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|url_prefix|string|||
+|is_trusted|boolean|Trusted by users to handle their API tokens (ApiClientAuthorizations).||
+
+h2. Methods
+
+h3. create
 
 Create a new ApiClient.
 
@@ -22,7 +34,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |api_client|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing ApiClient.
 
@@ -32,7 +44,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the ApiClient in question.|path||
 
-h2. get
+h3. get
 
 Gets a ApiClient's metadata by UUID.
 
@@ -42,7 +54,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the ApiClient in question.|path||
 
-h2. list
+h3. list
 
 List api_clients.
 
@@ -54,7 +66,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching api_clients.|query||
 |filters|array|Conditions for filtering api_clients.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing ApiClient.
 
index 9727c5730c54375917e0f36ce800ae93bdfd72cf..62072ac84fd525e806d19170d6e077c500d22152 100644 (file)
@@ -12,8 +12,21 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/authorized_ke
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each AuthorizedKey has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|key_type|string|||
+|authorized_user_uuid|string|||
+|public_key|text|||
+|expires_at|datetime|||
+
+h2. Methods
+
+h3. create
 
 Create a new AuthorizedKey.
 
@@ -23,7 +36,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |authorized_key|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing AuthorizedKey.
 
@@ -33,7 +46,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the AuthorizedKey in question.|path||
 
-h2. get
+h3. get
 
 Gets a AuthorizedKey's metadata by UUID.
 
@@ -43,7 +56,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the AuthorizedKey in question.|path||
 
-h2. list
+h3. list
 
 List authorized_keys.
 
@@ -55,7 +68,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching authorized_keys.|query||
 |filters|array|Conditions for filtering authorized_keys.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing AuthorizedKey.
 
index f5e685e2e9be44a1d740defff0a1ffb0e60da80f..d0a5042999b248bd3137da79e074d1cac9729fe9 100644 (file)
@@ -12,7 +12,38 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/collections@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
-h2. create
+h2. Methods
+
+See "collections":{{site.baseurl}}/api/methods/collections.html
+
+h3. Conditions of creating a Collection
+
+The @uuid@ and @manifest_text@ attributes must be provided when creating a Collection. The cryptographic digest of the supplied @manifest_text@ must match the supplied @uuid@.
+
+h3. Side effects of creating a Collection
+
+Referenced data can be protected from garbage collection. See the section about "resources" links on the "Links":Link.html page.
+
+Data can be shared with other users via the Arvados permission model.
+
+Clients can request checks of data integrity and storage redundancy.
+
+h2. Resource
+
+Each collection has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|description|text|||
+|portable_data_hash|string|||
+|manifest_text|text|||
+|replication_desired|number|Minimum storage replication level desired for each data block referenced by this collection. A value of @null@ signifies that the site default replication level (typically 2) is desired.|@2@|
+|replication_confirmed|number|Replication level most recently confirmed by the storage system. This field is null when a collection is first created, and is reset to null when the manifest_text changes in a way that introduces a new data block. An integer value indicates the replication level of the _least replicated_ data block in the collection.|@2@, null|
+|replication_confirmed_at|datetime|When replication_confirmed was confirmed. If replication_confirmed is null, this field is also null.||
+
+h2. Methods
+h3. create
 
 Create a new Collection.
 
@@ -22,7 +53,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |collection|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Collection.
 
@@ -32,7 +63,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Collection in question.|path||
 
-h2. get
+h3. get
 
 Gets a Collection's metadata by UUID.
 
@@ -42,7 +73,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Collection in question.|path||
 
-h2. list
+h3. list
 
 List collections.
 
@@ -57,7 +88,7 @@ table(table table-bordered table-condensed).
 
 Note: Because adding access tokens to manifests can be computationally expensive, the @manifest_text@ field is not included in results by default.  If you need it, pass a @select@ parameter that includes @manifest_text@.
 
-h2. update
+h3. update
 
 Update attributes of an existing Collection.
 
index 2603079560e8a857c60c1e16c20b43b1476c46fe..2f7eac300f25586a56fbf28b2202032880a49037 100644 (file)
@@ -12,6 +12,61 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/container_req
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
+
+Each ContainerRequest offers the following attributes, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+All attributes are optional, unless otherwise marked as required.
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Notes|
+|name|string|The name of the container_request.||
+|description|string|The description of the container_request.||
+|properties|hash|Client-defined structured data that does not affect how the container is run.||
+|state|string|The allowed states are "Uncommitted", "Committed", and "Final".|Once a request is Committed, the only attributes that can be modified are priority, container_uuid, and container_count_max. A request in the "Final" state cannot have any of its functional parts modified (i.e., only name, description, and properties fields can be modified).|
+|requesting_container_uuid|string|The uuid of the parent container that created this container_request, if any. Represents a process tree.|The priority of this container_request is inherited from the parent container, if the parent container is cancelled, this container_request will be cancelled as well.|
+|container_uuid|string|The uuid of the container that satisfies this container_request. The system will find and reuse any preexisting Container that matches this ContainerRequest's criteria. See "Container reuse":#container_reuse for more details.|Currently, container reuse is the default behavior and a mechanism to skip reuse is not supported.|
+|container_count_max|integer|Maximum number of containers to start, i.e., the maximum number of "attempts" to be made.||
+|mounts|hash|Objects to attach to the container's filesystem and stdin/stdout.|See "Mount types":#mount_types for more details.|
+|runtime_constraints|hash|Restrict the container's access to compute resources and the outside world.|Required when in "Committed" state. e.g.,<pre><code>{
+  "ram":12000000000,
+  "vcpus":2,
+  "API":true
+}</code></pre>See "Runtime constraints":#runtime_constraints for more details.|
+|container_image|string|Portable data hash of a collection containing the docker image to run the container.|Required.|
+|environment|hash|Environment variables and values that should be set in the container environment (@docker run --env@). This augments and (when conflicts exist) overrides environment variables given in the image's Dockerfile.||
+|cwd|string|Initial working directory, given as an absolute path (in the container) or a path relative to the WORKDIR given in the image's Dockerfile.|Required.|
+|command|array of strings|Command to execute in the container.|Required. e.g., @["echo","hello"]@|
+|output_path|string|Path to a directory or file inside the container that should be preserved as container's output when it finishes. This path must be, or be inside, one of the mount targets. For best performance, point output_path to a writable collection mount.|Required.|
+|priority|integer|Higher value means spend more resources on this container_request, i.e., go ahead of other queued containers, bring up more nodes etc.|Priority 0 means a container should not be run on behalf of this request. Clients are expected to submit ContainerRequests with zero priority in order to prevew the container that will be used to satisfy it. Priority can be null if and only if state!="Committed".|
+|expires_at|datetime|After this time, priority is considered to be zero.|Not yet implemented.|
+|filters|string|Additional constraints for satisfying the container_request, given in the same form as the filters parameter accepted by the container_requests.list API.||
+
+h2(#mount_types). {% include 'mount_types' %}
+
+h2(#runtime_constraints). {% include 'container_runtime_constraints' %}
+
+h2(#container_reuse). Container reuse
+
+When a ContainerRequest is "Committed", the system will try to find and reuse any preexisting Container with the same exact command, cwd, environment, output_path, container_image, mounts, and runtime_constraints as this ContainerRequest. The serialized fields environment, mounts and runtime_constraints are sorted to facilitate comparison.
+
+The system will use the following scheme to determine which Container to consider for reuse: A Container with the same exact command, cwd, environment, output_path, container_image, mounts, and runtime_constraints as this ContainerRequest and,
+* The oldest successfully finished container, i.e., in state "Complete" with exit_code of 0. If matching containers with different outputs are found, the system will forgo reusing any of these finished containers and instead look for suitable containers in other states
+* The oldest "Running" container with the highest progress, i.e., the container that is most likely to finish first
+* The oldest "Locked" container with the highest priority, i.e., the container that is most likely to start first
+* The oldest "Queued" container with the highest priority, i.e, the container that is most likely to start first
+
+{% include 'notebox_begin' %}
+Currently, container reuse is the default behavior and a mechanism to skip reuse is not supported.
+{% include 'notebox_end' %}
+
+h2(#cancel_container). Canceling a ContainerRequest
+
+A ContainerRequest may be canceled by setting it's priority to 0, using an update call.
+
+When a ContainerRequest is canceled, it will still reflect the state of the Container it is associated with via the container_uuid attribute. If that Container is being reused by any other container_requests that are still active, i.e., not yet canceled, that Container may continue to run or be scheduled to run by the system in future. However, if no other container_requests are using that Contianer, then the Container will get canceled as well.
+
+h2. Methods
 h2(#create). create
 
 Create a new ContainerRequest.
@@ -24,7 +79,7 @@ table(table table-bordered table-condensed).
 
 The request body must include the required attributes command, container_image, cwd, and output_path. It can also inlcude other attributes such as environment, mounts, and runtime_constraints.
 
-h2. delete
+h3. delete
 
 Delete an existing ContainerRequest.
 
@@ -34,7 +89,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the ContainerRequest in question.|path||
 
-h2. get
+h3. get
 
 Get a ContainerRequest's metadata by UUID.
 
@@ -44,7 +99,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the ContainerRequest in question.|path||
 
-h2. list
+h3. list
 
 List container_requests.
 
@@ -58,7 +113,7 @@ table(table table-bordered table-condensed).
 
 See the create method documentation for more information about ContainerRequest-specific filters.
 
-h2. update
+h3. update
 
 Update attributes of an existing ContainerRequest.
 
index c39b0926c18b717f0c09b1cf4355e2f8d89ed67d..0ef1cf9fc692e45d585c14731a28485cec40d874 100644 (file)
@@ -12,6 +12,51 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/containers@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
+
+Each Container offers the following attributes, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Notes|
+|state|string|The allowed states are "Queued", "Locked", "Running", "Cancelled" and "Complete".|See "Container states":#container_states for more details.|
+|started_at|datetime|When this container started running.|Null if container has not yet started.|
+|finished_at|datetime|When this container finished.|Null if container has not yet finished.|
+|log|string|Portable data hash of the collection containing logs from a completed container run.|Null if the container is not yet finished.|
+|environment|hash|Environment variables and values that should be set in the container environment (@docker run --env@). This augments and (when conflicts exist) overrides environment variables given in the image's Dockerfile.|Must be equal to a ContainerRequest's environment in order to satisfy the ContainerRequest.|
+|cwd|string|Initial working directory.|Must be equal to a ContainerRequest's cwd in order to satisfy the ContainerRequest|
+|command|array of strings|Command to execute.| Must be equal to a ContainerRequest's command in order to satisfy the ContainerRequest.|
+|output_path|string|Path to a directory or file inside the container that should be preserved as this container's output when it finishes.|Must be equal to a ContainerRequest's output_path in order to satisfy the ContainerRequest.|
+|mounts|hash|Must contain the same keys as the ContainerRequest being satisfied. Each value must be within the range of values described in the ContainerRequest at the time the Container is assigned to the ContainerRequest.|See "Mount types":#mount_types for more details.|
+|runtime_constraints|hash|Compute resources, and access to the outside world, that are / were available to the container.
+Generally this will contain additional keys that are not present in any corresponding ContainerRequests: for example, even if no ContainerRequests specified constraints on the number of CPU cores, the number of cores actually used will be recorded here.|e.g.,
+<pre><code>{
+  "ram":12000000000,
+  "vcpus":2,
+  "API":true
+}</code></pre>See "Runtime constraints":#runtime_constraints for more details.|
+|output|string|Portable data hash of the output collection.|Null if the container is not yet finished.|
+|container_image|string|Portable data hash of a collection containing the docker image used to run the container.||
+|progress|number|A number between 0.0 and 1.0 describing the fraction of work done.||
+|priority|integer|Priority assigned by the system, taking into account the priorities of all associated ContainerRequests.||
+|exit_code|integer|Process exit code.|Null if state!="Complete"|
+|auth_uuid|string|UUID of a token to be passed into the container itself, used to access Keep-backed mounts, etc.|Null if state∉{"Locked","Running"}|
+|locked_by_uuid|string|UUID of a token, indicating which dispatch process changed state to Locked. If null, any token can be used to lock. If not null, only the indicated token can modify this container.|Null if state∉{"Locked","Running"}|
+
+h2(#container_states). Container states
+
+table(table table-bordered table-condensed).
+|_. State|_. Sgnificance|_. Allowed next|
+|Queued|Waiting for a dispatcher to lock it and try to run the container.|Locked, Cancelled|
+|Locked|A dispatcher has "taken" the container and is allocating resources for it. The container has not started yet.|Queued, Running, Cancelled|
+|Running|Resources have been allocated and the contained process has been started (or is about to start). Crunch-run _must_ set state to Running _before_ there is any possibility that user code will run in the container.|Complete, Cancelled|
+|Complete|Container was running, and the contained process/command has exited.|-|
+|Cancelled|The container did not run long enough to produce an exit code. This includes cases where the container didn't even start, cases where the container was interrupted/killed before it exited by itself (e.g., priority changed to 0), and cases where some problem prevented the system from capturing the contained process's exit status (exit code and output).|-|
+
+h2(#mount_types). {% include 'mount_types' %}
+
+h2(#runtime_constraints). {% include 'container_runtime_constraints' %}
+
+h2. Methods
 h2(#create). create
 
 Create a new Container.
@@ -22,7 +67,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|container|object|See "Container resource":{{site.baseurl}}/api/schema/Container.html|request body||
 
-h2. delete
+h3. delete
 
 Delete an existing Container.
 
@@ -32,7 +77,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Container in question.|path||
 
-h2. get
+h3. get
 
 Get a Container's metadata by UUID.
 
@@ -42,7 +87,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Container in question.|path||
 
-h2. list
+h3. list
 
 List containers.
 
@@ -56,7 +101,7 @@ table(table table-bordered table-condensed).
 
 See the create method documentation for more information about Container-specific filters.
 
-h2. update
+h3. update
 
 Update attributes of an existing Container.
 
@@ -67,7 +112,7 @@ table(table table-bordered table-condensed).
 {background:#ccffcc}.|uuid|string|The UUID of the Container in question.|path||
 |container|object||query||
 
-h2. auth
+h3. auth
 
 Get the api_client_authorization record indicated by this container's auth_uuid, which belongs to the container's locked_by_uuid.
 
index cd9633db427aa1807d4a600f6533225f543e4b34..b22926671aae241a034697da8a7d558be64c9099 100644 (file)
@@ -13,8 +13,21 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/groups@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. contents
+Each Group has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|group_class|string|Type of group. This does not affect behavior, but determines how the group is presented in the user interface. For example, @project@ indicates that the group should be displayed by Workbench and arv-mount as a project for organizing and naming objects.|@"project"@
+null|
+|description|text|||
+|writable_by|array|List of UUID strings identifying Users and other Groups that have write permission for this Group.  Only users who are allowed to administer the Group will receive a full list.  Other users will receive a partial list that includes the Group's owner_uuid and (if applicable) their own user UUID.||
+
+h2. Methods
+
+h3. contents
 
 Retrieve a list of items owned by the group.
 
@@ -31,7 +44,7 @@ Note: Because adding access tokens to manifests can be computationally expensive
 
 Note: Use filters with the attribute format @<item type>.<field name>@ to filter items of a specific type. For example: @["pipeline_instances.state", "=", "Complete"]@ to filter @pipeline_instances@ where @state@ is @Complete@. All other types of items owned by this group will be unimpacted by this filter and will still be included.
 
-h2. create
+h3. create
 
 Create a new Group.
 
@@ -41,7 +54,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |group|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Group.
 
@@ -51,7 +64,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Group in question.|path||
 
-h2. get
+h3. get
 
 Gets a Group's metadata by UUID.
 
@@ -61,7 +74,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Group in question.|path||
 
-h2. list
+h3. list
 
 List groups.
 
@@ -73,7 +86,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching groups.|query||
 |filters|array|Conditions for filtering groups.|query||
 
-h2. show
+h3. show
 
 show groups
 
@@ -83,7 +96,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string||path||
 
-h2. update
+h3. update
 
 Update attributes of an existing Group.
 
index 1d8c13e9dc41fe86c5f93f3dba78264f82e123c2..207793843ad47788be4dd554fa4a51cb921a2c48 100644 (file)
@@ -12,8 +12,17 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/humans@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each Human has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|properties|hash|||
+
+h2. Methods
+
+h3. create
 
 Create a new Human.
 
@@ -23,7 +32,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |human|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Human.
 
@@ -33,7 +42,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Human in question.|path||
 
-h2. get
+h3. get
 
 Gets a Human's metadata by UUID.
 
@@ -43,7 +52,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Human in question.|path||
 
-h2. list
+h3. list
 
 List humans.
 
@@ -55,7 +64,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching humans.|query||
 |filters|array|Conditions for filtering humans.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing Human.
 
index 7b040d85b3c0b41841d50f99108257df72bcde62..a343d5449d5dea468f9eaed337d003cab8d1312e 100644 (file)
@@ -12,8 +12,33 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/job_tasks@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each JobTask has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|sequence|integer|Execution sequence.
+A step cannot be run until all steps with lower sequence numbers have completed.
+Job steps with the same sequence number can be run in any order.||
+|parameters|hash|||
+|output|text|||
+|progress|float|||
+|success|boolean|Is null if the task has neither completed successfully nor failed permanently.||
+
+The following attributes should not be updated by anyone other than the job manager:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Notes|
+|qsequence|integer|Order of arrival|0-based|
+|job_uuid|string|||
+|created_by_job_task_uuid|string|||
+
+
+
+h2. Methods
+
+h3. create
 
 Create a new JobTask.
 
@@ -23,7 +48,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |job_task|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing JobTask.
 
@@ -33,7 +58,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the JobTask in question.|path||
 
-h2. get
+h3. get
 
 Gets a JobTask's metadata by UUID.
 
@@ -43,7 +68,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the JobTask in question.|path||
 
-h2. list
+h3. list
 
 List job_tasks.
 
@@ -55,7 +80,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching job_tasks.|query||
 |filters|array|Conditions for filtering job_tasks.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing JobTask.
 
index 90a3c4c72216136909ca6fe1f5c074d5298b440f..0c93eb69e4c566f19e1a3f0b3f33194ef88bb418 100644 (file)
@@ -12,7 +12,61 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/jobs@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
-h2. cancel
+h2. Resource
+
+Each job has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Notes|
+|script|string|The filename of the job script.|This program will be invoked by Crunch for each job task. It is given as a path to an executable file, relative to the @/crunch_scripts@ directory in the Git tree specified by the _repository_ and _script_version_ attributes.|
+|script_parameters|hash|The input parameters for the job.|Conventionally, one of the parameters is called @"input"@. Typically, some parameter values are collection UUIDs. Ultimately, though, the significance of parameters is left entirely up to the script itself.|
+|repository|string|Git repository name or URL.|Source of the repository where the given script_version is to be found. This can be given as the name of a locally hosted repository, or as a publicly accessible URL starting with @git://@, @http://@, or @https://@.
+Examples:
+@yourusername/yourrepo@
+@https://github.com/curoverse/arvados.git@|
+|script_version|string|Git commit|During a **create** transaction, this is the Git branch, tag, or hash supplied by the client. Before the job starts, Arvados updates it to the full 40-character SHA-1 hash of the commit used by the job.
+See "Specifying Git versions":#script_version below for more detail about acceptable ways to specify a commit.|
+|cancelled_by_client_uuid|string|API client ID|Is null if job has not been cancelled|
+|cancelled_by_user_uuid|string|Authenticated user ID|Is null if job has not been cancelled|
+|cancelled_at|datetime|When job was cancelled|Is null if job has not been cancelled|
+|started_at|datetime|When job started running|Is null if job has not [yet] started|
+|finished_at|datetime|When job finished running|Is null if job has not [yet] finished|
+|running|boolean|Whether the job is running||
+|success|boolean|Whether the job indicated successful completion|Is null if job has not finished|
+|is_locked_by_uuid|string|UUID of the user who has locked this job|Is null if job is not locked. The system user locks the job when starting the job, in order to prevent job attributes from being altered.|
+|node_uuids|array|List of UUID strings for node objects that have been assigned to this job||
+|log|string|Collection UUID|Is null if the job has not finished. After the job runs, the given collection contains a text file with log messages provided by the @arv-crunch-job@ task scheduler as well as the standard error streams provided by the task processes.|
+|tasks_summary|hash|Summary of task completion states.|Example: @{"done":0,"running":4,"todo":2,"failed":0}@|
+|output|string|Collection UUID|Is null if the job has not finished.|
+|nondeterministic|boolean|The job is expected to produce different results if run more than once.|If true, this job will not be considered as a candidate for automatic re-use when submitting subsequent identical jobs.|
+|submit_id|string|Unique ID provided by client when job was submitted|Optional. This can be used by a client to make the "jobs.create":{{site.baseurl}}/api/methods/jobs.html#create method idempotent.|
+|priority|string|||
+|arvados_sdk_version|string|Git commit hash that specifies the SDK version to use from the Arvados repository|This is set by searching the Arvados repository for a match for the arvados_sdk_version runtime constraint.|
+|docker_image_locator|string|Portable data hash of the collection that contains the Docker image to use|This is set by searching readable collections for a match for the docker_image runtime constraint.|
+|runtime_constraints|hash|Constraints that must be satisfied by the job/task scheduler in order to run the job.|See below.|
+|components|hash|Name and uuid pairs representing the child work units of this job. The uuids can be of different object types.|Example components hash: @{"name1": "zzzzz-8i9sb-xyz...", "name2": "zzzzz-d1hrv-xyz...",}@|
+
+h3(#script_version). Specifying Git versions
+
+The script_version attribute and arvados_sdk_version runtime constraint are typically given as a branch, tag, or commit hash, but there are many more ways to specify a Git commit. The "specifying revisions" section of the "gitrevisions manual page":http://git-scm.com/docs/gitrevisions.html has a definitive list. Arvados accepts Git versions in any format listed there that names a single commit (not a tree, a blob, or a range of commits). However, some kinds of names can be expected to resolve differently in Arvados than they do in your local repository. For example, <code>HEAD@{1}</code> refers to the local reflog, and @origin/master@ typically refers to a remote branch: neither is likely to work as desired if given as a Git version.
+
+h3. Runtime constraints
+
+table(table table-bordered table-condensed).
+|_. Key|_. Type|_. Description|_. Implemented|
+|arvados_sdk_version|string|The Git version of the SDKs to use from the Arvados git repository.  See "Specifying Git versions":#script_version for more detail about acceptable ways to specify a commit.  If you use this, you must also specify a @docker_image@ constraint (see below).  In order to install the Python SDK successfully, Crunch must be able to find and run virtualenv inside the container.|&#10003;|
+|docker_image|string|The Docker image that this Job needs to run.  If specified, Crunch will create a Docker container from this image, and run the Job's script inside that.  The Keep mount and work directories will be available as volumes inside this container.  The image must be uploaded to Arvados using @arv keep docker@.  You may specify the image in any format that Docker accepts, such as @arvados/jobs@, @debian:latest@, or the Docker image id.  Alternatively, you may specify the portable data hash of the image Collection.|&#10003;|
+|min_nodes|integer||&#10003;|
+|max_nodes|integer|||
+|min_cores_per_node|integer|Require that each node assigned to this Job have the specified number of CPU cores|&#10003;|
+|min_ram_mb_per_node|integer|Require that each node assigned to this Job have the specified amount of real memory (in MiB)|&#10003;|
+|min_scratch_mb_per_node|integer|Require that each node assigned to this Job have the specified amount of scratch storage available (in MiB)|&#10003;|
+|max_tasks_per_node|integer|Maximum simultaneous tasks on a single node|&#10003;|
+|keep_cache_mb_per_task|integer|Size of file data buffer for per-task Keep directory ($TASK_KEEPMOUNT), in MiB.  Default is 256 MiB.  Increase this to reduce cache thrashing in situtations such as accessing multiple large (64+ MiB) files at the same time, or accessing different parts of a large file at the same time.|&#10003;|
+|min_ram_per_task|integer|Minimum real memory (KiB) per task||
+
+h2. Methods
+h3. cancel
 
 Cancel a job that is queued or running.
 
@@ -156,7 +210,7 @@ Run the script "crunch_scripts/monte-carlo.py" in the repository "you/you" using
 }
 </pre></notextile>
 
-h2. delete
+h3. delete
 
 Delete an existing Job.
 
@@ -166,7 +220,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Job in question.|path||
 
-h2. get
+h3. get
 
 Gets a Job's metadata by UUID.
 
@@ -176,7 +230,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Job in question.|path||
 
-h2. list
+h3. list
 
 List jobs.
 
@@ -190,7 +244,7 @@ table(table table-bordered table-condensed).
 
 See the create method documentation for more information about Job-specific filters.
 
-h2. log_tail_follow
+h3. log_tail_follow
 
 log_tail_follow jobs
 
@@ -201,7 +255,7 @@ table(table table-bordered table-condensed).
 {background:#ccffcc}.|uuid|string||path||
 |buffer_size|integer (default 8192)||query||
 
-h2. queue
+h3. queue
 
 Get the current job queue.
 
@@ -214,7 +268,7 @@ table(table table-bordered table-condensed).
 
 This method is equivalent to the "list method":#list, except that the results are restricted to queued jobs (i.e., jobs that have not yet been started or cancelled) and order defaults to queue priority.
 
-h2. update
+h3. update
 
 Update attributes of an existing Job.
 
index 5179ccc8b216e0fceca8a838effd92730bece093..37c7b145eea71d93461051c06cbc9f8d97c4ec24 100644 (file)
@@ -2,7 +2,7 @@
 layout: default
 navsection: api
 navmenu: API Methods
-title: "keep_disks"
+title: "keep_disks (deprecated)"
 
 ...
 
@@ -12,7 +12,26 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/keep_disks@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
-h2. create
+h2. Resource
+
+Each KeepDisk has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|ping_secret|string|||
+|node_uuid|string|||
+|filesystem_uuid|string|||
+|bytes_total|integer|||
+|bytes_free|integer|||
+|is_readable|boolean|||
+|is_writable|boolean|||
+|last_read_at|datetime|||
+|last_write_at|datetime|||
+|last_ping_at|datetime|||
+|keep_service_uuid|string|||
+
+h2. Methods
+h3. create
 
 Create a new KeepDisk.
 
@@ -22,7 +41,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |keep_disk|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing KeepDisk.
 
@@ -32,7 +51,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the KeepDisk in question.|path||
 
-h2. get
+h3. get
 
 Gets a KeepDisk's metadata by UUID.
 
@@ -42,7 +61,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the KeepDisk in question.|path||
 
-h2. list
+h3. list
 
 List keep_disks.
 
@@ -54,7 +73,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching keep_disks.|query||
 |filters|array|Conditions for filtering keep_disks.|query||
 
-h2. ping
+h3. ping
 
 ping keep_disks
 
@@ -70,7 +89,7 @@ table(table table-bordered table-condensed).
 |service_host|string||query||
 |uuid|string||query||
 
-h2. update
+h3. update
 
 Update attributes of an existing KeepDisk.
 
index da6818b92da3bae0e87b1999fe6637ea392ea6d2..5fa8817ede69bce116063487ce61fedce5aeb443 100644 (file)
@@ -12,7 +12,20 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/keep_services
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
-h2. accessible
+h2. Resource
+
+Each KeepService has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|service_host|string|||
+|service_port|integer|||
+|service_ssl_flag|boolean|||
+|service_type|string|||
+
+h2. Methods
+
+h3. accessible
 
 Get a list of keep services that are accessible to the requesting client.  This
 is context-sensitive, for example providing the list of actual Keep servers
@@ -21,7 +34,7 @@ Arvados from outside the cluster.
 
 Takes no arguments.
 
-h2. create
+h3. create
 
 Create a new KeepService.
 
@@ -31,7 +44,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |keep_disk|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing KeepService.
 
@@ -41,7 +54,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the KeepService in question.|path||
 
-h2. get
+h3. get
 
 Gets a KeepService's metadata by UUID.
 
@@ -51,7 +64,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the KeepService in question.|path||
 
-h2. list
+h3. list
 
 List keep_services.
 
@@ -63,7 +76,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching keep_services.|query||
 |filters|array|Conditions for filtering keep_services.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing KeepService.
 
index 3c0bdf346d033a9cad6bb0a9adcb8cd3dedde6c9..003456c542e8ce7089cd2f27cb8b1ede9c06bdc6 100644 (file)
@@ -12,7 +12,74 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/links@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
-h2. create
+h2. Resource
+
+Each link has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|
+|tail_uuid|string|Object UUID at the tail (start, source, origin) of this link|
+|link_class|string|Class (see below)|
+|name|string|Link type (see below)|
+|head_uuid|string|Object UUID at the head (end, destination, target) of this link|
+|properties|hash|Additional information, expressed as a key&rarr;value hash. Key: string. Value: string, number, array, or hash.|
+
+h2. Link classes
+
+Some classes are pre-defined by convention and have standard meanings attached to names.
+
+h3. provenance
+
+table(table table-bordered table-condensed).
+|_. tail_type&rarr;head_type|_. name&rarr;head_uuid {properties}|_. Notes|
+|&rarr;Collection  |provided &rarr; _collection uuid_
+{url&rarr;http://example.com/foo.tgz, retrieved_at&rarr;1352616640.000}||
+|Job&rarr;Collection     |provided &rarr; _collection uuid_||
+|Specimen&rarr;Collection|provided &rarr; _collection uuid_||
+|Human&rarr;Specimen     |provided &rarr; _specimen uuid_||
+|Human&rarr;Collection   |provided &rarr; _collection uuid_||
+
+h3. permission
+
+table(table table-bordered table-condensed).
+|_. tail_type&rarr;head_type|_. name&rarr;head_uuid {properties}|_. Notes|
+|User&rarr;Group  |{white-space:nowrap}. can_manage &rarr; _group uuid_|The User can read, write, and control permissions on the Group itself, every object owned by the Group, and every object on which the Group has _can_manage_ permission.|
+|User&rarr;Group  |can_read &rarr; _group uuid_  |The User can retrieve the Group itself and every object that is readable by the Group.|
+|User&rarr;Job|can_write &rarr; _job uuid_  |The User can read and update the Job. (This works for all objects, not just jobs.)|
+|User&rarr;Job|can_manage &rarr; _job uuid_  |The User can read, update, and change permissions for the Job. (This works for all objects, not just jobs.)|
+|Group&rarr;Job|can_manage &rarr; _job uuid_  |Anyone with _can_manage_ permission on the Group can also read, update, and change permissions for the Job. Anyone with _can_read_ permission on the Group can read the Job. (This works for all objects, not just jobs.)|
+
+h3. resources
+
+table(table table-bordered table-condensed).
+|_. tail_type&rarr;head_type|_. name&rarr;head_uuid {properties}|_. Notes|
+|User&rarr;Collection|wants &rarr; _collection uuid_    |Determines whether data can be deleted|
+|User&rarr;Job       |wants &rarr; _job uuid_    |Determines whether a job can be cancelled|
+
+h3. tag
+
+A **tag** link describes an object using an unparsed plain text string. Tags can be used to annotate objects that are not editable, like collections and objects shared as read-only.
+
+table(table table-bordered table-condensed).
+|_. tail_type&rarr;head_type|_. name&rarr;head_uuid {properties}|
+|&rarr;Collection           | _tag name_ &rarr; _collection uuid_|
+|&rarr;Job                  | _tag name_ &rarr; _job uuid_|
+
+h3. human_trait
+
+table(table table-bordered table-condensed).
+|_. tail_type&rarr;head_type|_. name&rarr;head_uuid {properties}|_. Notes|
+|Human&rarr;Trait  |measured &rarr; _trait uuid_ {value&rarr;1.83, unit&rarr;metre, measured_at&rarr;1352616640.000}||
+
+h3. identifier
+
+table(table table-bordered table-condensed).
+|_. tail_type&rarr;head_type|_. name&rarr;head_uuid {properties}|_. Notes|
+|&rarr;Human        |hu123456 &rarr; _human uuid_||
+
+
+h2. Methods
+h3. create
 
 Create a new Link.
 
@@ -22,7 +89,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |link|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Link.
 
@@ -32,7 +99,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Link in question.|path||
 
-h2. get
+h3. get
 
 Gets a Link's metadata by UUID.
 
@@ -42,7 +109,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Link in question.|path||
 
-h2. list
+h3. list
 
 List links.
 
@@ -54,7 +121,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching links.|query||
 |filters|array|Conditions for filtering links.|query||
 
-h2. render_not_found
+h3. render_not_found
 
 render_not_found links
 
@@ -64,7 +131,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|a|string||path||
 
-h2. update
+h3. update
 
 Update attributes of an existing Link.
 
index c5895d78a211dab8170a4b21ffcf66b6c574e33f..58ce979a289068b1ab4197d3a81fa7800d7ac7e1 100644 (file)
@@ -12,8 +12,29 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/logs@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Creation
 
-h2. create
+Any user may create Log entries for any event they find useful. User-generated Logs have no intrinsic meaning to other users or to the Arvados system itself; it is up to each user to choose appropriate log event types and summaries for their project.
+
+h3. System Logs
+
+Arvados uses Logs to record creation, deletion, and updates of other Arvados resources.
+
+h2. Resource
+
+Each Log has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|object_uuid|string|||
+|event_at|datetime|||
+|event_type|string|A user-defined category or type for this event.|@LOGIN@|
+|summary|text|||
+|properties|hash|||
+
+h2. Methods
+
+h3. create
 
 Create a new log entry.
 
@@ -23,7 +44,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |log|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing log entry. This method can only be used by privileged (system administrator) users.
 
@@ -33,7 +54,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the log entry in question.|path||
 
-h2. get
+h3. get
 
 Retrieve a log entry.
 
@@ -43,7 +64,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the log entry in question.|path||
 
-h2. list
+h3. list
 
 List log entries.
 
@@ -55,7 +76,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching log entries.|query||
 |filters|array|Conditions for filtering log entries.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing log entry. This method can only be used by privileged (system administrator) users.
 
index 7aa5896ea5314e3535182fbe5ba194902d86bc43..4ccbd999a2b04ca033084d03493570665b3e40c5 100644 (file)
@@ -12,8 +12,24 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/nodes@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each Node has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|slot_number|integer|||
+|hostname|string|||
+|domain|string|||
+|ip_address|string|||
+|job_uuid|string|The UUID of the job that this node is assigned to work on.  If you do not have permission to read the job, this will be null.||
+|first_ping_at|datetime|||
+|last_ping_at|datetime|||
+|info|hash|||
+
+h2. Methods
+
+h3. create
 
 Create a new Node.
 
@@ -23,7 +39,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|node|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Node.
 
@@ -33,7 +49,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Node in question.|path||
 
-h2. get
+h3. get
 
 Gets a Node's metadata by UUID.
 
@@ -43,7 +59,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Node in question.|path||
 
-h2. list
+h3. list
 
 List nodes.
 
@@ -55,7 +71,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching nodes.|query||
 |filters|array|Conditions for filtering nodes.|query||
 
-h2. ping
+h3. ping
 
 ping nodes
 
@@ -66,7 +82,7 @@ table(table table-bordered table-condensed).
 {background:#ccffcc}.|ping_secret|string||query||
 {background:#ccffcc}.|uuid|string||path||
 
-h2. update
+h3. update
 
 Update attributes of an existing Node.
 
index d637a696eb83de397c9bae0b972b64b156e555b3..97bf59ac8ade04c03e761b34a4d4aedfdf71606d 100644 (file)
@@ -12,8 +12,22 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/pipeline_inst
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each PipelineInstance has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|pipeline_template_uuid|string|||
+|name|string|||
+|components|hash|||
+|success|boolean|||
+|active|boolean|||
+|properties|Hash|||
+
+h2. Methods
+
+h3. create
 
 Create a new PipelineInstance.
 
@@ -23,7 +37,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |pipeline_instance|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing PipelineInstance.
 
@@ -33,7 +47,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the PipelineInstance in question.|path||
 
-h2. get
+h3. get
 
 Gets a PipelineInstance's metadata by UUID.
 
@@ -43,7 +57,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the PipelineInstance in question.|path||
 
-h2. list
+h3. list
 
 List pipeline_instances.
 
@@ -55,7 +69,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching pipeline_instances.|query||
 |filters|array|Conditions for filtering pipeline_instances.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing PipelineInstance.
 
index 06684cc6df05ab1f32f17e362cc6b52f8ac2eeae..d44ee7b0c3b3844c10ae106c1c1fd47699529119 100644 (file)
@@ -12,8 +12,160 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/pipeline_temp
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each PipelineTemplate has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|components|hash|||
+
+The pipeline template consists of "name" and "components".
+
+table(table table-bordered table-condensed).
+|_. Attribute    |_. Type |_. Accepted values                           |_. Required|_. Description|
+|name            |string  |any                                          |yes        |The human-readable name of the pipeline template.|
+|components      |object  |JSON object containing job submission objects|yes        |The component jobs that make up the pipeline, with the component name as the key. |
+
+h3. Components
+
+The components field of the pipeline template is a JSON object which describes the individual steps that make up the pipeline.  Each component is an Arvados job submission.  "Parameters for job submissions are described on the job method page.":{{site.baseurl}}/api/methods/jobs.html#create  In addition, a component can have the following parameters:
+
+table(table table-bordered table-condensed).
+|_. Attribute    |_. Type          |_. Accepted values |_. Required|_. Description|
+|output_name     |string or boolean|string or false    |no         |If a string is provided, use this name for the output collection of this component.  If the value is false, do not create a permanent output collection (an temporary intermediate collection will still be created).  If not provided, a default name will be assigned to the output.|
+
+h3. Script parameters
+
+When used in a pipeline, each parameter in the 'script_parameters' attribute of a component job can specify that the input parameter must be supplied by the user, or the input parameter should be linked to the output of another component.  To do this, the value of the parameter should be JSON object containing one of the following attributes:
+
+table(table table-bordered table-condensed).
+|_. Attribute    |_. Type |_. Accepted values                               |_. Description|
+|default         |any     |any                                              |The default value for this parameter.|
+|required        |boolean |true or false                                    |Specifies whether the parameter is required to have a value or not.|
+|dataclass       |string  |One of 'Collection', 'File' [1], 'number', or 'text' |Data type of this parameter.|
+|search_for      |string  |any string                                       |Substring to use as a default search string when choosing inputs.|
+|output_of       |string  |the name of another component in the pipeline    |Specifies that the value of this parameter should be set to the 'output' attribute of the job that corresponds to the specified component.|
+|title           |string  |any string                                       |User friendly title to display when choosing parameter values|
+|description     |string  |any string                                       |Extended text description for describing expected/valid values for the script parameter|
+|link_name       |string  |any string                                       |User friendly name to display for the parameter value instead of the actual parameter value|
+
+The 'output_of' parameter is especially important, as this is how components are actually linked together to form a pipeline.  Component jobs that depend on the output of other components do not run until the parent job completes and has produced output.  If the parent job fails, the entire pipeline fails.
+
+fn1. The 'File' type refers to a specific file within a Keep collection in the form 'collection_hash/filename', for example '887cd41e9c613463eab2f0d885c6dd96+83/bob.txt'.
+
+The 'search_for' parameter is meaningful only when input dataclass of type Collection or File is used. If a value is provided, this will be preloaded into the input data chooser dialog in Workbench. For example, if your input dataclass is a File and you are interested in a certain filename extention, you can preconfigure it in this attribute.
+
+h3. Examples
+
+This is a pipeline named "Filter MD5 hash values" with two components, "do_hash" and "filter".  The "input" script parameter of the "do_hash" component is required to be filled in by the user, and the expected data type is "Collection".  This also specifies that the "input" script parameter of the "filter" component is the output of "do_hash", so "filter" will not run until "do_hash" completes successfully.  When the pipeline runs, past jobs that meet the criteria described above may be substituted for either or both components to avoid redundant computation.
+
+<notextile><pre>
+{
+  "name": "Filter MD5 hash values",
+  "components": {
+    "do_hash": {
+      "script": "hash.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": {
+        "input": {
+          "required": true,
+          "dataclass": "Collection",
+          "search_for": ".fastq.gz",
+          "title":"Please select a fastq file"
+        }
+      },
+    },
+    "filter": {
+      "script": "0-filter.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": {
+        "input": {
+          "output_of": "do_hash"
+        }
+      },
+    }
+  }
+}
+</pre></notextile>
+
+This pipeline consists of three components.  The components "thing1" and "thing2" both depend on "cat_in_the_hat".  Once the "cat_in_the_hat" job is complete, both "thing1" and "thing2" can run in parallel, because they do not depend on each other.
+
+<notextile><pre>
+{
+  "name": "Wreck the house",
+  "components": {
+    "cat_in_the_hat": {
+      "script": "cat.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": { }
+    },
+    "thing1": {
+      "script": "thing1.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": {
+        "input": {
+          "output_of": "cat_in_the_hat"
+        }
+      },
+    },
+    "thing2": {
+      "script": "thing2.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": {
+        "input": {
+          "output_of": "cat_in_the_hat"
+        }
+      },
+    },
+  }
+}
+</pre></notextile>
+
+This pipeline consists of three components.  The component "cleanup" depends on "thing1" and "thing2".  Both "thing1" and "thing2" are started immediately and can run in parallel, because they do not depend on each other, but "cleanup" cannot begin until both "thing1" and "thing2" have completed.
+
+<notextile><pre>
+{
+  "name": "Clean the house",
+  "components": {
+    "thing1": {
+      "script": "thing1.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": { }
+    },
+    "thing2": {
+      "script": "thing2.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": { }
+    },
+    "cleanup": {
+      "script": "cleanup.py",
+      "repository": "<b>you</b>/<b>you</b>",
+      "script_version": "master",
+      "script_parameters": {
+        "mess1": {
+          "output_of": "thing1"
+        },
+        "mess2": {
+          "output_of": "thing2"
+        }
+      }
+    }
+  }
+}
+</pre></notextile>
+
+h2. Methods
+
+h3. create
 
 Create a new PipelineTemplate.
 
@@ -23,7 +175,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |pipeline_template|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing PipelineTemplate.
 
@@ -33,7 +185,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the PipelineTemplate in question.|path||
 
-h2. get
+h3. get
 
 Gets a PipelineTemplate's metadata by UUID.
 
@@ -43,7 +195,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the PipelineTemplate in question.|path||
 
-h2. list
+h3. list
 
 List pipeline_templates.
 
@@ -55,7 +207,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching pipeline_templates.|query||
 |filters|array|Conditions for filtering pipeline_templates.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing PipelineTemplate.
 
index 7bd8dd9d4216c2049083a2a0be9c62ec57b6c869..d2dcdc04f7392c8f0a8c6b90920da8c5a0c2b67e 100644 (file)
@@ -12,8 +12,21 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/repositories@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each Repository has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|The name of the repository on disk.  Repository names must begin with a letter and contain only alphanumerics.  Unless the repository is owned by the system user, the name must begin with the owner's username, then be separated from the base repository name with @/@.  You may not create a repository that is owned by a user without a username.|@username/project1@|
+|clone_urls|array|URLs from which the repository can be cloned. Read-only.|@["git@git.zzzzz.arvadosapi.com:foo/bar.git",
+ "https://git.zzzzz.arvadosapi.com/foo/bar.git"]@|
+|fetch_url|string|URL suggested as a fetch-url in git config. Deprecated. Read-only.||
+|push_url|string|URL suggested as a push-url in git config. Deprecated. Read-only.||
+
+h2. Methods
+
+h3. create
 
 Create a new Repository.
 
@@ -23,7 +36,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |repository|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Repository.
 
@@ -33,7 +46,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Repository in question.|path||
 
-h2. get
+h3. get
 
 Gets a Repository's metadata by UUID.
 
@@ -43,7 +56,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Repository in question.|path||
 
-h2. get_all_permissions
+h3. get_all_permissions
 
 get_all_permissions repositories
 
@@ -52,7 +65,7 @@ Arguments:
 table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 
-h2. list
+h3. list
 
 List repositories.
 
@@ -64,7 +77,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching repositories.|query||
 |filters|array|Conditions for filtering repositories.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing Repository.
 
index 6737c9bcae8b2ebb08ec54b7445065d2d011110a..79ef47965336156ac78c2cfc8bc10fdae130f055 100644 (file)
@@ -12,8 +12,18 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/specimens@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each Specimen has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|material|string|||
+|properties|hash|||
+
+h2. Methods
+
+h3. create
 
 Create a new Specimen.
 
@@ -23,7 +33,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |specimen|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Specimen.
 
@@ -33,7 +43,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Specimen in question.|path||
 
-h2. get
+h3. get
 
 Gets a Specimen's metadata by UUID.
 
@@ -43,7 +53,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Specimen in question.|path||
 
-h2. list
+h3. list
 
 List specimens.
 
@@ -55,7 +65,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching specimens.|query||
 |filters|array|Conditions for filtering specimens.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing Specimen.
 
index 9b19a0880b30d9f3ca22e9dc411a8df0a5132dfc..0f997726d7c6ae925e9e37178b27312f57c3e919 100644 (file)
@@ -12,8 +12,18 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/traits@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each Trait has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|properties|hash|||
+
+h2. Methods
+
+h3. create
 
 Create a new Trait.
 
@@ -23,7 +33,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |trait|object||query||
 
-h2. delete
+h3. delete
 
 Delete an existing Trait.
 
@@ -33,7 +43,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Trait in question.|path||
 
-h2. get
+h3. get
 
 Gets a Trait's metadata by UUID.
 
@@ -43,7 +53,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Trait in question.|path||
 
-h2. list
+h3. list
 
 List traits.
 
@@ -55,7 +65,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching traits.|query||
 |filters|array|Conditions for filtering traits.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing Trait.
 
index 33f884b6cc7ffd9599343503a34db89ee90ff6ad..a9884d384e950b227a7114de02b09ffad6afe6b9 100644 (file)
@@ -12,8 +12,26 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/users@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each User has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|email|string|||
+|username|string|The username used for the user's git repositories and virtual machine logins.  Usernames must start with a letter, and contain only alphanumerics.  When a new user is created, a default username is set from their e-mail address.  Only administrators may change the username.||
+|first_name|string|||
+|last_name|string|||
+|identity_url|string|||
+|is_admin|boolean|||
+|prefs|hash|||
+|default_owner_uuid|string|||
+|is_active|boolean|||
+|writable_by|array|List of UUID strings identifying Groups and other Users that can modify this User object.  This will include the user's owner_uuid and, for administrators and users requesting their own User object, the requesting user's UUID.||
+
+h2. Methods
+
+h3. create
 
 Create a new User.
 
@@ -23,7 +41,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |user|object||query||
 
-h2. current
+h3. current
 
 current users
 
@@ -32,7 +50,7 @@ Arguments:
 table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 
-h2. delete
+h3. delete
 
 Delete an existing User.
 
@@ -48,7 +66,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string||path||
 
-h2. get
+h3. get
 
 Gets a User's metadata by UUID.
 
@@ -58,7 +76,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the User in question.|path||
 
-h2. list
+h3. list
 
 List users.
 
@@ -70,7 +88,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching users.|query||
 |filters|array|Conditions for filtering users.|query||
 
-h2. show
+h3. show
 
 show users
 
@@ -80,7 +98,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string||path||
 
-h2. system
+h3. system
 
 system users
 
@@ -89,7 +107,7 @@ Arguments:
 table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 
-h2. update
+h3. update
 
 Update attributes of an existing User.
 
index 390abdc595893964893a151387432185a04ba9af..738465970643e678567511af2ac348b790798ab8 100644 (file)
@@ -12,6 +12,14 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/virtual_machi
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
+
+Each VirtualMachine has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|hostname|string|||
+
 
 h2. create
 
index 95be013b621d92e5f534ba42ec94af96d3a56ed8..16755ce69e3f079a67870a033b80ace4fd91d7a3 100644 (file)
@@ -12,8 +12,19 @@ API endpoint base: @https://{{ site.arvados_api_host }}/arvados/v1/workflows@
 
 Required arguments are displayed in %{background:#ccffcc}green%.
 
+h2. Resource
 
-h2. create
+Each Workflow offers the following optional attributes, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|If not specified, will be set to any "name" from the "definition" attribute.||
+|description|string|If not specified, will be set to any "description" from the "definition" attribute.||
+|definition|string|A "Common Workflow Language" document.|Visit "Common Workflow Language":http://www.commonwl.org/ for details.|
+
+h2. Methods
+
+h3. create
 
 Create a new Workflow.
 
@@ -23,7 +34,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|workflow|object|See "Workflow resource":{{site.baseurl}}/api/schema/Workflow.html|request body||
 
-h2. delete
+h3. delete
 
 Delete an existing Workflow.
 
@@ -33,7 +44,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Workflow in question.|path||
 
-h2. get
+h3. get
 
 Get a Workflow's metadata by UUID.
 
@@ -43,7 +54,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Workflow in question.|path||
 
-h2. list
+h3. list
 
 List workflows.
 
@@ -55,7 +66,7 @@ table(table table-bordered table-condensed).
 |order|string|Order in which to return matching workflows.|query||
 |filters|array|Conditions for filtering workflows.|query||
 
-h2. update
+h3. update
 
 Update attributes of an existing Workflow.
 
diff --git a/doc/api/requests.html.textile.liquid b/doc/api/requests.html.textile.liquid
new file mode 100644 (file)
index 0000000..a485b9d
--- /dev/null
@@ -0,0 +1,308 @@
+---
+layout: default
+navsection: api
+navmenu: Concepts
+title: Request syntax
+...
+
+API requests to Arvados are made using standard HTTP requests.
+
+h3. HTTP Method
+
+Use @GET@ to request individual resources or lists of resources.
+
+Use @POST@ to create new resources.
+
+Use @PUT@ to update an existing resource.
+
+Use @DELETE@ to remove an existing resource.
+
+As a special case, a @POST@ with the query parameter @_method=GET@ will be treated as a GET request.  This makes it possible to have @GET@ requests where the query string exceeds the permitted request URI length, by putting the query string in the body of the request.
+
+h3. Request URI
+
+The URI portion of the request identifies the specific resource to operate on.
+
+h3. Authorization header
+
+Every request must include an API token.  This identifies the user making the request for the purposes of access control.  In addition, tokens may be further restricted in scope to only access certain API endpoints.
+
+API requests must provide the API token using the @Authorization@ header in the following format:
+
+<pre>
+Authorization: OAuth2 xxxxapitokenxxxx
+</pre>
+
+h3. Parameters
+
+Request parameters may be provided in one of two ways.  They may be provided in the "query" section of request URI, or they may be provided in the body of the request with application/x-www-form-urlencoded encoding.  If parameters are provided in both places, their values will be merged.  Parameter names must be unique.  If a parameter appears multiple times, the behavior is undefined.
+
+To support structured and nested parameter values, after urldecode the value of each parameter is parsed as JSON.  Because of this, string values must be surrounded in double quotes.
+
+h2. Examples
+
+h3. Get a specific collection
+
+<pre>
+$ curl -v -H "Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr" https://192.168.5.2:8000/arvados/v1/collections/962eh-4zz18-xi32mpz2621o8km | jq .
+> GET /arvados/v1/collections/962eh-4zz18-xi32mpz2621o8km HTTP/1.1
+> User-Agent: curl/7.38.0
+> Host: 192.168.5.2:8000
+> Accept: */*
+> Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr
+>
+< HTTP/1.1 200 OK
+< Content-Type: application/json; charset=utf-8
+< Transfer-Encoding: chunked
+< Connection: keep-alive
+< Status: 200 OK
+< Access-Control-Allow-Origin: *
+< Access-Control-Allow-Methods: GET, HEAD, PUT, POST, DELETE
+< Access-Control-Allow-Headers: Authorization
+< Access-Control-Max-Age: 86486400
+< X-UA-Compatible: IE=Edge,chrome=1
+< ETag: "fec2ddf433a352e5a2b5d356abd6d3d4"
+< Cache-Control: max-age=0, private, must-revalidate
+< X-Request-Id: 40b447507ff202ae9a0b0b3e0ebe98da
+< X-Runtime: 0.011404
+< X-Powered-By: Phusion Passenger 4.0.41
+< Date: Fri, 28 Oct 2016 18:59:09 GMT
+< Server: nginx/1.4.7 + Phusion Passenger 4.0.41
+<
+{
+  "href": "/collections/962eh-4zz18-xi32mpz2621o8km",
+  "kind": "arvados#collection",
+  "etag": "3mmn0s9e1z5s5opfofmtb9k8p",
+  "uuid": "962eh-4zz18-xi32mpz2621o8km",
+  "owner_uuid": "962eh-tpzed-000000000000000",
+  "created_at": "2016-10-27T14:47:43.792587000Z",
+  "modified_by_client_uuid": "962eh-ozdt8-lm5x8emraox8epg",
+  "modified_by_user_uuid": "962eh-tpzed-000000000000000",
+  "modified_at": "2016-10-27T14:47:43.792166000Z",
+  "name": "Saved at 2016-10-27 14:47:43 UTC by peter@debian",
+  "description": null,
+  "properties": {},
+  "portable_data_hash": "93a45073511646a5c3e2f4953fcf6f61+116",
+  "manifest_text": ". eff999f3b5158331eb44a9a93e3b36e1+67108864+Aad3839bea88bce22cbfe71cf4943de7dab3ea52a@5826180f db141bfd11f7da60dce9e5ee85a988b8+34038725+Ae8f48913fed782cbe463e0499ab37697ee06a2f8@5826180f 0:101147589:rna.SRR948778.bam\n",
+  "replication_desired": null,
+  "replication_confirmed": null,
+  "replication_confirmed_at": null,
+  "expires_at": null
+}
+</pre>
+
+h3. List collections and filter by uuid
+
+<pre>
+$ curl -v -G --data-urlencode 'filters=[["uuid", "=", "962eh-4zz18-xi32mpz2621o8km"]]' -H "Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr" https://192.168.5.2:8000/arvados/v1/collections | jq .
+> GET /arvados/v1/collections?filters=%5B%5B%22uuid%22%2C%20%22%3D%22%2C%20%22962eh-4zz18-xi32mpz2621o8km%22%5D%5D HTTP/1.1
+> User-Agent: curl/7.38.0
+> Host: 192.168.5.2:8000
+> Accept: */*
+> Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr
+>
+< HTTP/1.1 200 OK
+< Content-Type: application/json; charset=utf-8
+< Transfer-Encoding: chunked
+< Connection: keep-alive
+< Status: 200 OK
+< Access-Control-Allow-Origin: *
+< Access-Control-Allow-Methods: GET, HEAD, PUT, POST, DELETE
+< Access-Control-Allow-Headers: Authorization
+< Access-Control-Max-Age: 86486400
+< X-UA-Compatible: IE=Edge,chrome=1
+< ETag: "76345ef24952f073acc3a0c550241d4e"
+< Cache-Control: max-age=0, private, must-revalidate
+< X-Request-Id: d34b8ede4ffc707d8ed172dc2f47ff5e
+< X-Runtime: 0.012727
+< X-Powered-By: Phusion Passenger 4.0.41
+< Date: Fri, 28 Oct 2016 19:08:52 GMT
+< Server: nginx/1.4.7 + Phusion Passenger 4.0.41
+<
+{
+  "kind": "arvados#collectionList",
+  "etag": "",
+  "self_link": "",
+  "offset": 0,
+  "limit": 100,
+  "items": [
+    {
+      "href": "/collections/962eh-4zz18-xi32mpz2621o8km",
+      "kind": "arvados#collection",
+      "etag": "78tpra4ms5o67mngyd0dr4n9e",
+      "uuid": "962eh-4zz18-xi32mpz2621o8km",
+      "owner_uuid": "962eh-tpzed-000000000000000",
+      "created_at": "2016-10-27T14:47:43.792587000Z",
+      "modified_by_client_uuid": "962eh-ozdt8-lm5x8emraox8epg",
+      "modified_by_user_uuid": "962eh-tpzed-000000000000000",
+      "modified_at": "2016-10-27T14:47:43.792166000Z",
+      "name": "Saved at 2016-10-27 14:47:43 UTC by peter@debian",
+      "description": null,
+      "properties": {},
+      "portable_data_hash": "93a45073511646a5c3e2f4953fcf6f61+116",
+      "replication_desired": null,
+      "replication_confirmed": null,
+      "replication_confirmed_at": null,
+      "expires_at": null
+    }
+  ],
+  "items_available": 1
+}
+</pre>
+
+h3. Update a field
+
+<pre>
+$ curl -v -X PUT --data-urlencode 'collection={"name":"rna.SRR948778.bam"}' -H "Authorization: OAuth2 $ARVADOS_API_TOKEN" https://$ARVADOS_API_HOST/arvados/v1/collections/962eh-4zz18-xi32mpz2621o8km | jq .
+> PUT /arvados/v1/collections/962eh-4zz18-xi32mpz2621o8km HTTP/1.1
+> User-Agent: curl/7.38.0
+> Host: 192.168.5.2:8000
+> Accept: */*
+> Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr
+> Content-Length: 53
+> Content-Type: application/x-www-form-urlencoded
+>
+} [data not shown]
+< HTTP/1.1 200 OK
+< Content-Type: application/json; charset=utf-8
+< Transfer-Encoding: chunked
+< Connection: keep-alive
+< Status: 200 OK
+< Access-Control-Allow-Origin: *
+< Access-Control-Allow-Methods: GET, HEAD, PUT, POST, DELETE
+< Access-Control-Allow-Headers: Authorization
+< Access-Control-Max-Age: 86486400
+< X-UA-Compatible: IE=Edge,chrome=1
+< ETag: "fbb50d2847426eab793e3fcf346ca9eb"
+< Cache-Control: max-age=0, private, must-revalidate
+< Set-Cookie: _server_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJWI3NjFjMzVjMGI5OGExYmNjZDg0ZTg5MjZhMzcwMDE1BjsAVA%3D%3D--0e005d71fad15cb366e47361c38474b7447ba155; path=/; HttpOnly
+< X-Request-Id: 76d3cb3c0995af6133b0a73a64f57354
+< X-Runtime: 0.030756
+< X-Powered-By: Phusion Passenger 4.0.41
+< Date: Fri, 28 Oct 2016 19:15:16 GMT
+< Server: nginx/1.4.7 + Phusion Passenger 4.0.41
+<
+{
+  "href": "/collections/962eh-4zz18-xi32mpz2621o8km",
+  "kind": "arvados#collection",
+  "etag": "51509hhxo9qqjxqewnoz1b7og",
+  "uuid": "962eh-4zz18-xi32mpz2621o8km",
+  "owner_uuid": "962eh-tpzed-000000000000000",
+  "created_at": "2016-10-27T14:47:43.792587000Z",
+  "modified_by_client_uuid": "962eh-ozdt8-lm5x8emraox8epg",
+  "modified_by_user_uuid": "962eh-tpzed-000000000000000",
+  "modified_at": "2016-10-28T19:15:16.137814000Z",
+  "name": "rna.SRR948778.bam",
+  "description": null,
+  "properties": {},
+  "portable_data_hash": "93a45073511646a5c3e2f4953fcf6f61+116",
+  "manifest_text": ". eff999f3b5158331eb44a9a93e3b36e1+67108864+Acca57af82cc18c5dfa47bdfd16e335fccd09dfa5@582618c4 db141bfd11f7da60dce9e5ee85a988b8+34038725+A7764f122f41f92c2d5bde1852fcdd1bea5f8bd78@582618c4 0:101147589:rna.SRR948778.bam\n",
+  "replication_desired": null,
+  "replication_confirmed": null,
+  "replication_confirmed_at": null,
+  "expires_at": null
+}
+</pre>
+
+h3. Create a new record
+
+<pre>
+$ curl -v -X POST --data-urlencode 'collection={"name":"empty collection"}' -H "Authorization: OAuth2 $ARVADOS_API_TOKEN" https://$ARVADOS_API_HOST/arvados/v1/collections | jq .
+> POST /arvados/v1/collections HTTP/1.1
+> User-Agent: curl/7.38.0
+> Host: 192.168.5.2:8000
+> Accept: */*
+> Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr
+> Content-Length: 54
+> Content-Type: application/x-www-form-urlencoded
+>
+} [data not shown]
+< HTTP/1.1 200 OK
+< Content-Type: application/json; charset=utf-8
+< Transfer-Encoding: chunked
+< Connection: keep-alive
+< Status: 200 OK
+< Access-Control-Allow-Origin: *
+< Access-Control-Allow-Methods: GET, HEAD, PUT, POST, DELETE
+< Access-Control-Allow-Headers: Authorization
+< Access-Control-Max-Age: 86486400
+< X-UA-Compatible: IE=Edge,chrome=1
+< ETag: "2ec9ef5151c1f7a1486ad169c33ae462"
+< Cache-Control: max-age=0, private, must-revalidate
+< Set-Cookie: _server_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTIwMjQ1NTE5YmEwMzU1MGZkMTBmYmY1YzllY2ZiMjFlBjsAVA%3D%3D--653bc9c20899d48ee8523e18d9a4c1cde0702577; path=/; HttpOnly
+< X-Request-Id: 56aa10bc49097f3b44d3ed946bf0e61e
+< X-Runtime: 0.049951
+< X-Powered-By: Phusion Passenger 4.0.41
+< Date: Fri, 28 Oct 2016 19:20:09 GMT
+< Server: nginx/1.4.7 + Phusion Passenger 4.0.41
+<
+{
+  "href": "/collections/962eh-4zz18-m1ma0mxxfg3mbcc",
+  "kind": "arvados#collection",
+  "etag": "c5ifrv1ox2tu6alb559ymtkb7",
+  "uuid": "962eh-4zz18-m1ma0mxxfg3mbcc",
+  "owner_uuid": "962eh-tpzed-000000000000000",
+  "created_at": "2016-10-28T19:20:09.320771531Z",
+  "modified_by_client_uuid": "962eh-ozdt8-lm5x8emraox8epg",
+  "modified_by_user_uuid": "962eh-tpzed-000000000000000",
+  "modified_at": "2016-10-28T19:20:09.319661000Z",
+  "name": "empty collection",
+  "description": null,
+  "properties": {},
+  "portable_data_hash": "d41d8cd98f00b204e9800998ecf8427e+0",
+  "manifest_text": "",
+  "replication_desired": null,
+  "replication_confirmed": null,
+  "replication_confirmed_at": null,
+  "expires_at": null
+}
+</pre>
+
+h3. Delete a record
+
+$ curl -X DELETE -v -H "Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr" https://192.168.5.2:8000/arvados/v1/collections/962eh-4zz18-m1ma0mxxfg3mbcc | jq .
+> DELETE /arvados/v1/collections/962eh-4zz18-m1ma0mxxfg3mbcc HTTP/1.1
+> User-Agent: curl/7.38.0
+> Host: 192.168.5.2:8000
+> Accept: */*
+> Authorization: OAuth2 oz0os4nyudswvglxhdlnrgnuelxptmj7qu7dpwvyz3g9ocqtr
+>
+< HTTP/1.1 200 OK
+< Content-Type: application/json; charset=utf-8
+< Transfer-Encoding: chunked
+< Connection: keep-alive
+< Status: 200 OK
+< Access-Control-Allow-Origin: *
+< Access-Control-Allow-Methods: GET, HEAD, PUT, POST, DELETE
+< Access-Control-Allow-Headers: Authorization
+< Access-Control-Max-Age: 86486400
+< X-UA-Compatible: IE=Edge,chrome=1
+< ETag: "1e8f72802cf1a6d0a5c4a1ebbfcc46a9"
+< Cache-Control: max-age=0, private, must-revalidate
+< Set-Cookie: _server_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTc2NDYyY2M0NTNlNmU3M2Y2M2E3YmFiMWQ1MTEyZGZkBjsAVA%3D%3D--d28c7dd640bd24e2b12f01e77088072138dcf145; path=/; HttpOnly
+< X-Request-Id: e66fd3ab825bdb87301f5456161fb641
+< X-Runtime: 0.028788
+< X-Powered-By: Phusion Passenger 4.0.41
+< Date: Fri, 28 Oct 2016 19:33:31 GMT
+< Server: nginx/1.4.7 + Phusion Passenger 4.0.41
+<
+{
+  "href": "/collections/962eh-4zz18-m1ma0mxxfg3mbcc",
+  "kind": "arvados#collection",
+  "etag": "c5ifrv1ox2tu6alb559ymtkb7",
+  "uuid": "962eh-4zz18-m1ma0mxxfg3mbcc",
+  "owner_uuid": "962eh-tpzed-000000000000000",
+  "created_at": "2016-10-28T19:20:09.320771000Z",
+  "modified_by_client_uuid": "962eh-ozdt8-lm5x8emraox8epg",
+  "modified_by_user_uuid": "962eh-tpzed-000000000000000",
+  "modified_at": "2016-10-28T19:20:09.319661000Z",
+  "name": "empty collection",
+  "description": null,
+  "properties": {},
+  "portable_data_hash": "d41d8cd98f00b204e9800998ecf8427e+0",
+  "manifest_text": "",
+  "replication_desired": null,
+  "replication_confirmed": null,
+  "replication_confirmed_at": null,
+  "expires_at": null
+}
index a93b4ac114745c2de676f2cb14ee90ac0bc60227..437230fab6d4c6259afd5dc7c5eb69e94c4105a5 100644 (file)
@@ -2,7 +2,7 @@
 layout: default
 navsection: api
 navmenu: Concepts
-title: Resources
+title: Common resource fields
 
 ...
 
@@ -46,4 +46,3 @@ table(table table-bordered table-condensed).
 h2. ETags
 
 fn1. Each response includes an ETag, a string which changes when the resource changes.  Clients can use this to check whether a resource has changed since they last retrieved it.  If a previous ETag is provided along with a request, and the resource has not changed since, the server may return a "not modified" response.
-
index 444960a6ea46e9f38a389e06814b743cf6a4680d..244e67e53307c7274bd949b30534f8202df9281f 100644 (file)
@@ -5,6 +5,15 @@ navmenu: Schema
 title: PipelineTemplate
 ...
 
+h2. Resource
+
+Each PipelineTemplate has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
+
+table(table table-bordered table-condensed).
+|_. Attribute|_. Type|_. Description|_. Example|
+|name|string|||
+|components|hash|||
+
 The pipeline template consists of "name" and "components".
 
 table(table table-bordered table-condensed).
@@ -150,12 +159,3 @@ This pipeline consists of three components.  The component "cleanup" depends on
 h2. Methods
 
 See "pipeline_templates":{{site.baseurl}}/api/methods/pipeline_templates.html
-
-h2. Resource
-
-Each PipelineTemplate has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
-
-table(table table-bordered table-condensed).
-|_. Attribute|_. Type|_. Description|_. Example|
-|name|string|||
-|components|hash|||