Merge branch '13593-async-perm-graph-update'
[arvados.git] / doc / api / methods / groups.html.textile.liquid
index cec80631826befa7f44acba58a1c2b00881ca131..9c75fa8ec7aec59d9ffea144cbf67d9a6caae7b0 100644 (file)
@@ -53,6 +53,7 @@ table(table table-bordered table-condensed).
 |order|array|Attributes to use as sort keys to determine the order resources are returned, each optionally followed by @asc@ or @desc@ to indicate ascending or descending order. Sort within a resource type by prefixing the attribute with the resource name and a period.|query|@["collections.modified_at desc"]@|
 |filters|array|Conditions for filtering items.|query|@[["uuid", "is_a", "arvados#job"]]@|
 |recursive|boolean (default false)|Include items owned by subprojects.|query|@true@|
+|exclude_home_project|boolean (default false)|Only return items which are visible to the user but not accessible within the user's home project.  Use this to get a list of items that are shared with the user.|query|@true@|
 
 Note: Because adding access tokens to manifests can be computationally expensive, the @manifest_text@ field is not included in listed collections.  If you need it, request a "list of collections":{{site.baseurl}}/api/methods/collections.html with the filter @["owner_uuid", "=", GROUP_UUID]@, and @"manifest_text"@ listed in the select parameter.
 
@@ -67,6 +68,7 @@ Arguments:
 table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 |group|object||query||
+|async|boolean (default false)|Defer the permissions graph update by a configured number of seconds. (By default, @async_permissions_update_interval@ is 20 seconds). On success, the response is 202 (Accepted).|query|@true@|
 
 h3. delete
 
@@ -114,6 +116,7 @@ table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |
 {background:#ccffcc}.|uuid|string|The UUID of the Group in question.|path||
 |group|object||query||
+|async|boolean (default false)|Defer the permissions graph update by a configured number of seconds. (By default, @async_permissions_update_interval@ is 20 seconds). On success, the response is 202 (Accepted).|query|@true@|
 
 h3. untrash
 
@@ -128,22 +131,20 @@ table(table table-bordered table-condensed).
 
 h3. shared
 
-This endpoint returns the toplevel set of groups which are *not* reachable through a direct ownership chain of projects starting from the current user account.  In other words, groups which to which access was granted via a permission link or chain of links.
+This endpoint returns the toplevel set of groups to which access is granted through a chain of one or more permission links rather than through direct ownership by the current user account.  This is useful for clients which wish to browse the list of projects the user has permission to read which are not part of the "home" project tree.
 
-This also returns (in the "included" field) the objects that own those projects (users or non-project groups).
+When called with "include=owner_uuid" this also returns (in the "included" field) the objects that own those projects (users or non-project groups).
 
-The logic is:
+Specifically, the logic is:
 
 <pre>
 select groups that are readable by current user AND
-    the owner_uuid is a user (but not the current user) OR
-    the owner_uuid is not readable by the current user OR
-    the owner_uuid is a group but group_class is not a project
+    (the owner_uuid is a user (but not the current user) OR
+     the owner_uuid is not readable by the current user OR
+     the owner_uuid is a group but group_class is not a project)
 </pre>
 
-The intended use of this endpoint is to support clients which wish to browse the list of projects the user has permission to read which are not part of the "home" project (projects directly owned by the user).
-
-This endpoint supports the same parameters as the "list method.":{{site.baseurl}}/api/methods.html#index  It also supports the "include" parameter:
+In addition to the "include" parameter this endpoint also supports the same parameters as the "list method.":{{site.baseurl}}/api/methods.html#index
 
 table(table table-bordered table-condensed).
 |_. Argument |_. Type |_. Description |_. Location |_. Example |