18600: Merge branch 'main'
[arvados.git] / doc / api / index.html.textile.liquid
index 4b0df898f355b48f21be9d4a7b24a4392db549ec..3d69d02ea92379fcb11c17d78cae442112e8df84 100644 (file)
@@ -4,49 +4,26 @@ navsection: api
 title: API Reference
 
 ...
+{% comment %}
+Copyright (C) The Arvados Authors. All rights reserved.
 
+SPDX-License-Identifier: CC-BY-SA-3.0
+{% endcomment %}
 
+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
+h2. Discovery document
 
-* 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.
+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.
 
-h2. Resources
+h2. Exported configuration
 
-h3. Generic Resources
+The Controller exposes a subset of the cluster's configuration and makes it available to clients in JSON format. This public config includes valuable information like several service's URLs, timeout settings, etc. and it is available at @/arvados/v1/config@, for example @https://{{ site.arvados_api_host }}/arvados/v1/config@. The new Workbench is one example of a client using this information, as it's a client-side application and doesn't have access to the cluster's config file.
 
-* "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
+h2. Exported vocabulary definition
 
-h3. Authentication
+When configured, the Controller also exports the "metadata vocabulary definition":{{site.baseurl}}/admin/metadata-vocabulary.html in JSON format. This functionality is useful for clients like Workbench2 and the Python SDK to provide "identifier to human-readable labels" translations facilities for reading and writing objects on the system. This is available at @/arvados/v1/vocabulary@, for example @https://{{ site.arvados_api_host }}/arvados/v1/vocabulary@.
 
-These Arvados resources govern authorization and "authentication":authentication.html:
+h2. Workbench examples
 
-* "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.
-
-* "CommitAncestor":schema/CommitAncestor.html
-* "Commit":schema/Commit.html
-* "KeepDisk":schema/KeepDisk.html
-* "Node":schema/Node.html
-* "Repository":schema/Repository.html
-* "VirtualMachine":schema/VirtualMachine.html
+Many Arvados Workbench pages, under the *Advanced* tab, provide examples of API and SDK use for accessing the current resource .