[ARVADOS] updated: 1.3.0-3216-gd6ea05560

Git user git at public.arvados.org
Thu Sep 24 15:14:43 UTC 2020


Summary of changes:
 services/keep-web/s3.go      |  3 +++
 services/keep-web/s3_test.go | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)

  discards  ca07e0d0c46fbe0f4e5b5a1c702a208391c0d1ad (commit)
  discards  d993e4c9508e0570df1d64ab63d3a9e6a6c40184 (commit)
  discards  3c723bd552c2671a76b047cd260e83483b3f45c1 (commit)
       via  d6ea055606feac9b70a0419bce5405e5274633e7 (commit)
       via  76073b912b371c3940087897aecdce4430b7aa1d (commit)
       via  69274f95798389376e00de7f07a9822858c3ee62 (commit)
       via  819e06bd1bbff1ad4ecf250d621a807033907c29 (commit)
       via  a3eefdae693e4195ca4f46b7873f3055f4a0d377 (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (ca07e0d0c46fbe0f4e5b5a1c702a208391c0d1ad)
            \
             N -- N -- N (d6ea055606feac9b70a0419bce5405e5274633e7)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit d6ea055606feac9b70a0419bce5405e5274633e7
Author: Peter Amstutz <peter.amstutz at curii.com>
Date:   Wed Sep 23 17:50:14 2020 -0400

    16827: Don't append '/' to requests with query params.  Bump version
    
    Also remove package-cross loading with "source" that generated warnings.
    
    Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>

diff --git a/sdk/R/DESCRIPTION b/sdk/R/DESCRIPTION
index 878a70901..75ac892b4 100644
--- a/sdk/R/DESCRIPTION
+++ b/sdk/R/DESCRIPTION
@@ -1,9 +1,9 @@
 Package: ArvadosR
 Type: Package
 Title: Arvados R SDK
-Version: 0.0.5
-Authors at R: person("Fuad", "Muhic", role = c("aut", "cre"), email = "fmuhic at capeannenterprises.com")
-Maintainer: Ward Vandewege <wvandewege at veritasgenetics.com>
+Version: 0.0.6
+Authors at R: c(person("Fuad", "Muhic", role = c("aut", "ctr"), email = "fmuhic at capeannenterprises.com"),
+             person("Peter", "Amstutz", role = c("cre"), email = "peter.amstutz at curii.com"))
 Description: This is the Arvados R SDK
 URL: http://doc.arvados.org
 License: Apache-2.0
diff --git a/sdk/R/R/ArvadosFile.R b/sdk/R/R/ArvadosFile.R
index 70bb4450e..fb1d3b335 100644
--- a/sdk/R/R/ArvadosFile.R
+++ b/sdk/R/R/ArvadosFile.R
@@ -2,8 +2,6 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
-source("./R/util.R")
-
 #' ArvadosFile
 #'
 #' ArvadosFile class represents a file inside Arvados collection.
diff --git a/sdk/R/R/Collection.R b/sdk/R/R/Collection.R
index 8869d7be6..144083654 100644
--- a/sdk/R/R/Collection.R
+++ b/sdk/R/R/Collection.R
@@ -2,11 +2,6 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
-source("./R/Subcollection.R")
-source("./R/ArvadosFile.R")
-source("./R/RESTService.R")
-source("./R/util.R")
-
 #' Collection
 #'
 #' Collection class provides interface for working with Arvados collections.
diff --git a/sdk/R/R/CollectionTree.R b/sdk/R/R/CollectionTree.R
index 5f7a29455..e01e7e8de 100644
--- a/sdk/R/R/CollectionTree.R
+++ b/sdk/R/R/CollectionTree.R
@@ -2,10 +2,6 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
-source("./R/Subcollection.R")
-source("./R/ArvadosFile.R")
-source("./R/util.R")
-
 CollectionTree <- R6::R6Class(
     "CollectionTree",
     public = list(
diff --git a/sdk/R/R/HttpRequest.R b/sdk/R/R/HttpRequest.R
index 07defca90..18b36f968 100644
--- a/sdk/R/R/HttpRequest.R
+++ b/sdk/R/R/HttpRequest.R
@@ -2,8 +2,6 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
-source("./R/util.R")
-
 HttpRequest <- R6::R6Class(
 
     "HttrRequest",
@@ -54,7 +52,7 @@ HttpRequest <- R6::R6Class(
             {
                 query <- paste0(names(query), "=", query, collapse = "&")
 
-                return(paste0("/?", query))
+                return(paste0("?", query))
             }
 
             return("")
diff --git a/sdk/R/R/Subcollection.R b/sdk/R/R/Subcollection.R
index 17a9ef3ee..981bd687a 100644
--- a/sdk/R/R/Subcollection.R
+++ b/sdk/R/R/Subcollection.R
@@ -2,8 +2,6 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
-source("./R/util.R")
-
 #' Subcollection
 #'
 #' Subcollection class represents a folder inside Arvados collection.
diff --git a/sdk/R/tests/testthat/test-HttpRequest.R b/sdk/R/tests/testthat/test-HttpRequest.R
index eb58d033b..c1b6f1039 100644
--- a/sdk/R/tests/testthat/test-HttpRequest.R
+++ b/sdk/R/tests/testthat/test-HttpRequest.R
@@ -20,7 +20,7 @@ test_that("createQuery generates and encodes query portion of http", {
     queryParams$limit <- 20
     queryParams$offset <- 50
     expect_that(http$createQuery(queryParams),
-                equals(paste0("/?filters=%5B%5B%22color%22%2C%22%3D%22%2C%22red",
+                equals(paste0("?filters=%5B%5B%22color%22%2C%22%3D%22%2C%22red",
                               "%22%5D%5D&limit=20&offset=50")))
 })
 

commit 76073b912b371c3940087897aecdce4430b7aa1d
Author: Peter Amstutz <peter.amstutz at curii.com>
Date:   Wed Sep 23 16:40:55 2020 -0400

    16827: Update the generated API to Arvados 2.0
    
    Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>

diff --git a/sdk/R/R/Arvados.R b/sdk/R/R/Arvados.R
index 744cb3c29..528a60665 100644
--- a/sdk/R/R/Arvados.R
+++ b/sdk/R/R/Arvados.R
@@ -1,130 +1,60 @@
-#' users.get
-#' 
-#' users.get is a method defined in Arvados class.
-#' 
-#' @usage arv$users.get(uuid)
-#' @param uuid The UUID of the User in question.
-#' @return User object.
-#' @name users.get
-NULL
-
-#' users.create
-#' 
-#' users.create is a method defined in Arvados class.
-#' 
-#' @usage arv$users.create(user, ensure_unique_name = "false")
-#' @param user User object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return User object.
-#' @name users.create
-NULL
-
-#' users.update
-#' 
-#' users.update is a method defined in Arvados class.
-#' 
-#' @usage arv$users.update(user, uuid)
-#' @param user User object.
-#' @param uuid The UUID of the User in question.
-#' @return User object.
-#' @name users.update
-NULL
-
-#' users.delete
-#' 
-#' users.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$users.delete(uuid)
-#' @param uuid The UUID of the User in question.
-#' @return User object.
-#' @name users.delete
-NULL
-
-#' users.current
-#' 
-#' users.current is a method defined in Arvados class.
-#' 
-#' @usage arv$users.current(NULL)
-#' @return User object.
-#' @name users.current
-NULL
-
-#' users.system
-#' 
-#' users.system is a method defined in Arvados class.
-#' 
-#' @usage arv$users.system(NULL)
-#' @return User object.
-#' @name users.system
-NULL
-
-#' users.activate
-#' 
-#' users.activate is a method defined in Arvados class.
-#' 
-#' @usage arv$users.activate(uuid)
-#' @param uuid 
-#' @return User object.
-#' @name users.activate
-NULL
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
 
-#' users.setup
+#' api_clients.get
 #' 
-#' users.setup is a method defined in Arvados class.
+#' api_clients.get is a method defined in Arvados class.
 #' 
-#' @usage arv$users.setup(user = NULL, openid_prefix = NULL,
-#' 	repo_name = NULL, vm_uuid = NULL, send_notification_email = "false")
-#' @param user 
-#' @param openid_prefix 
-#' @param repo_name 
-#' @param vm_uuid 
-#' @param send_notification_email 
-#' @return User object.
-#' @name users.setup
+#' @usage arv$api_clients.get(uuid)
+#' @param uuid The UUID of the ApiClient in question.
+#' @return ApiClient object.
+#' @name api_clients.get
 NULL
 
-#' users.unsetup
+#' api_clients.create
 #' 
-#' users.unsetup is a method defined in Arvados class.
+#' api_clients.create is a method defined in Arvados class.
 #' 
-#' @usage arv$users.unsetup(uuid)
-#' @param uuid 
-#' @return User object.
-#' @name users.unsetup
+#' @usage arv$api_clients.create(apiclient,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param apiClient ApiClient object.
+#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return ApiClient object.
+#' @name api_clients.create
 NULL
 
-#' users.update_uuid
+#' api_clients.update
 #' 
-#' users.update_uuid is a method defined in Arvados class.
+#' api_clients.update is a method defined in Arvados class.
 #' 
-#' @usage arv$users.update_uuid(uuid, new_uuid)
-#' @param uuid 
-#' @param new_uuid 
-#' @return User object.
-#' @name users.update_uuid
+#' @usage arv$api_clients.update(apiclient,
+#' 	uuid)
+#' @param apiClient ApiClient object.
+#' @param uuid The UUID of the ApiClient in question.
+#' @return ApiClient object.
+#' @name api_clients.update
 NULL
 
-#' users.merge
+#' api_clients.delete
 #' 
-#' users.merge is a method defined in Arvados class.
+#' api_clients.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$users.merge(new_owner_uuid,
-#' 	new_user_token, redirect_to_new_user = NULL)
-#' @param new_owner_uuid 
-#' @param new_user_token 
-#' @param redirect_to_new_user 
-#' @return User object.
-#' @name users.merge
+#' @usage arv$api_clients.delete(uuid)
+#' @param uuid The UUID of the ApiClient in question.
+#' @return ApiClient object.
+#' @name api_clients.delete
 NULL
 
-#' users.list
+#' api_clients.list
 #' 
-#' users.list is a method defined in Arvados class.
+#' api_clients.list is a method defined in Arvados class.
 #' 
-#' @usage arv$users.list(filters = NULL,
+#' @usage arv$api_clients.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -133,8 +63,10 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return UserList object.
-#' @name users.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return ApiClientList object.
+#' @name api_clients.list
 NULL
 
 #' api_client_authorizations.get
@@ -152,9 +84,10 @@ NULL
 #' api_client_authorizations.create is a method defined in Arvados class.
 #' 
 #' @usage arv$api_client_authorizations.create(apiclientauthorization,
-#' 	ensure_unique_name = "false")
+#' 	ensure_unique_name = "false", cluster_id = NULL)
 #' @param apiClientAuthorization ApiClientAuthorization object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
 #' @return ApiClientAuthorization object.
 #' @name api_client_authorizations.create
 NULL
@@ -209,7 +142,7 @@ NULL
 #' @usage arv$api_client_authorizations.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -218,111 +151,173 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
 #' @return ApiClientAuthorizationList object.
 #' @name api_client_authorizations.list
 NULL
 
-#' containers.get
+#' authorized_keys.get
 #' 
-#' containers.get is a method defined in Arvados class.
+#' authorized_keys.get is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.get(uuid)
-#' @param uuid The UUID of the Container in question.
-#' @return Container object.
-#' @name containers.get
+#' @usage arv$authorized_keys.get(uuid)
+#' @param uuid The UUID of the AuthorizedKey in question.
+#' @return AuthorizedKey object.
+#' @name authorized_keys.get
 NULL
 
-#' containers.create
+#' authorized_keys.create
 #' 
-#' containers.create is a method defined in Arvados class.
+#' authorized_keys.create is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.create(container,
-#' 	ensure_unique_name = "false")
-#' @param container Container object.
+#' @usage arv$authorized_keys.create(authorizedkey,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param authorizedKey AuthorizedKey object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Container object.
-#' @name containers.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return AuthorizedKey object.
+#' @name authorized_keys.create
 NULL
 
-#' containers.update
+#' authorized_keys.update
 #' 
-#' containers.update is a method defined in Arvados class.
+#' authorized_keys.update is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.update(container,
+#' @usage arv$authorized_keys.update(authorizedkey,
 #' 	uuid)
-#' @param container Container object.
-#' @param uuid The UUID of the Container in question.
-#' @return Container object.
-#' @name containers.update
+#' @param authorizedKey AuthorizedKey object.
+#' @param uuid The UUID of the AuthorizedKey in question.
+#' @return AuthorizedKey object.
+#' @name authorized_keys.update
 NULL
 
-#' containers.delete
+#' authorized_keys.delete
 #' 
-#' containers.delete is a method defined in Arvados class.
+#' authorized_keys.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.delete(uuid)
-#' @param uuid The UUID of the Container in question.
-#' @return Container object.
-#' @name containers.delete
+#' @usage arv$authorized_keys.delete(uuid)
+#' @param uuid The UUID of the AuthorizedKey in question.
+#' @return AuthorizedKey object.
+#' @name authorized_keys.delete
 NULL
 
-#' containers.auth
+#' authorized_keys.list
 #' 
-#' containers.auth is a method defined in Arvados class.
+#' authorized_keys.list is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.auth(uuid)
-#' @param uuid 
-#' @return Container object.
-#' @name containers.auth
+#' @usage arv$authorized_keys.list(filters = NULL,
+#' 	where = NULL, order = NULL, select = NULL,
+#' 	distinct = NULL, limit = "100", offset = "0",
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
+#' @param filters 
+#' @param where 
+#' @param order 
+#' @param select 
+#' @param distinct 
+#' @param limit 
+#' @param offset 
+#' @param count 
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return AuthorizedKeyList object.
+#' @name authorized_keys.list
 NULL
 
-#' containers.lock
+#' collections.get
 #' 
-#' containers.lock is a method defined in Arvados class.
+#' collections.get is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.lock(uuid)
-#' @param uuid 
-#' @return Container object.
-#' @name containers.lock
+#' @usage arv$collections.get(uuid)
+#' @param uuid The UUID of the Collection in question.
+#' @return Collection object.
+#' @name collections.get
 NULL
 
-#' containers.unlock
+#' collections.create
 #' 
-#' containers.unlock is a method defined in Arvados class.
+#' collections.create is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.unlock(uuid)
-#' @param uuid 
-#' @return Container object.
-#' @name containers.unlock
+#' @usage arv$collections.create(collection,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param collection Collection object.
+#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return Collection object.
+#' @name collections.create
 NULL
 
-#' containers.secret_mounts
+#' collections.update
 #' 
-#' containers.secret_mounts is a method defined in Arvados class.
+#' collections.update is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.secret_mounts(uuid)
-#' @param uuid 
-#' @return Container object.
-#' @name containers.secret_mounts
+#' @usage arv$collections.update(collection,
+#' 	uuid)
+#' @param collection Collection object.
+#' @param uuid The UUID of the Collection in question.
+#' @return Collection object.
+#' @name collections.update
 NULL
 
-#' containers.current
+#' collections.delete
 #' 
-#' containers.current is a method defined in Arvados class.
+#' collections.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.current(NULL)
-#' @return Container object.
-#' @name containers.current
+#' @usage arv$collections.delete(uuid)
+#' @param uuid The UUID of the Collection in question.
+#' @return Collection object.
+#' @name collections.delete
 NULL
 
-#' containers.list
+#' collections.provenance
 #' 
-#' containers.list is a method defined in Arvados class.
+#' collections.provenance is a method defined in Arvados class.
 #' 
-#' @usage arv$containers.list(filters = NULL,
+#' @usage arv$collections.provenance(uuid)
+#' @param uuid 
+#' @return Collection object.
+#' @name collections.provenance
+NULL
+
+#' collections.used_by
+#' 
+#' collections.used_by is a method defined in Arvados class.
+#' 
+#' @usage arv$collections.used_by(uuid)
+#' @param uuid 
+#' @return Collection object.
+#' @name collections.used_by
+NULL
+
+#' collections.trash
+#' 
+#' collections.trash is a method defined in Arvados class.
+#' 
+#' @usage arv$collections.trash(uuid)
+#' @param uuid 
+#' @return Collection object.
+#' @name collections.trash
+NULL
+
+#' collections.untrash
+#' 
+#' collections.untrash is a method defined in Arvados class.
+#' 
+#' @usage arv$collections.untrash(uuid)
+#' @param uuid 
+#' @return Collection object.
+#' @name collections.untrash
+NULL
+
+#' collections.list
+#' 
+#' collections.list is a method defined in Arvados class.
+#' 
+#' @usage arv$collections.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL,
+#' 	include_trash = NULL, include_old_versions = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -331,62 +326,116 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return ContainerList object.
-#' @name containers.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @param include_trash Include collections whose is_trashed attribute is true.
+#' @param include_old_versions Include past collection versions.
+#' @return CollectionList object.
+#' @name collections.list
 NULL
 
-#' api_clients.get
+#' containers.get
 #' 
-#' api_clients.get is a method defined in Arvados class.
+#' containers.get is a method defined in Arvados class.
 #' 
-#' @usage arv$api_clients.get(uuid)
-#' @param uuid The UUID of the ApiClient in question.
-#' @return ApiClient object.
-#' @name api_clients.get
+#' @usage arv$containers.get(uuid)
+#' @param uuid The UUID of the Container in question.
+#' @return Container object.
+#' @name containers.get
 NULL
 
-#' api_clients.create
+#' containers.create
 #' 
-#' api_clients.create is a method defined in Arvados class.
+#' containers.create is a method defined in Arvados class.
 #' 
-#' @usage arv$api_clients.create(apiclient,
-#' 	ensure_unique_name = "false")
-#' @param apiClient ApiClient object.
+#' @usage arv$containers.create(container,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param container Container object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return ApiClient object.
-#' @name api_clients.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return Container object.
+#' @name containers.create
 NULL
 
-#' api_clients.update
+#' containers.update
 #' 
-#' api_clients.update is a method defined in Arvados class.
+#' containers.update is a method defined in Arvados class.
 #' 
-#' @usage arv$api_clients.update(apiclient,
+#' @usage arv$containers.update(container,
 #' 	uuid)
-#' @param apiClient ApiClient object.
-#' @param uuid The UUID of the ApiClient in question.
-#' @return ApiClient object.
-#' @name api_clients.update
+#' @param container Container object.
+#' @param uuid The UUID of the Container in question.
+#' @return Container object.
+#' @name containers.update
 NULL
 
-#' api_clients.delete
+#' containers.delete
 #' 
-#' api_clients.delete is a method defined in Arvados class.
+#' containers.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$api_clients.delete(uuid)
-#' @param uuid The UUID of the ApiClient in question.
-#' @return ApiClient object.
-#' @name api_clients.delete
+#' @usage arv$containers.delete(uuid)
+#' @param uuid The UUID of the Container in question.
+#' @return Container object.
+#' @name containers.delete
 NULL
 
-#' api_clients.list
+#' containers.auth
 #' 
-#' api_clients.list is a method defined in Arvados class.
+#' containers.auth is a method defined in Arvados class.
 #' 
-#' @usage arv$api_clients.list(filters = NULL,
+#' @usage arv$containers.auth(uuid)
+#' @param uuid 
+#' @return Container object.
+#' @name containers.auth
+NULL
+
+#' containers.lock
+#' 
+#' containers.lock is a method defined in Arvados class.
+#' 
+#' @usage arv$containers.lock(uuid)
+#' @param uuid 
+#' @return Container object.
+#' @name containers.lock
+NULL
+
+#' containers.unlock
+#' 
+#' containers.unlock is a method defined in Arvados class.
+#' 
+#' @usage arv$containers.unlock(uuid)
+#' @param uuid 
+#' @return Container object.
+#' @name containers.unlock
+NULL
+
+#' containers.secret_mounts
+#' 
+#' containers.secret_mounts is a method defined in Arvados class.
+#' 
+#' @usage arv$containers.secret_mounts(uuid)
+#' @param uuid 
+#' @return Container object.
+#' @name containers.secret_mounts
+NULL
+
+#' containers.current
+#' 
+#' containers.current is a method defined in Arvados class.
+#' 
+#' @usage arv$containers.current(NULL)
+#' @return Container object.
+#' @name containers.current
+NULL
+
+#' containers.list
+#' 
+#' containers.list is a method defined in Arvados class.
+#' 
+#' @usage arv$containers.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -395,8 +444,10 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return ApiClientList object.
-#' @name api_clients.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return ContainerList object.
+#' @name containers.list
 NULL
 
 #' container_requests.get
@@ -414,9 +465,10 @@ NULL
 #' container_requests.create is a method defined in Arvados class.
 #' 
 #' @usage arv$container_requests.create(containerrequest,
-#' 	ensure_unique_name = "false")
+#' 	ensure_unique_name = "false", cluster_id = NULL)
 #' @param containerRequest ContainerRequest object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
 #' @return ContainerRequest object.
 #' @name container_requests.create
 NULL
@@ -450,7 +502,8 @@ NULL
 #' @usage arv$container_requests.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL,
+#' 	include_trash = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -459,62 +512,96 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @param include_trash Include container requests whose owner project is trashed.
 #' @return ContainerRequestList object.
 #' @name container_requests.list
 NULL
 
-#' authorized_keys.get
+#' groups.get
 #' 
-#' authorized_keys.get is a method defined in Arvados class.
+#' groups.get is a method defined in Arvados class.
 #' 
-#' @usage arv$authorized_keys.get(uuid)
-#' @param uuid The UUID of the AuthorizedKey in question.
-#' @return AuthorizedKey object.
-#' @name authorized_keys.get
+#' @usage arv$groups.get(uuid)
+#' @param uuid The UUID of the Group in question.
+#' @return Group object.
+#' @name groups.get
 NULL
 
-#' authorized_keys.create
+#' groups.create
 #' 
-#' authorized_keys.create is a method defined in Arvados class.
+#' groups.create is a method defined in Arvados class.
 #' 
-#' @usage arv$authorized_keys.create(authorizedkey,
-#' 	ensure_unique_name = "false")
-#' @param authorizedKey AuthorizedKey object.
+#' @usage arv$groups.create(group, ensure_unique_name = "false",
+#' 	cluster_id = NULL, async = "false")
+#' @param group Group object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return AuthorizedKey object.
-#' @name authorized_keys.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @param async defer permissions update
+#' @return Group object.
+#' @name groups.create
 NULL
 
-#' authorized_keys.update
+#' groups.update
 #' 
-#' authorized_keys.update is a method defined in Arvados class.
+#' groups.update is a method defined in Arvados class.
 #' 
-#' @usage arv$authorized_keys.update(authorizedkey,
-#' 	uuid)
-#' @param authorizedKey AuthorizedKey object.
-#' @param uuid The UUID of the AuthorizedKey in question.
-#' @return AuthorizedKey object.
-#' @name authorized_keys.update
+#' @usage arv$groups.update(group, uuid,
+#' 	async = "false")
+#' @param group Group object.
+#' @param uuid The UUID of the Group in question.
+#' @param async defer permissions update
+#' @return Group object.
+#' @name groups.update
 NULL
 
-#' authorized_keys.delete
+#' groups.delete
 #' 
-#' authorized_keys.delete is a method defined in Arvados class.
+#' groups.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$authorized_keys.delete(uuid)
-#' @param uuid The UUID of the AuthorizedKey in question.
-#' @return AuthorizedKey object.
-#' @name authorized_keys.delete
+#' @usage arv$groups.delete(uuid)
+#' @param uuid The UUID of the Group in question.
+#' @return Group object.
+#' @name groups.delete
 NULL
 
-#' authorized_keys.list
+#' groups.contents
 #' 
-#' authorized_keys.list is a method defined in Arvados class.
+#' groups.contents is a method defined in Arvados class.
 #' 
-#' @usage arv$authorized_keys.list(filters = NULL,
+#' @usage arv$groups.contents(filters = NULL,
+#' 	where = NULL, order = NULL, distinct = NULL,
+#' 	limit = "100", offset = "0", count = "exact",
+#' 	cluster_id = NULL, bypass_federation = NULL,
+#' 	include_trash = NULL, uuid = NULL, recursive = NULL,
+#' 	include = NULL)
+#' @param filters 
+#' @param where 
+#' @param order 
+#' @param distinct 
+#' @param limit 
+#' @param offset 
+#' @param count 
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @param include_trash Include items whose is_trashed attribute is true.
+#' @param uuid 
+#' @param recursive Include contents from child groups recursively.
+#' @param include Include objects referred to by listed field in "included" (only owner_uuid)
+#' @return Group object.
+#' @name groups.contents
+NULL
+
+#' groups.shared
+#' 
+#' groups.shared is a method defined in Arvados class.
+#' 
+#' @usage arv$groups.shared(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL,
+#' 	include_trash = NULL, include = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -523,102 +610,120 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return AuthorizedKeyList object.
-#' @name authorized_keys.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @param include_trash Include items whose is_trashed attribute is true.
+#' @param include 
+#' @return Group object.
+#' @name groups.shared
 NULL
 
-#' collections.get
+#' groups.trash
 #' 
-#' collections.get is a method defined in Arvados class.
+#' groups.trash is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.get(uuid)
-#' @param uuid The UUID of the Collection in question.
-#' @return Collection object.
-#' @name collections.get
+#' @usage arv$groups.trash(uuid)
+#' @param uuid 
+#' @return Group object.
+#' @name groups.trash
 NULL
 
-#' collections.create
+#' groups.untrash
 #' 
-#' collections.create is a method defined in Arvados class.
+#' groups.untrash is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.create(collection,
-#' 	ensure_unique_name = "false")
-#' @param collection Collection object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Collection object.
-#' @name collections.create
+#' @usage arv$groups.untrash(uuid)
+#' @param uuid 
+#' @return Group object.
+#' @name groups.untrash
 NULL
 
-#' collections.update
+#' groups.list
 #' 
-#' collections.update is a method defined in Arvados class.
+#' groups.list is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.update(collection,
-#' 	uuid)
-#' @param collection Collection object.
-#' @param uuid The UUID of the Collection in question.
-#' @return Collection object.
-#' @name collections.update
+#' @usage arv$groups.list(filters = NULL,
+#' 	where = NULL, order = NULL, select = NULL,
+#' 	distinct = NULL, limit = "100", offset = "0",
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL,
+#' 	include_trash = NULL)
+#' @param filters 
+#' @param where 
+#' @param order 
+#' @param select 
+#' @param distinct 
+#' @param limit 
+#' @param offset 
+#' @param count 
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @param include_trash Include items whose is_trashed attribute is true.
+#' @return GroupList object.
+#' @name groups.list
 NULL
 
-#' collections.delete
+#' keep_services.get
 #' 
-#' collections.delete is a method defined in Arvados class.
+#' keep_services.get is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.delete(uuid)
-#' @param uuid The UUID of the Collection in question.
-#' @return Collection object.
-#' @name collections.delete
+#' @usage arv$keep_services.get(uuid)
+#' @param uuid The UUID of the KeepService in question.
+#' @return KeepService object.
+#' @name keep_services.get
 NULL
 
-#' collections.provenance
+#' keep_services.create
 #' 
-#' collections.provenance is a method defined in Arvados class.
+#' keep_services.create is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.provenance(uuid)
-#' @param uuid 
-#' @return Collection object.
-#' @name collections.provenance
+#' @usage arv$keep_services.create(keepservice,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param keepService KeepService object.
+#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return KeepService object.
+#' @name keep_services.create
 NULL
 
-#' collections.used_by
+#' keep_services.update
 #' 
-#' collections.used_by is a method defined in Arvados class.
+#' keep_services.update is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.used_by(uuid)
-#' @param uuid 
-#' @return Collection object.
-#' @name collections.used_by
+#' @usage arv$keep_services.update(keepservice,
+#' 	uuid)
+#' @param keepService KeepService object.
+#' @param uuid The UUID of the KeepService in question.
+#' @return KeepService object.
+#' @name keep_services.update
 NULL
 
-#' collections.trash
+#' keep_services.delete
 #' 
-#' collections.trash is a method defined in Arvados class.
+#' keep_services.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.trash(uuid)
-#' @param uuid 
-#' @return Collection object.
-#' @name collections.trash
+#' @usage arv$keep_services.delete(uuid)
+#' @param uuid The UUID of the KeepService in question.
+#' @return KeepService object.
+#' @name keep_services.delete
 NULL
 
-#' collections.untrash
+#' keep_services.accessible
 #' 
-#' collections.untrash is a method defined in Arvados class.
+#' keep_services.accessible is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.untrash(uuid)
-#' @param uuid 
-#' @return Collection object.
-#' @name collections.untrash
+#' @usage arv$keep_services.accessible(NULL)
+#' @return KeepService object.
+#' @name keep_services.accessible
 NULL
 
-#' collections.list
+#' keep_services.list
 #' 
-#' collections.list is a method defined in Arvados class.
+#' keep_services.list is a method defined in Arvados class.
 #' 
-#' @usage arv$collections.list(filters = NULL,
+#' @usage arv$keep_services.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact", include_trash = NULL)
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -627,61 +732,64 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @param include_trash Include collections whose is_trashed attribute is true.
-#' @return CollectionList object.
-#' @name collections.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return KeepServiceList object.
+#' @name keep_services.list
 NULL
 
-#' humans.get
+#' links.get
 #' 
-#' humans.get is a method defined in Arvados class.
+#' links.get is a method defined in Arvados class.
 #' 
-#' @usage arv$humans.get(uuid)
-#' @param uuid The UUID of the Human in question.
-#' @return Human object.
-#' @name humans.get
+#' @usage arv$links.get(uuid)
+#' @param uuid The UUID of the Link in question.
+#' @return Link object.
+#' @name links.get
 NULL
 
-#' humans.create
+#' links.create
 #' 
-#' humans.create is a method defined in Arvados class.
+#' links.create is a method defined in Arvados class.
 #' 
-#' @usage arv$humans.create(human, ensure_unique_name = "false")
-#' @param human Human object.
+#' @usage arv$links.create(link, ensure_unique_name = "false",
+#' 	cluster_id = NULL)
+#' @param link Link object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Human object.
-#' @name humans.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return Link object.
+#' @name links.create
 NULL
 
-#' humans.update
+#' links.update
 #' 
-#' humans.update is a method defined in Arvados class.
+#' links.update is a method defined in Arvados class.
 #' 
-#' @usage arv$humans.update(human, uuid)
-#' @param human Human object.
-#' @param uuid The UUID of the Human in question.
-#' @return Human object.
-#' @name humans.update
+#' @usage arv$links.update(link, uuid)
+#' @param link Link object.
+#' @param uuid The UUID of the Link in question.
+#' @return Link object.
+#' @name links.update
 NULL
 
-#' humans.delete
+#' links.delete
 #' 
-#' humans.delete is a method defined in Arvados class.
+#' links.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$humans.delete(uuid)
-#' @param uuid The UUID of the Human in question.
-#' @return Human object.
-#' @name humans.delete
+#' @usage arv$links.delete(uuid)
+#' @param uuid The UUID of the Link in question.
+#' @return Link object.
+#' @name links.delete
 NULL
 
-#' humans.list
+#' links.list
 #' 
-#' humans.list is a method defined in Arvados class.
+#' links.list is a method defined in Arvados class.
 #' 
-#' @usage arv$humans.list(filters = NULL,
+#' @usage arv$links.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -690,60 +798,74 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return HumanList object.
-#' @name humans.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return LinkList object.
+#' @name links.list
+NULL
+
+#' links.get_permissions
+#' 
+#' links.get_permissions is a method defined in Arvados class.
+#' 
+#' @usage arv$links.get_permissions(uuid)
+#' @param uuid 
+#' @return Link object.
+#' @name links.get_permissions
 NULL
 
-#' job_tasks.get
+#' logs.get
 #' 
-#' job_tasks.get is a method defined in Arvados class.
+#' logs.get is a method defined in Arvados class.
 #' 
-#' @usage arv$job_tasks.get(uuid)
-#' @param uuid The UUID of the JobTask in question.
-#' @return JobTask object.
-#' @name job_tasks.get
+#' @usage arv$logs.get(uuid)
+#' @param uuid The UUID of the Log in question.
+#' @return Log object.
+#' @name logs.get
 NULL
 
-#' job_tasks.create
+#' logs.create
 #' 
-#' job_tasks.create is a method defined in Arvados class.
+#' logs.create is a method defined in Arvados class.
 #' 
-#' @usage arv$job_tasks.create(jobtask, ensure_unique_name = "false")
-#' @param jobTask JobTask object.
+#' @usage arv$logs.create(log, ensure_unique_name = "false",
+#' 	cluster_id = NULL)
+#' @param log Log object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return JobTask object.
-#' @name job_tasks.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return Log object.
+#' @name logs.create
 NULL
 
-#' job_tasks.update
+#' logs.update
 #' 
-#' job_tasks.update is a method defined in Arvados class.
+#' logs.update is a method defined in Arvados class.
 #' 
-#' @usage arv$job_tasks.update(jobtask, uuid)
-#' @param jobTask JobTask object.
-#' @param uuid The UUID of the JobTask in question.
-#' @return JobTask object.
-#' @name job_tasks.update
+#' @usage arv$logs.update(log, uuid)
+#' @param log Log object.
+#' @param uuid The UUID of the Log in question.
+#' @return Log object.
+#' @name logs.update
 NULL
 
-#' job_tasks.delete
+#' logs.delete
 #' 
-#' job_tasks.delete is a method defined in Arvados class.
+#' logs.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$job_tasks.delete(uuid)
-#' @param uuid The UUID of the JobTask in question.
-#' @return JobTask object.
-#' @name job_tasks.delete
+#' @usage arv$logs.delete(uuid)
+#' @param uuid The UUID of the Log in question.
+#' @return Log object.
+#' @name logs.delete
 NULL
 
-#' job_tasks.list
+#' logs.list
 #' 
-#' job_tasks.list is a method defined in Arvados class.
+#' logs.list is a method defined in Arvados class.
 #' 
-#' @usage arv$job_tasks.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' @usage arv$logs.list(filters = NULL, where = NULL,
+#' 	order = NULL, select = NULL, distinct = NULL,
+#' 	limit = "100", offset = "0", count = "exact",
+#' 	cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -752,196 +874,145 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return JobTaskList object.
-#' @name job_tasks.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return LogList object.
+#' @name logs.list
 NULL
 
-#' jobs.get
+#' users.get
 #' 
-#' jobs.get is a method defined in Arvados class.
+#' users.get is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.get(uuid)
-#' @param uuid The UUID of the Job in question.
-#' @return Job object.
-#' @name jobs.get
+#' @usage arv$users.get(uuid)
+#' @param uuid The UUID of the User in question.
+#' @return User object.
+#' @name users.get
 NULL
 
-#' jobs.create
+#' users.create
 #' 
-#' jobs.create is a method defined in Arvados class.
+#' users.create is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.create(job, ensure_unique_name = "false",
-#' 	find_or_create = "false", filters = NULL,
-#' 	minimum_script_version = NULL, exclude_script_versions = NULL)
-#' @param job Job object.
+#' @usage arv$users.create(user, ensure_unique_name = "false",
+#' 	cluster_id = NULL)
+#' @param user User object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @param find_or_create 
-#' @param filters 
-#' @param minimum_script_version 
-#' @param exclude_script_versions 
-#' @return Job object.
-#' @name jobs.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return User object.
+#' @name users.create
 NULL
 
-#' jobs.update
+#' users.update
 #' 
-#' jobs.update is a method defined in Arvados class.
+#' users.update is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.update(job, uuid)
-#' @param job Job object.
-#' @param uuid The UUID of the Job in question.
-#' @return Job object.
-#' @name jobs.update
+#' @usage arv$users.update(user, uuid, bypass_federation = NULL)
+#' @param user User object.
+#' @param uuid The UUID of the User in question.
+#' @param bypass_federation 
+#' @return User object.
+#' @name users.update
 NULL
 
-#' jobs.delete
+#' users.delete
 #' 
-#' jobs.delete is a method defined in Arvados class.
+#' users.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.delete(uuid)
-#' @param uuid The UUID of the Job in question.
-#' @return Job object.
-#' @name jobs.delete
+#' @usage arv$users.delete(uuid)
+#' @param uuid The UUID of the User in question.
+#' @return User object.
+#' @name users.delete
 NULL
 
-#' jobs.queue
+#' users.current
 #' 
-#' jobs.queue is a method defined in Arvados class.
+#' users.current is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.queue(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return Job object.
-#' @name jobs.queue
+#' @usage arv$users.current(NULL)
+#' @return User object.
+#' @name users.current
 NULL
 
-#' jobs.queue_size
+#' users.system
 #' 
-#' jobs.queue_size is a method defined in Arvados class.
+#' users.system is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.queue_size(NULL)
-#' @return Job object.
-#' @name jobs.queue_size
+#' @usage arv$users.system(NULL)
+#' @return User object.
+#' @name users.system
 NULL
 
-#' jobs.cancel
+#' users.activate
 #' 
-#' jobs.cancel is a method defined in Arvados class.
+#' users.activate is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.cancel(uuid)
+#' @usage arv$users.activate(uuid)
 #' @param uuid 
-#' @return Job object.
-#' @name jobs.cancel
+#' @return User object.
+#' @name users.activate
 NULL
 
-#' jobs.lock
+#' users.setup
 #' 
-#' jobs.lock is a method defined in Arvados class.
+#' users.setup is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.lock(uuid)
+#' @usage arv$users.setup(uuid = NULL, user = NULL,
+#' 	repo_name = NULL, vm_uuid = NULL, send_notification_email = "false")
 #' @param uuid 
-#' @return Job object.
-#' @name jobs.lock
+#' @param user 
+#' @param repo_name 
+#' @param vm_uuid 
+#' @param send_notification_email 
+#' @return User object.
+#' @name users.setup
 NULL
 
-#' jobs.list
+#' users.unsetup
 #' 
-#' jobs.list is a method defined in Arvados class.
+#' users.unsetup is a method defined in Arvados class.
 #' 
-#' @usage arv$jobs.list(filters = NULL, where = NULL,
-#' 	order = NULL, select = NULL, distinct = NULL,
-#' 	limit = "100", offset = "0", count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return JobList object.
-#' @name jobs.list
+#' @usage arv$users.unsetup(uuid)
+#' @param uuid 
+#' @return User object.
+#' @name users.unsetup
 NULL
 
-#' keep_disks.get
+#' users.update_uuid
 #' 
-#' keep_disks.get is a method defined in Arvados class.
+#' users.update_uuid is a method defined in Arvados class.
 #' 
-#' @usage arv$keep_disks.get(uuid)
-#' @param uuid The UUID of the KeepDisk in question.
-#' @return KeepDisk object.
-#' @name keep_disks.get
+#' @usage arv$users.update_uuid(uuid, new_uuid)
+#' @param uuid 
+#' @param new_uuid 
+#' @return User object.
+#' @name users.update_uuid
 NULL
 
-#' keep_disks.create
+#' users.merge
 #' 
-#' keep_disks.create is a method defined in Arvados class.
+#' users.merge is a method defined in Arvados class.
 #' 
-#' @usage arv$keep_disks.create(keepdisk,
-#' 	ensure_unique_name = "false")
-#' @param keepDisk KeepDisk object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return KeepDisk object.
-#' @name keep_disks.create
-NULL
-
-#' keep_disks.update
-#' 
-#' keep_disks.update is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_disks.update(keepdisk,
-#' 	uuid)
-#' @param keepDisk KeepDisk object.
-#' @param uuid The UUID of the KeepDisk in question.
-#' @return KeepDisk object.
-#' @name keep_disks.update
-NULL
-
-#' keep_disks.delete
-#' 
-#' keep_disks.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_disks.delete(uuid)
-#' @param uuid The UUID of the KeepDisk in question.
-#' @return KeepDisk object.
-#' @name keep_disks.delete
-NULL
-
-#' keep_disks.ping
-#' 
-#' keep_disks.ping is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_disks.ping(uuid = NULL,
-#' 	ping_secret, node_uuid = NULL, filesystem_uuid = NULL,
-#' 	service_host = NULL, service_port, service_ssl_flag)
-#' @param uuid 
-#' @param ping_secret 
-#' @param node_uuid 
-#' @param filesystem_uuid 
-#' @param service_host 
-#' @param service_port 
-#' @param service_ssl_flag 
-#' @return KeepDisk object.
-#' @name keep_disks.ping
+#' @usage arv$users.merge(new_owner_uuid,
+#' 	new_user_token = NULL, redirect_to_new_user = NULL,
+#' 	old_user_uuid = NULL, new_user_uuid = NULL)
+#' @param new_owner_uuid 
+#' @param new_user_token 
+#' @param redirect_to_new_user 
+#' @param old_user_uuid 
+#' @param new_user_uuid 
+#' @return User object.
+#' @name users.merge
 NULL
 
-#' keep_disks.list
+#' users.list
 #' 
-#' keep_disks.list is a method defined in Arvados class.
+#' users.list is a method defined in Arvados class.
 #' 
-#' @usage arv$keep_disks.list(filters = NULL,
+#' @usage arv$users.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -950,74 +1021,74 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return KeepDiskList object.
-#' @name keep_disks.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return UserList object.
+#' @name users.list
 NULL
 
-#' nodes.get
+#' repositories.get
 #' 
-#' nodes.get is a method defined in Arvados class.
+#' repositories.get is a method defined in Arvados class.
 #' 
-#' @usage arv$nodes.get(uuid)
-#' @param uuid The UUID of the Node in question.
-#' @return Node object.
-#' @name nodes.get
+#' @usage arv$repositories.get(uuid)
+#' @param uuid The UUID of the Repository in question.
+#' @return Repository object.
+#' @name repositories.get
 NULL
 
-#' nodes.create
+#' repositories.create
 #' 
-#' nodes.create is a method defined in Arvados class.
+#' repositories.create is a method defined in Arvados class.
 #' 
-#' @usage arv$nodes.create(node, ensure_unique_name = "false",
-#' 	assign_slot = NULL)
-#' @param node Node object.
+#' @usage arv$repositories.create(repository,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param repository Repository object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @param assign_slot assign slot and hostname
-#' @return Node object.
-#' @name nodes.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return Repository object.
+#' @name repositories.create
 NULL
 
-#' nodes.update
+#' repositories.update
 #' 
-#' nodes.update is a method defined in Arvados class.
+#' repositories.update is a method defined in Arvados class.
 #' 
-#' @usage arv$nodes.update(node, uuid, assign_slot = NULL)
-#' @param node Node object.
-#' @param uuid The UUID of the Node in question.
-#' @param assign_slot assign slot and hostname
-#' @return Node object.
-#' @name nodes.update
+#' @usage arv$repositories.update(repository,
+#' 	uuid)
+#' @param repository Repository object.
+#' @param uuid The UUID of the Repository in question.
+#' @return Repository object.
+#' @name repositories.update
 NULL
 
-#' nodes.delete
+#' repositories.delete
 #' 
-#' nodes.delete is a method defined in Arvados class.
+#' repositories.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$nodes.delete(uuid)
-#' @param uuid The UUID of the Node in question.
-#' @return Node object.
-#' @name nodes.delete
+#' @usage arv$repositories.delete(uuid)
+#' @param uuid The UUID of the Repository in question.
+#' @return Repository object.
+#' @name repositories.delete
 NULL
 
-#' nodes.ping
+#' repositories.get_all_permissions
 #' 
-#' nodes.ping is a method defined in Arvados class.
+#' repositories.get_all_permissions is a method defined in Arvados class.
 #' 
-#' @usage arv$nodes.ping(uuid, ping_secret)
-#' @param uuid 
-#' @param ping_secret 
-#' @return Node object.
-#' @name nodes.ping
+#' @usage arv$repositories.get_all_permissions(NULL)
+#' @return Repository object.
+#' @name repositories.get_all_permissions
 NULL
 
-#' nodes.list
+#' repositories.list
 #' 
-#' nodes.list is a method defined in Arvados class.
+#' repositories.list is a method defined in Arvados class.
 #' 
-#' @usage arv$nodes.list(filters = NULL,
+#' @usage arv$repositories.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -1026,143 +1097,84 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return NodeList object.
-#' @name nodes.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return RepositoryList object.
+#' @name repositories.list
 NULL
 
-#' links.get
+#' virtual_machines.get
 #' 
-#' links.get is a method defined in Arvados class.
+#' virtual_machines.get is a method defined in Arvados class.
 #' 
-#' @usage arv$links.get(uuid)
-#' @param uuid The UUID of the Link in question.
-#' @return Link object.
-#' @name links.get
+#' @usage arv$virtual_machines.get(uuid)
+#' @param uuid The UUID of the VirtualMachine in question.
+#' @return VirtualMachine object.
+#' @name virtual_machines.get
 NULL
 
-#' links.create
+#' virtual_machines.create
 #' 
-#' links.create is a method defined in Arvados class.
+#' virtual_machines.create is a method defined in Arvados class.
 #' 
-#' @usage arv$links.create(link, ensure_unique_name = "false")
-#' @param link Link object.
+#' @usage arv$virtual_machines.create(virtualmachine,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param virtualMachine VirtualMachine object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Link object.
-#' @name links.create
-NULL
-
-#' links.update
-#' 
-#' links.update is a method defined in Arvados class.
-#' 
-#' @usage arv$links.update(link, uuid)
-#' @param link Link object.
-#' @param uuid The UUID of the Link in question.
-#' @return Link object.
-#' @name links.update
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return VirtualMachine object.
+#' @name virtual_machines.create
 NULL
 
-#' links.delete
+#' virtual_machines.update
 #' 
-#' links.delete is a method defined in Arvados class.
+#' virtual_machines.update is a method defined in Arvados class.
 #' 
-#' @usage arv$links.delete(uuid)
-#' @param uuid The UUID of the Link in question.
-#' @return Link object.
-#' @name links.delete
+#' @usage arv$virtual_machines.update(virtualmachine,
+#' 	uuid)
+#' @param virtualMachine VirtualMachine object.
+#' @param uuid The UUID of the VirtualMachine in question.
+#' @return VirtualMachine object.
+#' @name virtual_machines.update
 NULL
 
-#' links.list
+#' virtual_machines.delete
 #' 
-#' links.list is a method defined in Arvados class.
+#' virtual_machines.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$links.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return LinkList object.
-#' @name links.list
+#' @usage arv$virtual_machines.delete(uuid)
+#' @param uuid The UUID of the VirtualMachine in question.
+#' @return VirtualMachine object.
+#' @name virtual_machines.delete
 NULL
 
-#' links.get_permissions
+#' virtual_machines.logins
 #' 
-#' links.get_permissions is a method defined in Arvados class.
+#' virtual_machines.logins is a method defined in Arvados class.
 #' 
-#' @usage arv$links.get_permissions(uuid)
+#' @usage arv$virtual_machines.logins(uuid)
 #' @param uuid 
-#' @return Link object.
-#' @name links.get_permissions
-NULL
-
-#' keep_services.get
-#' 
-#' keep_services.get is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_services.get(uuid)
-#' @param uuid The UUID of the KeepService in question.
-#' @return KeepService object.
-#' @name keep_services.get
-NULL
-
-#' keep_services.create
-#' 
-#' keep_services.create is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_services.create(keepservice,
-#' 	ensure_unique_name = "false")
-#' @param keepService KeepService object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return KeepService object.
-#' @name keep_services.create
-NULL
-
-#' keep_services.update
-#' 
-#' keep_services.update is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_services.update(keepservice,
-#' 	uuid)
-#' @param keepService KeepService object.
-#' @param uuid The UUID of the KeepService in question.
-#' @return KeepService object.
-#' @name keep_services.update
-NULL
-
-#' keep_services.delete
-#' 
-#' keep_services.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$keep_services.delete(uuid)
-#' @param uuid The UUID of the KeepService in question.
-#' @return KeepService object.
-#' @name keep_services.delete
+#' @return VirtualMachine object.
+#' @name virtual_machines.logins
 NULL
 
-#' keep_services.accessible
+#' virtual_machines.get_all_logins
 #' 
-#' keep_services.accessible is a method defined in Arvados class.
+#' virtual_machines.get_all_logins is a method defined in Arvados class.
 #' 
-#' @usage arv$keep_services.accessible(NULL)
-#' @return KeepService object.
-#' @name keep_services.accessible
+#' @usage arv$virtual_machines.get_all_logins(NULL)
+#' @return VirtualMachine object.
+#' @name virtual_machines.get_all_logins
 NULL
 
-#' keep_services.list
+#' virtual_machines.list
 #' 
-#' keep_services.list is a method defined in Arvados class.
+#' virtual_machines.list is a method defined in Arvados class.
 #' 
-#' @usage arv$keep_services.list(filters = NULL,
+#' @usage arv$virtual_machines.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -1171,62 +1183,65 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return KeepServiceList object.
-#' @name keep_services.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return VirtualMachineList object.
+#' @name virtual_machines.list
 NULL
 
-#' pipeline_templates.get
+#' workflows.get
 #' 
-#' pipeline_templates.get is a method defined in Arvados class.
+#' workflows.get is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_templates.get(uuid)
-#' @param uuid The UUID of the PipelineTemplate in question.
-#' @return PipelineTemplate object.
-#' @name pipeline_templates.get
+#' @usage arv$workflows.get(uuid)
+#' @param uuid The UUID of the Workflow in question.
+#' @return Workflow object.
+#' @name workflows.get
 NULL
 
-#' pipeline_templates.create
+#' workflows.create
 #' 
-#' pipeline_templates.create is a method defined in Arvados class.
+#' workflows.create is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_templates.create(pipelinetemplate,
-#' 	ensure_unique_name = "false")
-#' @param pipelineTemplate PipelineTemplate object.
+#' @usage arv$workflows.create(workflow,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param workflow Workflow object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return PipelineTemplate object.
-#' @name pipeline_templates.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return Workflow object.
+#' @name workflows.create
 NULL
 
-#' pipeline_templates.update
+#' workflows.update
 #' 
-#' pipeline_templates.update is a method defined in Arvados class.
+#' workflows.update is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_templates.update(pipelinetemplate,
+#' @usage arv$workflows.update(workflow,
 #' 	uuid)
-#' @param pipelineTemplate PipelineTemplate object.
-#' @param uuid The UUID of the PipelineTemplate in question.
-#' @return PipelineTemplate object.
-#' @name pipeline_templates.update
+#' @param workflow Workflow object.
+#' @param uuid The UUID of the Workflow in question.
+#' @return Workflow object.
+#' @name workflows.update
 NULL
 
-#' pipeline_templates.delete
+#' workflows.delete
 #' 
-#' pipeline_templates.delete is a method defined in Arvados class.
+#' workflows.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_templates.delete(uuid)
-#' @param uuid The UUID of the PipelineTemplate in question.
-#' @return PipelineTemplate object.
-#' @name pipeline_templates.delete
+#' @usage arv$workflows.delete(uuid)
+#' @param uuid The UUID of the Workflow in question.
+#' @return Workflow object.
+#' @name workflows.delete
 NULL
 
-#' pipeline_templates.list
+#' workflows.list
 #' 
-#' pipeline_templates.list is a method defined in Arvados class.
+#' workflows.list is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_templates.list(filters = NULL,
+#' @usage arv$workflows.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -1235,209 +1250,83 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return PipelineTemplateList object.
-#' @name pipeline_templates.list
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return WorkflowList object.
+#' @name workflows.list
 NULL
 
-#' pipeline_instances.get
+#' user_agreements.get
 #' 
-#' pipeline_instances.get is a method defined in Arvados class.
+#' user_agreements.get is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_instances.get(uuid)
-#' @param uuid The UUID of the PipelineInstance in question.
-#' @return PipelineInstance object.
-#' @name pipeline_instances.get
+#' @usage arv$user_agreements.get(uuid)
+#' @param uuid The UUID of the UserAgreement in question.
+#' @return UserAgreement object.
+#' @name user_agreements.get
 NULL
 
-#' pipeline_instances.create
+#' user_agreements.create
 #' 
-#' pipeline_instances.create is a method defined in Arvados class.
+#' user_agreements.create is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_instances.create(pipelineinstance,
-#' 	ensure_unique_name = "false")
-#' @param pipelineInstance PipelineInstance object.
+#' @usage arv$user_agreements.create(useragreement,
+#' 	ensure_unique_name = "false", cluster_id = NULL)
+#' @param userAgreement UserAgreement object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return PipelineInstance object.
-#' @name pipeline_instances.create
+#' @param cluster_id Create object on a remote federated cluster instead of the current one.
+#' @return UserAgreement object.
+#' @name user_agreements.create
 NULL
 
-#' pipeline_instances.update
+#' user_agreements.update
 #' 
-#' pipeline_instances.update is a method defined in Arvados class.
+#' user_agreements.update is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_instances.update(pipelineinstance,
+#' @usage arv$user_agreements.update(useragreement,
 #' 	uuid)
-#' @param pipelineInstance PipelineInstance object.
-#' @param uuid The UUID of the PipelineInstance in question.
-#' @return PipelineInstance object.
-#' @name pipeline_instances.update
+#' @param userAgreement UserAgreement object.
+#' @param uuid The UUID of the UserAgreement in question.
+#' @return UserAgreement object.
+#' @name user_agreements.update
 NULL
 
-#' pipeline_instances.delete
+#' user_agreements.delete
 #' 
-#' pipeline_instances.delete is a method defined in Arvados class.
+#' user_agreements.delete is a method defined in Arvados class.
 #' 
-#' @usage arv$pipeline_instances.delete(uuid)
-#' @param uuid The UUID of the PipelineInstance in question.
-#' @return PipelineInstance object.
-#' @name pipeline_instances.delete
-NULL
-
-#' pipeline_instances.cancel
-#' 
-#' pipeline_instances.cancel is a method defined in Arvados class.
-#' 
-#' @usage arv$pipeline_instances.cancel(uuid)
-#' @param uuid 
-#' @return PipelineInstance object.
-#' @name pipeline_instances.cancel
-NULL
-
-#' pipeline_instances.list
-#' 
-#' pipeline_instances.list is a method defined in Arvados class.
-#' 
-#' @usage arv$pipeline_instances.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return PipelineInstanceList object.
-#' @name pipeline_instances.list
-NULL
-
-#' repositories.get
-#' 
-#' repositories.get is a method defined in Arvados class.
-#' 
-#' @usage arv$repositories.get(uuid)
-#' @param uuid The UUID of the Repository in question.
-#' @return Repository object.
-#' @name repositories.get
-NULL
-
-#' repositories.create
-#' 
-#' repositories.create is a method defined in Arvados class.
-#' 
-#' @usage arv$repositories.create(repository,
-#' 	ensure_unique_name = "false")
-#' @param repository Repository object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Repository object.
-#' @name repositories.create
-NULL
-
-#' repositories.update
-#' 
-#' repositories.update is a method defined in Arvados class.
-#' 
-#' @usage arv$repositories.update(repository,
-#' 	uuid)
-#' @param repository Repository object.
-#' @param uuid The UUID of the Repository in question.
-#' @return Repository object.
-#' @name repositories.update
-NULL
-
-#' repositories.delete
-#' 
-#' repositories.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$repositories.delete(uuid)
-#' @param uuid The UUID of the Repository in question.
-#' @return Repository object.
-#' @name repositories.delete
-NULL
-
-#' repositories.get_all_permissions
-#' 
-#' repositories.get_all_permissions is a method defined in Arvados class.
-#' 
-#' @usage arv$repositories.get_all_permissions(NULL)
-#' @return Repository object.
-#' @name repositories.get_all_permissions
-NULL
-
-#' repositories.list
-#' 
-#' repositories.list is a method defined in Arvados class.
-#' 
-#' @usage arv$repositories.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return RepositoryList object.
-#' @name repositories.list
-NULL
-
-#' specimens.get
-#' 
-#' specimens.get is a method defined in Arvados class.
-#' 
-#' @usage arv$specimens.get(uuid)
-#' @param uuid The UUID of the Specimen in question.
-#' @return Specimen object.
-#' @name specimens.get
-NULL
-
-#' specimens.create
-#' 
-#' specimens.create is a method defined in Arvados class.
-#' 
-#' @usage arv$specimens.create(specimen,
-#' 	ensure_unique_name = "false")
-#' @param specimen Specimen object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Specimen object.
-#' @name specimens.create
+#' @usage arv$user_agreements.delete(uuid)
+#' @param uuid The UUID of the UserAgreement in question.
+#' @return UserAgreement object.
+#' @name user_agreements.delete
 NULL
 
-#' specimens.update
+#' user_agreements.signatures
 #' 
-#' specimens.update is a method defined in Arvados class.
+#' user_agreements.signatures is a method defined in Arvados class.
 #' 
-#' @usage arv$specimens.update(specimen,
-#' 	uuid)
-#' @param specimen Specimen object.
-#' @param uuid The UUID of the Specimen in question.
-#' @return Specimen object.
-#' @name specimens.update
+#' @usage arv$user_agreements.signatures(NULL)
+#' @return UserAgreement object.
+#' @name user_agreements.signatures
 NULL
 
-#' specimens.delete
+#' user_agreements.sign
 #' 
-#' specimens.delete is a method defined in Arvados class.
+#' user_agreements.sign is a method defined in Arvados class.
 #' 
-#' @usage arv$specimens.delete(uuid)
-#' @param uuid The UUID of the Specimen in question.
-#' @return Specimen object.
-#' @name specimens.delete
+#' @usage arv$user_agreements.sign(NULL)
+#' @return UserAgreement object.
+#' @name user_agreements.sign
 NULL
 
-#' specimens.list
+#' user_agreements.list
 #' 
-#' specimens.list is a method defined in Arvados class.
+#' user_agreements.list is a method defined in Arvados class.
 #' 
-#' @usage arv$specimens.list(filters = NULL,
+#' @usage arv$user_agreements.list(filters = NULL,
 #' 	where = NULL, order = NULL, select = NULL,
 #' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' 	count = "exact", cluster_id = NULL, bypass_federation = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
@@ -1446,1774 +1335,312 @@ NULL
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return SpecimenList object.
-#' @name specimens.list
-NULL
-
-#' logs.get
-#' 
-#' logs.get is a method defined in Arvados class.
-#' 
-#' @usage arv$logs.get(uuid)
-#' @param uuid The UUID of the Log in question.
-#' @return Log object.
-#' @name logs.get
-NULL
-
-#' logs.create
-#' 
-#' logs.create is a method defined in Arvados class.
-#' 
-#' @usage arv$logs.create(log, ensure_unique_name = "false")
-#' @param log Log object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Log object.
-#' @name logs.create
-NULL
-
-#' logs.update
-#' 
-#' logs.update is a method defined in Arvados class.
-#' 
-#' @usage arv$logs.update(log, uuid)
-#' @param log Log object.
-#' @param uuid The UUID of the Log in question.
-#' @return Log object.
-#' @name logs.update
+#' @param cluster_id List objects on a remote federated cluster instead of the current one.
+#' @param bypass_federation bypass federation behavior, list items from local instance database only
+#' @return UserAgreementList object.
+#' @name user_agreements.list
 NULL
 
-#' logs.delete
+#' user_agreements.new
 #' 
-#' logs.delete is a method defined in Arvados class.
+#' user_agreements.new is a method defined in Arvados class.
 #' 
-#' @usage arv$logs.delete(uuid)
-#' @param uuid The UUID of the Log in question.
-#' @return Log object.
-#' @name logs.delete
+#' @usage arv$user_agreements.new(NULL)
+#' @return UserAgreement object.
+#' @name user_agreements.new
 NULL
 
-#' logs.list
+#' configs.get
 #' 
-#' logs.list is a method defined in Arvados class.
+#' configs.get is a method defined in Arvados class.
 #' 
-#' @usage arv$logs.list(filters = NULL, where = NULL,
-#' 	order = NULL, select = NULL, distinct = NULL,
-#' 	limit = "100", offset = "0", count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return LogList object.
-#' @name logs.list
+#' @usage arv$configs.get(NULL)
+#' @return  object.
+#' @name configs.get
 NULL
 
-#' traits.get
+#' project.get
 #' 
-#' traits.get is a method defined in Arvados class.
+#' projects.get is equivalent to groups.get method.
 #' 
-#' @usage arv$traits.get(uuid)
-#' @param uuid The UUID of the Trait in question.
-#' @return Trait object.
-#' @name traits.get
+#' @usage arv$projects.get(uuid)
+#' @param uuid The UUID of the Group in question.
+#' @return Group object.
+#' @name projects.get
 NULL
 
-#' traits.create
+#' project.create
 #' 
-#' traits.create is a method defined in Arvados class.
+#' projects.create wrapps groups.create method by setting group_class attribute to "project".
 #' 
-#' @usage arv$traits.create(trait, ensure_unique_name = "false")
-#' @param trait Trait object.
+#' @usage arv$projects.create(group, ensure_unique_name = "false")
+#' @param group Group object.
 #' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Trait object.
-#' @name traits.create
+#' @return Group object.
+#' @name projects.create
 NULL
 
-#' traits.update
+#' project.update
 #' 
-#' traits.update is a method defined in Arvados class.
+#' projects.update wrapps groups.update method by setting group_class attribute to "project".
 #' 
-#' @usage arv$traits.update(trait, uuid)
-#' @param trait Trait object.
-#' @param uuid The UUID of the Trait in question.
-#' @return Trait object.
-#' @name traits.update
+#' @usage arv$projects.update(group, uuid)
+#' @param group Group object.
+#' @param uuid The UUID of the Group in question.
+#' @return Group object.
+#' @name projects.update
 NULL
 
-#' traits.delete
+#' project.delete
 #' 
-#' traits.delete is a method defined in Arvados class.
+#' projects.delete is equivalent to groups.delete method.
 #' 
-#' @usage arv$traits.delete(uuid)
-#' @param uuid The UUID of the Trait in question.
-#' @return Trait object.
-#' @name traits.delete
+#' @usage arv$project.delete(uuid)
+#' @param uuid The UUID of the Group in question.
+#' @return Group object.
+#' @name projects.delete
 NULL
 
-#' traits.list
+#' project.list
 #' 
-#' traits.list is a method defined in Arvados class.
+#' projects.list wrapps groups.list method by setting group_class attribute to "project".
 #' 
-#' @usage arv$traits.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
+#' @usage arv$projects.list(filters = NULL,
+#' 	where = NULL, order = NULL, distinct = NULL,
+#' 	limit = "100", offset = "0", count = "exact",
+#' 	include_trash = NULL, uuid = NULL, recursive = NULL)
 #' @param filters 
 #' @param where 
 #' @param order 
-#' @param select 
 #' @param distinct 
 #' @param limit 
 #' @param offset 
 #' @param count 
-#' @return TraitList object.
-#' @name traits.list
-NULL
-
-#' virtual_machines.get
-#' 
-#' virtual_machines.get is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.get(uuid)
-#' @param uuid The UUID of the VirtualMachine in question.
-#' @return VirtualMachine object.
-#' @name virtual_machines.get
-NULL
-
-#' virtual_machines.create
-#' 
-#' virtual_machines.create is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.create(virtualmachine,
-#' 	ensure_unique_name = "false")
-#' @param virtualMachine VirtualMachine object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return VirtualMachine object.
-#' @name virtual_machines.create
-NULL
-
-#' virtual_machines.update
-#' 
-#' virtual_machines.update is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.update(virtualmachine,
-#' 	uuid)
-#' @param virtualMachine VirtualMachine object.
-#' @param uuid The UUID of the VirtualMachine in question.
-#' @return VirtualMachine object.
-#' @name virtual_machines.update
+#' @param include_trash Include items whose is_trashed attribute is true.
+#' @param uuid 
+#' @param recursive Include contents from child groups recursively.
+#' @return Group object.
+#' @name projects.list
 NULL
 
-#' virtual_machines.delete
-#' 
-#' virtual_machines.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.delete(uuid)
-#' @param uuid The UUID of the VirtualMachine in question.
-#' @return VirtualMachine object.
-#' @name virtual_machines.delete
-NULL
-
-#' virtual_machines.logins
-#' 
-#' virtual_machines.logins is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.logins(uuid)
-#' @param uuid 
-#' @return VirtualMachine object.
-#' @name virtual_machines.logins
-NULL
-
-#' virtual_machines.get_all_logins
-#' 
-#' virtual_machines.get_all_logins is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.get_all_logins(NULL)
-#' @return VirtualMachine object.
-#' @name virtual_machines.get_all_logins
-NULL
-
-#' virtual_machines.list
-#' 
-#' virtual_machines.list is a method defined in Arvados class.
-#' 
-#' @usage arv$virtual_machines.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return VirtualMachineList object.
-#' @name virtual_machines.list
-NULL
-
-#' workflows.get
-#' 
-#' workflows.get is a method defined in Arvados class.
-#' 
-#' @usage arv$workflows.get(uuid)
-#' @param uuid The UUID of the Workflow in question.
-#' @return Workflow object.
-#' @name workflows.get
-NULL
-
-#' workflows.create
-#' 
-#' workflows.create is a method defined in Arvados class.
-#' 
-#' @usage arv$workflows.create(workflow,
-#' 	ensure_unique_name = "false")
-#' @param workflow Workflow object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Workflow object.
-#' @name workflows.create
-NULL
-
-#' workflows.update
-#' 
-#' workflows.update is a method defined in Arvados class.
-#' 
-#' @usage arv$workflows.update(workflow,
-#' 	uuid)
-#' @param workflow Workflow object.
-#' @param uuid The UUID of the Workflow in question.
-#' @return Workflow object.
-#' @name workflows.update
-NULL
-
-#' workflows.delete
-#' 
-#' workflows.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$workflows.delete(uuid)
-#' @param uuid The UUID of the Workflow in question.
-#' @return Workflow object.
-#' @name workflows.delete
-NULL
-
-#' workflows.list
-#' 
-#' workflows.list is a method defined in Arvados class.
-#' 
-#' @usage arv$workflows.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return WorkflowList object.
-#' @name workflows.list
-NULL
-
-#' groups.get
-#' 
-#' groups.get is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.get(uuid)
-#' @param uuid The UUID of the Group in question.
-#' @return Group object.
-#' @name groups.get
-NULL
-
-#' groups.create
-#' 
-#' groups.create is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.create(group, ensure_unique_name = "false")
-#' @param group Group object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Group object.
-#' @name groups.create
-NULL
-
-#' groups.update
-#' 
-#' groups.update is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.update(group, uuid)
-#' @param group Group object.
-#' @param uuid The UUID of the Group in question.
-#' @return Group object.
-#' @name groups.update
-NULL
-
-#' groups.delete
-#' 
-#' groups.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.delete(uuid)
-#' @param uuid The UUID of the Group in question.
-#' @return Group object.
-#' @name groups.delete
-NULL
-
-#' groups.contents
-#' 
-#' groups.contents is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.contents(filters = NULL,
-#' 	where = NULL, order = NULL, distinct = NULL,
-#' 	limit = "100", offset = "0", count = "exact",
-#' 	include_trash = NULL, uuid = NULL, recursive = NULL)
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @param include_trash Include items whose is_trashed attribute is true.
-#' @param uuid 
-#' @param recursive Include contents from child groups recursively.
-#' @return Group object.
-#' @name groups.contents
-NULL
-
-#' groups.trash
-#' 
-#' groups.trash is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.trash(uuid)
-#' @param uuid 
-#' @return Group object.
-#' @name groups.trash
-NULL
-
-#' groups.untrash
-#' 
-#' groups.untrash is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.untrash(uuid)
-#' @param uuid 
-#' @return Group object.
-#' @name groups.untrash
-NULL
-
-#' groups.list
-#' 
-#' groups.list is a method defined in Arvados class.
-#' 
-#' @usage arv$groups.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact", include_trash = NULL)
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @param include_trash Include items whose is_trashed attribute is true.
-#' @return GroupList object.
-#' @name groups.list
-NULL
-
-#' user_agreements.get
-#' 
-#' user_agreements.get is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.get(uuid)
-#' @param uuid The UUID of the UserAgreement in question.
-#' @return UserAgreement object.
-#' @name user_agreements.get
-NULL
-
-#' user_agreements.create
-#' 
-#' user_agreements.create is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.create(useragreement,
-#' 	ensure_unique_name = "false")
-#' @param userAgreement UserAgreement object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return UserAgreement object.
-#' @name user_agreements.create
-NULL
-
-#' user_agreements.update
-#' 
-#' user_agreements.update is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.update(useragreement,
-#' 	uuid)
-#' @param userAgreement UserAgreement object.
-#' @param uuid The UUID of the UserAgreement in question.
-#' @return UserAgreement object.
-#' @name user_agreements.update
-NULL
-
-#' user_agreements.delete
-#' 
-#' user_agreements.delete is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.delete(uuid)
-#' @param uuid The UUID of the UserAgreement in question.
-#' @return UserAgreement object.
-#' @name user_agreements.delete
-NULL
-
-#' user_agreements.signatures
-#' 
-#' user_agreements.signatures is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.signatures(NULL)
-#' @return UserAgreement object.
-#' @name user_agreements.signatures
-NULL
-
-#' user_agreements.sign
-#' 
-#' user_agreements.sign is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.sign(NULL)
-#' @return UserAgreement object.
-#' @name user_agreements.sign
-NULL
-
-#' user_agreements.list
-#' 
-#' user_agreements.list is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.list(filters = NULL,
-#' 	where = NULL, order = NULL, select = NULL,
-#' 	distinct = NULL, limit = "100", offset = "0",
-#' 	count = "exact")
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param select 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @return UserAgreementList object.
-#' @name user_agreements.list
-NULL
-
-#' user_agreements.new
-#' 
-#' user_agreements.new is a method defined in Arvados class.
-#' 
-#' @usage arv$user_agreements.new(NULL)
-#' @return UserAgreement object.
-#' @name user_agreements.new
-NULL
-
-#' project.get
-#' 
-#' projects.get is equivalent to groups.get method.
-#' 
-#' @usage arv$projects.get(uuid)
-#' @param uuid The UUID of the Group in question.
-#' @return Group object.
-#' @name projects.get
-NULL
-
-#' project.create
-#' 
-#' projects.create wrapps groups.create method by setting group_class attribute to "project".
-#' 
-#' @usage arv$projects.create(group, ensure_unique_name = "false")
-#' @param group Group object.
-#' @param ensure_unique_name Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.
-#' @return Group object.
-#' @name projects.create
-NULL
-
-#' project.update
-#' 
-#' projects.update wrapps groups.update method by setting group_class attribute to "project".
-#' 
-#' @usage arv$projects.update(group, uuid)
-#' @param group Group object.
-#' @param uuid The UUID of the Group in question.
-#' @return Group object.
-#' @name projects.update
-NULL
-
-#' project.delete
-#' 
-#' projects.delete is equivalent to groups.delete method.
-#' 
-#' @usage arv$project.delete(uuid)
-#' @param uuid The UUID of the Group in question.
-#' @return Group object.
-#' @name projects.delete
-NULL
-
-#' project.list
-#' 
-#' projects.list wrapps groups.list method by setting group_class attribute to "project".
-#' 
-#' @usage arv$projects.list(filters = NULL,
-#' 	where = NULL, order = NULL, distinct = NULL,
-#' 	limit = "100", offset = "0", count = "exact",
-#' 	include_trash = NULL, uuid = NULL, recursive = NULL)
-#' @param filters 
-#' @param where 
-#' @param order 
-#' @param distinct 
-#' @param limit 
-#' @param offset 
-#' @param count 
-#' @param include_trash Include items whose is_trashed attribute is true.
-#' @param uuid 
-#' @param recursive Include contents from child groups recursively.
-#' @return Group object.
-#' @name projects.list
-NULL
-
-#' Arvados
-#'
-#' Arvados class gives users ability to access Arvados REST API.
-#'
-#' @section Usage:
-#' \preformatted{arv = Arvados$new(authToken = NULL, hostName = NULL, numRetries = 0)}
-#'
-#' @section Arguments:
-#' \describe{
-#' 	\item{authToken}{Authentification token. If not specified ARVADOS_API_TOKEN environment variable will be used.}
-#' 	\item{hostName}{Host name. If not specified ARVADOS_API_HOST environment variable will be used.}
-#' 	\item{numRetries}{Number which specifies how many times to retry failed service requests.}
-#' }
-#'
-#' @section Methods:
-#' \describe{
-#' 	\item{}{\code{\link{api_client_authorizations.create}}}
-#' 	\item{}{\code{\link{api_client_authorizations.create_system_auth}}}
-#' 	\item{}{\code{\link{api_client_authorizations.current}}}
-#' 	\item{}{\code{\link{api_client_authorizations.delete}}}
-#' 	\item{}{\code{\link{api_client_authorizations.get}}}
-#' 	\item{}{\code{\link{api_client_authorizations.list}}}
-#' 	\item{}{\code{\link{api_client_authorizations.update}}}
-#' 	\item{}{\code{\link{api_clients.create}}}
-#' 	\item{}{\code{\link{api_clients.delete}}}
-#' 	\item{}{\code{\link{api_clients.get}}}
-#' 	\item{}{\code{\link{api_clients.list}}}
-#' 	\item{}{\code{\link{api_clients.update}}}
-#' 	\item{}{\code{\link{authorized_keys.create}}}
-#' 	\item{}{\code{\link{authorized_keys.delete}}}
-#' 	\item{}{\code{\link{authorized_keys.get}}}
-#' 	\item{}{\code{\link{authorized_keys.list}}}
-#' 	\item{}{\code{\link{authorized_keys.update}}}
-#' 	\item{}{\code{\link{collections.create}}}
-#' 	\item{}{\code{\link{collections.delete}}}
-#' 	\item{}{\code{\link{collections.get}}}
-#' 	\item{}{\code{\link{collections.list}}}
-#' 	\item{}{\code{\link{collections.provenance}}}
-#' 	\item{}{\code{\link{collections.trash}}}
-#' 	\item{}{\code{\link{collections.untrash}}}
-#' 	\item{}{\code{\link{collections.update}}}
-#' 	\item{}{\code{\link{collections.used_by}}}
-#' 	\item{}{\code{\link{container_requests.create}}}
-#' 	\item{}{\code{\link{container_requests.delete}}}
-#' 	\item{}{\code{\link{container_requests.get}}}
-#' 	\item{}{\code{\link{container_requests.list}}}
-#' 	\item{}{\code{\link{container_requests.update}}}
-#' 	\item{}{\code{\link{containers.auth}}}
-#' 	\item{}{\code{\link{containers.create}}}
-#' 	\item{}{\code{\link{containers.current}}}
-#' 	\item{}{\code{\link{containers.delete}}}
-#' 	\item{}{\code{\link{containers.get}}}
-#' 	\item{}{\code{\link{containers.list}}}
-#' 	\item{}{\code{\link{containers.lock}}}
-#' 	\item{}{\code{\link{containers.secret_mounts}}}
-#' 	\item{}{\code{\link{containers.unlock}}}
-#' 	\item{}{\code{\link{containers.update}}}
-#' 	\item{}{\code{\link{groups.contents}}}
-#' 	\item{}{\code{\link{groups.create}}}
-#' 	\item{}{\code{\link{groups.delete}}}
-#' 	\item{}{\code{\link{groups.get}}}
-#' 	\item{}{\code{\link{groups.list}}}
-#' 	\item{}{\code{\link{groups.trash}}}
-#' 	\item{}{\code{\link{groups.untrash}}}
-#' 	\item{}{\code{\link{groups.update}}}
-#' 	\item{}{\code{\link{humans.create}}}
-#' 	\item{}{\code{\link{humans.delete}}}
-#' 	\item{}{\code{\link{humans.get}}}
-#' 	\item{}{\code{\link{humans.list}}}
-#' 	\item{}{\code{\link{humans.update}}}
-#' 	\item{}{\code{\link{jobs.cancel}}}
-#' 	\item{}{\code{\link{jobs.create}}}
-#' 	\item{}{\code{\link{jobs.delete}}}
-#' 	\item{}{\code{\link{jobs.get}}}
-#' 	\item{}{\code{\link{jobs.list}}}
-#' 	\item{}{\code{\link{jobs.lock}}}
-#' 	\item{}{\code{\link{jobs.queue}}}
-#' 	\item{}{\code{\link{jobs.queue_size}}}
-#' 	\item{}{\code{\link{jobs.update}}}
-#' 	\item{}{\code{\link{job_tasks.create}}}
-#' 	\item{}{\code{\link{job_tasks.delete}}}
-#' 	\item{}{\code{\link{job_tasks.get}}}
-#' 	\item{}{\code{\link{job_tasks.list}}}
-#' 	\item{}{\code{\link{job_tasks.update}}}
-#' 	\item{}{\code{\link{keep_disks.create}}}
-#' 	\item{}{\code{\link{keep_disks.delete}}}
-#' 	\item{}{\code{\link{keep_disks.get}}}
-#' 	\item{}{\code{\link{keep_disks.list}}}
-#' 	\item{}{\code{\link{keep_disks.ping}}}
-#' 	\item{}{\code{\link{keep_disks.update}}}
-#' 	\item{}{\code{\link{keep_services.accessible}}}
-#' 	\item{}{\code{\link{keep_services.create}}}
-#' 	\item{}{\code{\link{keep_services.delete}}}
-#' 	\item{}{\code{\link{keep_services.get}}}
-#' 	\item{}{\code{\link{keep_services.list}}}
-#' 	\item{}{\code{\link{keep_services.update}}}
-#' 	\item{}{\code{\link{links.create}}}
-#' 	\item{}{\code{\link{links.delete}}}
-#' 	\item{}{\code{\link{links.get}}}
-#' 	\item{}{\code{\link{links.get_permissions}}}
-#' 	\item{}{\code{\link{links.list}}}
-#' 	\item{}{\code{\link{links.update}}}
-#' 	\item{}{\code{\link{logs.create}}}
-#' 	\item{}{\code{\link{logs.delete}}}
-#' 	\item{}{\code{\link{logs.get}}}
-#' 	\item{}{\code{\link{logs.list}}}
-#' 	\item{}{\code{\link{logs.update}}}
-#' 	\item{}{\code{\link{nodes.create}}}
-#' 	\item{}{\code{\link{nodes.delete}}}
-#' 	\item{}{\code{\link{nodes.get}}}
-#' 	\item{}{\code{\link{nodes.list}}}
-#' 	\item{}{\code{\link{nodes.ping}}}
-#' 	\item{}{\code{\link{nodes.update}}}
-#' 	\item{}{\code{\link{pipeline_instances.cancel}}}
-#' 	\item{}{\code{\link{pipeline_instances.create}}}
-#' 	\item{}{\code{\link{pipeline_instances.delete}}}
-#' 	\item{}{\code{\link{pipeline_instances.get}}}
-#' 	\item{}{\code{\link{pipeline_instances.list}}}
-#' 	\item{}{\code{\link{pipeline_instances.update}}}
-#' 	\item{}{\code{\link{pipeline_templates.create}}}
-#' 	\item{}{\code{\link{pipeline_templates.delete}}}
-#' 	\item{}{\code{\link{pipeline_templates.get}}}
-#' 	\item{}{\code{\link{pipeline_templates.list}}}
-#' 	\item{}{\code{\link{pipeline_templates.update}}}
-#' 	\item{}{\code{\link{projects.create}}}
-#' 	\item{}{\code{\link{projects.delete}}}
-#' 	\item{}{\code{\link{projects.get}}}
-#' 	\item{}{\code{\link{projects.list}}}
-#' 	\item{}{\code{\link{projects.update}}}
-#' 	\item{}{\code{\link{repositories.create}}}
-#' 	\item{}{\code{\link{repositories.delete}}}
-#' 	\item{}{\code{\link{repositories.get}}}
-#' 	\item{}{\code{\link{repositories.get_all_permissions}}}
-#' 	\item{}{\code{\link{repositories.list}}}
-#' 	\item{}{\code{\link{repositories.update}}}
-#' 	\item{}{\code{\link{specimens.create}}}
-#' 	\item{}{\code{\link{specimens.delete}}}
-#' 	\item{}{\code{\link{specimens.get}}}
-#' 	\item{}{\code{\link{specimens.list}}}
-#' 	\item{}{\code{\link{specimens.update}}}
-#' 	\item{}{\code{\link{traits.create}}}
-#' 	\item{}{\code{\link{traits.delete}}}
-#' 	\item{}{\code{\link{traits.get}}}
-#' 	\item{}{\code{\link{traits.list}}}
-#' 	\item{}{\code{\link{traits.update}}}
-#' 	\item{}{\code{\link{user_agreements.create}}}
-#' 	\item{}{\code{\link{user_agreements.delete}}}
-#' 	\item{}{\code{\link{user_agreements.get}}}
-#' 	\item{}{\code{\link{user_agreements.list}}}
-#' 	\item{}{\code{\link{user_agreements.new}}}
-#' 	\item{}{\code{\link{user_agreements.sign}}}
-#' 	\item{}{\code{\link{user_agreements.signatures}}}
-#' 	\item{}{\code{\link{user_agreements.update}}}
-#' 	\item{}{\code{\link{users.activate}}}
-#' 	\item{}{\code{\link{users.create}}}
-#' 	\item{}{\code{\link{users.current}}}
-#' 	\item{}{\code{\link{users.delete}}}
-#' 	\item{}{\code{\link{users.get}}}
-#' 	\item{}{\code{\link{users.list}}}
-#' 	\item{}{\code{\link{users.merge}}}
-#' 	\item{}{\code{\link{users.setup}}}
-#' 	\item{}{\code{\link{users.system}}}
-#' 	\item{}{\code{\link{users.unsetup}}}
-#' 	\item{}{\code{\link{users.update}}}
-#' 	\item{}{\code{\link{users.update_uuid}}}
-#' 	\item{}{\code{\link{virtual_machines.create}}}
-#' 	\item{}{\code{\link{virtual_machines.delete}}}
-#' 	\item{}{\code{\link{virtual_machines.get}}}
-#' 	\item{}{\code{\link{virtual_machines.get_all_logins}}}
-#' 	\item{}{\code{\link{virtual_machines.list}}}
-#' 	\item{}{\code{\link{virtual_machines.logins}}}
-#' 	\item{}{\code{\link{virtual_machines.update}}}
-#' 	\item{}{\code{\link{workflows.create}}}
-#' 	\item{}{\code{\link{workflows.delete}}}
-#' 	\item{}{\code{\link{workflows.get}}}
-#' 	\item{}{\code{\link{workflows.list}}}
-#' 	\item{}{\code{\link{workflows.update}}}
-#' }
-#'
-#' @name Arvados
-#' @examples
-#' \dontrun{
-#' arv <- Arvados$new("your Arvados token", "example.arvadosapi.com")
-#'
-#' collection <- arv$collections.get("uuid")
-#'
-#' collectionList <- arv$collections.list(list(list("name", "like", "Test%")))
-#' collectionList <- listAll(arv$collections.list, list(list("name", "like", "Test%")))
-#'
-#' deletedCollection <- arv$collections.delete("uuid")
-#'
-#' updatedCollection <- arv$collections.update(list(name = "New name", description = "New description"),
-#'                                             "uuid")
-#'
-#' createdCollection <- arv$collections.create(list(name = "Example",
-#'                                                  description = "This is a test collection"))
-#' }
-NULL
-
-#' @export
-Arvados <- R6::R6Class(
-
-	"Arvados",
-
-	public = list(
-
-		initialize = function(authToken = NULL, hostName = NULL, numRetries = 0)
-		{
-			if(!is.null(hostName))
-				Sys.setenv(ARVADOS_API_HOST = hostName)
-
-			if(!is.null(authToken))
-				Sys.setenv(ARVADOS_API_TOKEN = authToken)
-
-			hostName <- Sys.getenv("ARVADOS_API_HOST")
-			token    <- Sys.getenv("ARVADOS_API_TOKEN")
-
-			if(hostName == "" | token == "")
-				stop(paste("Please provide host name and authentification token",
-						   "or set ARVADOS_API_HOST and ARVADOS_API_TOKEN",
-						   "environment variables."))
-
-			private$token <- token
-			private$host  <- paste0("https://", hostName, "/arvados/v1/")
-			private$numRetries <- numRetries
-			private$REST <- RESTService$new(token, hostName,
-			                                HttpRequest$new(), HttpParser$new(),
-			                                numRetries)
-
-		},
-
-		projects.get = function(uuid)
-		{
-			self$groups.get(uuid)
-		},
-
-		projects.create = function(group, ensure_unique_name = "false")
-		{
-			group <- c("group_class" = "project", group)
-			self$groups.create(group, ensure_unique_name)
-		},
-
-		projects.update = function(group, uuid)
-		{
-			group <- c("group_class" = "project", group)
-			self$groups.update(group, uuid)
-		},
-
-		projects.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact",
-			include_trash = NULL)
-		{
-			filters[[length(filters) + 1]] <- list("group_class", "=", "project")
-			self$groups.list(filters, where, order, select, distinct,
-			                 limit, offset, count, include_trash)
-		},
-
-		projects.delete = function(uuid)
-		{
-			self$groups.delete(uuid)
-		},
-
-		users.get = function(uuid)
-		{
-			endPoint <- stringr::str_interp("users/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.create = function(user, ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("users")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(user) > 0)
-				body <- jsonlite::toJSON(list(user = user), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.update = function(user, uuid)
-		{
-			endPoint <- stringr::str_interp("users/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(user) > 0)
-				body <- jsonlite::toJSON(list(user = user), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.delete = function(uuid)
-		{
-			endPoint <- stringr::str_interp("users/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.current = function()
-		{
-			endPoint <- stringr::str_interp("users/current")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.system = function()
-		{
-			endPoint <- stringr::str_interp("users/system")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.activate = function(uuid)
-		{
-			endPoint <- stringr::str_interp("users/${uuid}/activate")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.setup = function(user = NULL, openid_prefix = NULL,
-			repo_name = NULL, vm_uuid = NULL, send_notification_email = "false")
-		{
-			endPoint <- stringr::str_interp("users/setup")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(user = user, openid_prefix = openid_prefix,
-							  repo_name = repo_name, vm_uuid = vm_uuid,
-							  send_notification_email = send_notification_email)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.unsetup = function(uuid)
-		{
-			endPoint <- stringr::str_interp("users/${uuid}/unsetup")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.update_uuid = function(uuid, new_uuid)
-		{
-			endPoint <- stringr::str_interp("users/${uuid}/update_uuid")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(new_uuid = new_uuid)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.merge = function(new_owner_uuid, new_user_token,
-			redirect_to_new_user = NULL)
-		{
-			endPoint <- stringr::str_interp("users/merge")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(new_owner_uuid = new_owner_uuid,
-							  new_user_token = new_user_token, redirect_to_new_user = redirect_to_new_user)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		users.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
-		{
-			endPoint <- stringr::str_interp("users")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.get = function(uuid)
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.create = function(apiclientauthorization,
-			ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(apiclientauthorization) > 0)
-				body <- jsonlite::toJSON(list(apiclientauthorization = apiclientauthorization), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.update = function(apiclientauthorization, uuid)
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(apiclientauthorization) > 0)
-				body <- jsonlite::toJSON(list(apiclientauthorization = apiclientauthorization), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.delete = function(uuid)
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.create_system_auth = function(api_client_id = NULL, scopes = NULL)
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations/create_system_auth")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(api_client_id = api_client_id,
-							  scopes = scopes)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.current = function()
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations/current")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_client_authorizations.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
-		{
-			endPoint <- stringr::str_interp("api_client_authorizations")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.get = function(uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.create = function(container, ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("containers")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(container) > 0)
-				body <- jsonlite::toJSON(list(container = container), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.update = function(container, uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(container) > 0)
-				body <- jsonlite::toJSON(list(container = container), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.delete = function(uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.auth = function(uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}/auth")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.lock = function(uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}/lock")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.unlock = function(uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}/unlock")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.secret_mounts = function(uuid)
-		{
-			endPoint <- stringr::str_interp("containers/${uuid}/secret_mounts")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.current = function()
-		{
-			endPoint <- stringr::str_interp("containers/current")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		containers.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
-		{
-			endPoint <- stringr::str_interp("containers")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_clients.get = function(uuid)
-		{
-			endPoint <- stringr::str_interp("api_clients/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_clients.create = function(apiclient, ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("api_clients")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(apiclient) > 0)
-				body <- jsonlite::toJSON(list(apiclient = apiclient), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_clients.update = function(apiclient, uuid)
-		{
-			endPoint <- stringr::str_interp("api_clients/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(apiclient) > 0)
-				body <- jsonlite::toJSON(list(apiclient = apiclient), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		api_clients.delete = function(uuid)
-		{
-			endPoint <- stringr::str_interp("api_clients/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
+#' Arvados
+#'
+#' Arvados class gives users ability to access Arvados REST API.
+#'
+#' @section Usage:
+#' \preformatted{arv = Arvados$new(authToken = NULL, hostName = NULL, numRetries = 0)}
+#'
+#' @section Arguments:
+#' \describe{
+#' 	\item{authToken}{Authentification token. If not specified ARVADOS_API_TOKEN environment variable will be used.}
+#' 	\item{hostName}{Host name. If not specified ARVADOS_API_HOST environment variable will be used.}
+#' 	\item{numRetries}{Number which specifies how many times to retry failed service requests.}
+#' }
+#'
+#' @section Methods:
+#' \describe{
+#' 	\item{}{\code{\link{api_client_authorizations.create}}}
+#' 	\item{}{\code{\link{api_client_authorizations.create_system_auth}}}
+#' 	\item{}{\code{\link{api_client_authorizations.current}}}
+#' 	\item{}{\code{\link{api_client_authorizations.delete}}}
+#' 	\item{}{\code{\link{api_client_authorizations.get}}}
+#' 	\item{}{\code{\link{api_client_authorizations.list}}}
+#' 	\item{}{\code{\link{api_client_authorizations.update}}}
+#' 	\item{}{\code{\link{api_clients.create}}}
+#' 	\item{}{\code{\link{api_clients.delete}}}
+#' 	\item{}{\code{\link{api_clients.get}}}
+#' 	\item{}{\code{\link{api_clients.list}}}
+#' 	\item{}{\code{\link{api_clients.update}}}
+#' 	\item{}{\code{\link{authorized_keys.create}}}
+#' 	\item{}{\code{\link{authorized_keys.delete}}}
+#' 	\item{}{\code{\link{authorized_keys.get}}}
+#' 	\item{}{\code{\link{authorized_keys.list}}}
+#' 	\item{}{\code{\link{authorized_keys.update}}}
+#' 	\item{}{\code{\link{collections.create}}}
+#' 	\item{}{\code{\link{collections.delete}}}
+#' 	\item{}{\code{\link{collections.get}}}
+#' 	\item{}{\code{\link{collections.list}}}
+#' 	\item{}{\code{\link{collections.provenance}}}
+#' 	\item{}{\code{\link{collections.trash}}}
+#' 	\item{}{\code{\link{collections.untrash}}}
+#' 	\item{}{\code{\link{collections.update}}}
+#' 	\item{}{\code{\link{collections.used_by}}}
+#' 	\item{}{\code{\link{configs.get}}}
+#' 	\item{}{\code{\link{container_requests.create}}}
+#' 	\item{}{\code{\link{container_requests.delete}}}
+#' 	\item{}{\code{\link{container_requests.get}}}
+#' 	\item{}{\code{\link{container_requests.list}}}
+#' 	\item{}{\code{\link{container_requests.update}}}
+#' 	\item{}{\code{\link{containers.auth}}}
+#' 	\item{}{\code{\link{containers.create}}}
+#' 	\item{}{\code{\link{containers.current}}}
+#' 	\item{}{\code{\link{containers.delete}}}
+#' 	\item{}{\code{\link{containers.get}}}
+#' 	\item{}{\code{\link{containers.list}}}
+#' 	\item{}{\code{\link{containers.lock}}}
+#' 	\item{}{\code{\link{containers.secret_mounts}}}
+#' 	\item{}{\code{\link{containers.unlock}}}
+#' 	\item{}{\code{\link{containers.update}}}
+#' 	\item{}{\code{\link{groups.contents}}}
+#' 	\item{}{\code{\link{groups.create}}}
+#' 	\item{}{\code{\link{groups.delete}}}
+#' 	\item{}{\code{\link{groups.get}}}
+#' 	\item{}{\code{\link{groups.list}}}
+#' 	\item{}{\code{\link{groups.shared}}}
+#' 	\item{}{\code{\link{groups.trash}}}
+#' 	\item{}{\code{\link{groups.untrash}}}
+#' 	\item{}{\code{\link{groups.update}}}
+#' 	\item{}{\code{\link{keep_services.accessible}}}
+#' 	\item{}{\code{\link{keep_services.create}}}
+#' 	\item{}{\code{\link{keep_services.delete}}}
+#' 	\item{}{\code{\link{keep_services.get}}}
+#' 	\item{}{\code{\link{keep_services.list}}}
+#' 	\item{}{\code{\link{keep_services.update}}}
+#' 	\item{}{\code{\link{links.create}}}
+#' 	\item{}{\code{\link{links.delete}}}
+#' 	\item{}{\code{\link{links.get}}}
+#' 	\item{}{\code{\link{links.get_permissions}}}
+#' 	\item{}{\code{\link{links.list}}}
+#' 	\item{}{\code{\link{links.update}}}
+#' 	\item{}{\code{\link{logs.create}}}
+#' 	\item{}{\code{\link{logs.delete}}}
+#' 	\item{}{\code{\link{logs.get}}}
+#' 	\item{}{\code{\link{logs.list}}}
+#' 	\item{}{\code{\link{logs.update}}}
+#' 	\item{}{\code{\link{projects.create}}}
+#' 	\item{}{\code{\link{projects.delete}}}
+#' 	\item{}{\code{\link{projects.get}}}
+#' 	\item{}{\code{\link{projects.list}}}
+#' 	\item{}{\code{\link{projects.update}}}
+#' 	\item{}{\code{\link{repositories.create}}}
+#' 	\item{}{\code{\link{repositories.delete}}}
+#' 	\item{}{\code{\link{repositories.get}}}
+#' 	\item{}{\code{\link{repositories.get_all_permissions}}}
+#' 	\item{}{\code{\link{repositories.list}}}
+#' 	\item{}{\code{\link{repositories.update}}}
+#' 	\item{}{\code{\link{user_agreements.create}}}
+#' 	\item{}{\code{\link{user_agreements.delete}}}
+#' 	\item{}{\code{\link{user_agreements.get}}}
+#' 	\item{}{\code{\link{user_agreements.list}}}
+#' 	\item{}{\code{\link{user_agreements.new}}}
+#' 	\item{}{\code{\link{user_agreements.sign}}}
+#' 	\item{}{\code{\link{user_agreements.signatures}}}
+#' 	\item{}{\code{\link{user_agreements.update}}}
+#' 	\item{}{\code{\link{users.activate}}}
+#' 	\item{}{\code{\link{users.create}}}
+#' 	\item{}{\code{\link{users.current}}}
+#' 	\item{}{\code{\link{users.delete}}}
+#' 	\item{}{\code{\link{users.get}}}
+#' 	\item{}{\code{\link{users.list}}}
+#' 	\item{}{\code{\link{users.merge}}}
+#' 	\item{}{\code{\link{users.setup}}}
+#' 	\item{}{\code{\link{users.system}}}
+#' 	\item{}{\code{\link{users.unsetup}}}
+#' 	\item{}{\code{\link{users.update}}}
+#' 	\item{}{\code{\link{users.update_uuid}}}
+#' 	\item{}{\code{\link{virtual_machines.create}}}
+#' 	\item{}{\code{\link{virtual_machines.delete}}}
+#' 	\item{}{\code{\link{virtual_machines.get}}}
+#' 	\item{}{\code{\link{virtual_machines.get_all_logins}}}
+#' 	\item{}{\code{\link{virtual_machines.list}}}
+#' 	\item{}{\code{\link{virtual_machines.logins}}}
+#' 	\item{}{\code{\link{virtual_machines.update}}}
+#' 	\item{}{\code{\link{workflows.create}}}
+#' 	\item{}{\code{\link{workflows.delete}}}
+#' 	\item{}{\code{\link{workflows.get}}}
+#' 	\item{}{\code{\link{workflows.list}}}
+#' 	\item{}{\code{\link{workflows.update}}}
+#' }
+#'
+#' @name Arvados
+#' @examples
+#' \dontrun{
+#' arv <- Arvados$new("your Arvados token", "example.arvadosapi.com")
+#'
+#' collection <- arv$collections.get("uuid")
+#'
+#' collectionList <- arv$collections.list(list(list("name", "like", "Test%")))
+#' collectionList <- listAll(arv$collections.list, list(list("name", "like", "Test%")))
+#'
+#' deletedCollection <- arv$collections.delete("uuid")
+#'
+#' updatedCollection <- arv$collections.update(list(name = "New name", description = "New description"),
+#'                                             "uuid")
+#'
+#' createdCollection <- arv$collections.create(list(name = "Example",
+#'                                                  description = "This is a test collection"))
+#' }
+NULL
 
-		api_clients.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
-		{
-			endPoint <- stringr::str_interp("api_clients")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
+#' @export
+Arvados <- R6::R6Class(
 
-		container_requests.get = function(uuid)
-		{
-			endPoint <- stringr::str_interp("container_requests/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
+	"Arvados",
 
-		container_requests.create = function(containerrequest,
-			ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("container_requests")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(containerrequest) > 0)
-				body <- jsonlite::toJSON(list(containerrequest = containerrequest), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
+	public = list(
 
-		container_requests.update = function(containerrequest, uuid)
+		initialize = function(authToken = NULL, hostName = NULL, numRetries = 0)
 		{
-			endPoint <- stringr::str_interp("container_requests/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(containerrequest) > 0)
-				body <- jsonlite::toJSON(list(containerrequest = containerrequest), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
+			if(!is.null(hostName))
+				Sys.setenv(ARVADOS_API_HOST = hostName)
 
-		container_requests.delete = function(uuid)
-		{
-			endPoint <- stringr::str_interp("container_requests/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
+			if(!is.null(authToken))
+				Sys.setenv(ARVADOS_API_TOKEN = authToken)
+
+			hostName <- Sys.getenv("ARVADOS_API_HOST")
+			token    <- Sys.getenv("ARVADOS_API_TOKEN")
+
+			if(hostName == "" | token == "")
+				stop(paste("Please provide host name and authentification token",
+						   "or set ARVADOS_API_HOST and ARVADOS_API_TOKEN",
+						   "environment variables."))
+
+			private$token <- token
+			private$host  <- paste0("https://", hostName, "/arvados/v1/")
+			private$numRetries <- numRetries
+			private$REST <- RESTService$new(token, hostName,
+			                                HttpRequest$new(), HttpParser$new(),
+			                                numRetries)
 
-		container_requests.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
-		{
-			endPoint <- stringr::str_interp("container_requests")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
 		},
 
-		authorized_keys.get = function(uuid)
+		projects.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("authorized_keys/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
+			self$groups.get(uuid)
 		},
 
-		authorized_keys.create = function(authorizedkey,
-			ensure_unique_name = "false")
+		projects.create = function(group, ensure_unique_name = "false")
 		{
-			endPoint <- stringr::str_interp("authorized_keys")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(authorizedkey) > 0)
-				body <- jsonlite::toJSON(list(authorizedkey = authorizedkey), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
+			group <- c("group_class" = "project", group)
+			self$groups.create(group, ensure_unique_name)
 		},
 
-		authorized_keys.update = function(authorizedkey, uuid)
+		projects.update = function(group, uuid)
 		{
-			endPoint <- stringr::str_interp("authorized_keys/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(authorizedkey) > 0)
-				body <- jsonlite::toJSON(list(authorizedkey = authorizedkey), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
+			group <- c("group_class" = "project", group)
+			self$groups.update(group, uuid)
 		},
 
-		authorized_keys.delete = function(uuid)
+		projects.list = function(filters = NULL, where = NULL,
+			order = NULL, select = NULL, distinct = NULL,
+			limit = "100", offset = "0", count = "exact",
+			include_trash = NULL)
 		{
-			endPoint <- stringr::str_interp("authorized_keys/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
+			filters[[length(filters) + 1]] <- list("group_class", "=", "project")
+			self$groups.list(filters, where, order, select, distinct,
+			                 limit, offset, count, include_trash)
 		},
 
-		authorized_keys.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
-		{
-			endPoint <- stringr::str_interp("authorized_keys")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
+		projects.delete = function(uuid)
+		{
+			self$groups.delete(uuid)
 		},
 
-		collections.get = function(uuid)
+		api_clients.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}")
+			endPoint <- stringr::str_interp("api_clients/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3229,16 +1656,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.create = function(collection, ensure_unique_name = "false")
+		api_clients.create = function(apiclient,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("collections")
+			endPoint <- stringr::str_interp("api_clients")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(collection) > 0)
-				body <- jsonlite::toJSON(list(collection = collection), 
+			if(length(apiclient) > 0)
+				body <- jsonlite::toJSON(list(apiclient = apiclient), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3253,16 +1682,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.update = function(collection, uuid)
+		api_clients.update = function(apiclient, uuid)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}")
+			endPoint <- stringr::str_interp("api_clients/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(collection) > 0)
-				body <- jsonlite::toJSON(list(collection = collection), 
+			if(length(apiclient) > 0)
+				body <- jsonlite::toJSON(list(apiclient = apiclient), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3277,11 +1706,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.delete = function(uuid)
+		api_clients.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}")
+			endPoint <- stringr::str_interp("api_clients/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3297,13 +1726,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.provenance = function(uuid)
+		api_clients.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}/provenance")
+			endPoint <- stringr::str_interp("api_clients")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(filters = filters, where = where,
+							  order = order, select = select, distinct = distinct,
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -3317,11 +1752,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.used_by = function(uuid)
+		api_client_authorizations.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}/used_by")
+			endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3337,15 +1772,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.trash = function(uuid)
+		api_client_authorizations.create = function(apiclientauthorization,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}/trash")
+			endPoint <- stringr::str_interp("api_client_authorizations")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			body <- NULL
+			if(length(apiclientauthorization) > 0)
+				body <- jsonlite::toJSON(list(apiclientauthorization = apiclientauthorization), 
+				                         auto_unbox = TRUE)
+			else
+				body <- NULL
 			
 			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
@@ -3357,43 +1798,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		collections.untrash = function(uuid)
+		api_client_authorizations.update = function(apiclientauthorization, uuid)
 		{
-			endPoint <- stringr::str_interp("collections/${uuid}/untrash")
+			endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		collections.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact", include_trash = NULL)
-		{
-			endPoint <- stringr::str_interp("collections")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count,
-							  include_trash = include_trash)
-			
-			body <- NULL
+			if(length(apiclientauthorization) > 0)
+				body <- jsonlite::toJSON(list(apiclientauthorization = apiclientauthorization), 
+				                         auto_unbox = TRUE)
+			else
+				body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
+			response <- private$REST$http$exec("PUT", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -3403,17 +1822,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		humans.get = function(uuid)
+		api_client_authorizations.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("humans/${uuid}")
+			endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
+			response <- private$REST$http$exec("DELETE", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -3423,19 +1842,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		humans.create = function(human, ensure_unique_name = "false")
+		api_client_authorizations.create_system_auth = function(api_client_id = NULL, scopes = NULL)
 		{
-			endPoint <- stringr::str_interp("humans")
+			endPoint <- stringr::str_interp("api_client_authorizations/create_system_auth")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(api_client_id = api_client_id,
+							  scopes = scopes)
 			
-			if(length(human) > 0)
-				body <- jsonlite::toJSON(list(human = human), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
+			body <- NULL
 			
 			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
@@ -3447,41 +1863,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		humans.update = function(human, uuid)
-		{
-			endPoint <- stringr::str_interp("humans/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(human) > 0)
-				body <- jsonlite::toJSON(list(human = human), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		humans.delete = function(uuid)
+		api_client_authorizations.current = function()
 		{
-			endPoint <- stringr::str_interp("humans/${uuid}")
+			endPoint <- stringr::str_interp("api_client_authorizations/current")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -3491,17 +1883,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		humans.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		api_client_authorizations.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("humans")
+			endPoint <- stringr::str_interp("api_client_authorizations")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -3515,11 +1909,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		job_tasks.get = function(uuid)
+		authorized_keys.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("job_tasks/${uuid}")
+			endPoint <- stringr::str_interp("authorized_keys/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3535,16 +1929,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		job_tasks.create = function(jobtask, ensure_unique_name = "false")
+		authorized_keys.create = function(authorizedkey,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("job_tasks")
+			endPoint <- stringr::str_interp("authorized_keys")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(jobtask) > 0)
-				body <- jsonlite::toJSON(list(jobtask = jobtask), 
+			if(length(authorizedkey) > 0)
+				body <- jsonlite::toJSON(list(authorizedkey = authorizedkey), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3559,16 +1955,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		job_tasks.update = function(jobtask, uuid)
+		authorized_keys.update = function(authorizedkey, uuid)
 		{
-			endPoint <- stringr::str_interp("job_tasks/${uuid}")
+			endPoint <- stringr::str_interp("authorized_keys/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(jobtask) > 0)
-				body <- jsonlite::toJSON(list(jobtask = jobtask), 
+			if(length(authorizedkey) > 0)
+				body <- jsonlite::toJSON(list(authorizedkey = authorizedkey), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3583,11 +1979,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		job_tasks.delete = function(uuid)
+		authorized_keys.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("job_tasks/${uuid}")
+			endPoint <- stringr::str_interp("authorized_keys/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3603,18 +1999,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		job_tasks.list = function(filters = NULL,
+		authorized_keys.list = function(filters = NULL,
 			where = NULL, order = NULL, select = NULL,
 			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("job_tasks")
+			endPoint <- stringr::str_interp("authorized_keys")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -3628,11 +2025,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.get = function(uuid)
+		collections.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/${uuid}")
+			endPoint <- stringr::str_interp("collections/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3648,21 +2045,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.create = function(job, ensure_unique_name = "false",
-			find_or_create = "false", filters = NULL,
-			minimum_script_version = NULL, exclude_script_versions = NULL)
+		collections.create = function(collection,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("jobs")
+			endPoint <- stringr::str_interp("collections")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(ensure_unique_name = ensure_unique_name,
-							  find_or_create = find_or_create, filters = filters,
-							  minimum_script_version = minimum_script_version,
-							  exclude_script_versions = exclude_script_versions)
+							  cluster_id = cluster_id)
 			
-			if(length(job) > 0)
-				body <- jsonlite::toJSON(list(job = job), 
+			if(length(collection) > 0)
+				body <- jsonlite::toJSON(list(collection = collection), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3677,16 +2071,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.update = function(job, uuid)
+		collections.update = function(collection, uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/${uuid}")
+			endPoint <- stringr::str_interp("collections/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(job) > 0)
-				body <- jsonlite::toJSON(list(job = job), 
+			if(length(collection) > 0)
+				body <- jsonlite::toJSON(list(collection = collection), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3701,11 +2095,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.delete = function(uuid)
+		collections.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/${uuid}")
+			endPoint <- stringr::str_interp("collections/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3721,17 +2115,13 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.queue = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		collections.provenance = function(uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/queue")
+			endPoint <- stringr::str_interp("collections/${uuid}/provenance")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+			queryArgs <- NULL
 			
 			body <- NULL
 			
@@ -3745,11 +2135,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.queue_size = function()
+		collections.used_by = function(uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/queue_size")
+			endPoint <- stringr::str_interp("collections/${uuid}/used_by")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3765,11 +2155,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.cancel = function(uuid)
+		collections.trash = function(uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/${uuid}/cancel")
+			endPoint <- stringr::str_interp("collections/${uuid}/trash")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3785,11 +2175,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.lock = function(uuid)
+		collections.untrash = function(uuid)
 		{
-			endPoint <- stringr::str_interp("jobs/${uuid}/lock")
+			endPoint <- stringr::str_interp("collections/${uuid}/untrash")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3805,17 +2195,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		jobs.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		collections.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL,
+			include_trash = NULL, include_old_versions = NULL)
 		{
-			endPoint <- stringr::str_interp("jobs")
+			endPoint <- stringr::str_interp("collections")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation,
+							  include_trash = include_trash, include_old_versions = include_old_versions)
 			
 			body <- NULL
 			
@@ -3829,11 +2223,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_disks.get = function(uuid)
+		containers.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("keep_disks/${uuid}")
+			endPoint <- stringr::str_interp("containers/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3849,16 +2243,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_disks.create = function(keepdisk, ensure_unique_name = "false")
+		containers.create = function(container, ensure_unique_name = "false",
+			cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("keep_disks")
+			endPoint <- stringr::str_interp("containers")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(keepdisk) > 0)
-				body <- jsonlite::toJSON(list(keepdisk = keepdisk), 
+			if(length(container) > 0)
+				body <- jsonlite::toJSON(list(container = container), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3873,16 +2269,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_disks.update = function(keepdisk, uuid)
+		containers.update = function(container, uuid)
 		{
-			endPoint <- stringr::str_interp("keep_disks/${uuid}")
+			endPoint <- stringr::str_interp("containers/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(keepdisk) > 0)
-				body <- jsonlite::toJSON(list(keepdisk = keepdisk), 
+			if(length(container) > 0)
+				body <- jsonlite::toJSON(list(container = container), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -3897,11 +2293,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_disks.delete = function(uuid)
+		containers.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("keep_disks/${uuid}")
+			endPoint <- stringr::str_interp("containers/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -3917,43 +2313,13 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_disks.ping = function(uuid = NULL, ping_secret,
-			node_uuid = NULL, filesystem_uuid = NULL,
-			service_host = NULL, service_port, service_ssl_flag)
-		{
-			endPoint <- stringr::str_interp("keep_disks/ping")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(uuid = uuid, ping_secret = ping_secret,
-							  node_uuid = node_uuid, filesystem_uuid = filesystem_uuid,
-							  service_host = service_host, service_port = service_port,
-							  service_ssl_flag = service_ssl_flag)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		keep_disks.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+		containers.auth = function(uuid)
 		{
-			endPoint <- stringr::str_interp("keep_disks")
+			endPoint <- stringr::str_interp("containers/${uuid}/auth")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+			queryArgs <- NULL
 			
 			body <- NULL
 			
@@ -3967,42 +2333,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		nodes.get = function(uuid)
+		containers.lock = function(uuid)
 		{
-			endPoint <- stringr::str_interp("nodes/${uuid}")
+			endPoint <- stringr::str_interp("containers/${uuid}/lock")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		nodes.create = function(node, ensure_unique_name = "false",
-			assign_slot = NULL)
-		{
-			endPoint <- stringr::str_interp("nodes")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name,
-							  assign_slot = assign_slot)
-			
-			if(length(node) > 0)
-				body <- jsonlite::toJSON(list(node = node), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
 			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
@@ -4013,21 +2353,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		nodes.update = function(node, uuid, assign_slot = NULL)
+		containers.unlock = function(uuid)
 		{
-			endPoint <- stringr::str_interp("nodes/${uuid}")
+			endPoint <- stringr::str_interp("containers/${uuid}/unlock")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(assign_slot = assign_slot)
+			queryArgs <- NULL
 			
-			if(length(node) > 0)
-				body <- jsonlite::toJSON(list(node = node), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
+			body <- NULL
 			
-			response <- private$REST$http$exec("PUT", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4037,17 +2373,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		nodes.delete = function(uuid)
+		containers.secret_mounts = function(uuid)
 		{
-			endPoint <- stringr::str_interp("nodes/${uuid}")
+			endPoint <- stringr::str_interp("containers/${uuid}/secret_mounts")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4057,17 +2393,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		nodes.ping = function(uuid, ping_secret)
+		containers.current = function()
 		{
-			endPoint <- stringr::str_interp("nodes/${uuid}/ping")
+			endPoint <- stringr::str_interp("containers/current")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ping_secret = ping_secret)
+			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("POST", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4077,17 +2413,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		nodes.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		containers.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("nodes")
+			endPoint <- stringr::str_interp("containers")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -4101,11 +2439,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		links.get = function(uuid)
+		container_requests.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("links/${uuid}")
+			endPoint <- stringr::str_interp("container_requests/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4121,16 +2459,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		links.create = function(link, ensure_unique_name = "false")
+		container_requests.create = function(containerrequest,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("links")
+			endPoint <- stringr::str_interp("container_requests")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(link) > 0)
-				body <- jsonlite::toJSON(list(link = link), 
+			if(length(containerrequest) > 0)
+				body <- jsonlite::toJSON(list(containerrequest = containerrequest), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4145,16 +2485,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		links.update = function(link, uuid)
+		container_requests.update = function(containerrequest, uuid)
 		{
-			endPoint <- stringr::str_interp("links/${uuid}")
+			endPoint <- stringr::str_interp("container_requests/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(link) > 0)
-				body <- jsonlite::toJSON(list(link = link), 
+			if(length(containerrequest) > 0)
+				body <- jsonlite::toJSON(list(containerrequest = containerrequest), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4169,11 +2509,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		links.delete = function(uuid)
+		container_requests.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("links/${uuid}")
+			endPoint <- stringr::str_interp("container_requests/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4189,37 +2529,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		links.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		container_requests.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL,
+			include_trash = NULL)
 		{
-			endPoint <- stringr::str_interp("links")
+			endPoint <- stringr::str_interp("container_requests")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
-			
-			body <- NULL
-			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		links.get_permissions = function(uuid)
-		{
-			endPoint <- stringr::str_interp("permissions/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation,
+							  include_trash = include_trash)
 			
 			body <- NULL
 			
@@ -4233,11 +2557,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_services.get = function(uuid)
+		groups.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("keep_services/${uuid}")
+			endPoint <- stringr::str_interp("groups/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4253,17 +2577,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_services.create = function(keepservice,
-			ensure_unique_name = "false")
+		groups.create = function(group, ensure_unique_name = "false",
+			cluster_id = NULL, async = "false")
 		{
-			endPoint <- stringr::str_interp("keep_services")
+			endPoint <- stringr::str_interp("groups")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id, async = async)
 			
-			if(length(keepservice) > 0)
-				body <- jsonlite::toJSON(list(keepservice = keepservice), 
+			if(length(group) > 0)
+				body <- jsonlite::toJSON(list(group = group), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4278,16 +2603,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_services.update = function(keepservice, uuid)
+		groups.update = function(group, uuid, async = "false")
 		{
-			endPoint <- stringr::str_interp("keep_services/${uuid}")
+			endPoint <- stringr::str_interp("groups/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(async = async)
 			
-			if(length(keepservice) > 0)
-				body <- jsonlite::toJSON(list(keepservice = keepservice), 
+			if(length(group) > 0)
+				body <- jsonlite::toJSON(list(group = group), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4302,11 +2627,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_services.delete = function(uuid)
+		groups.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("keep_services/${uuid}")
+			endPoint <- stringr::str_interp("groups/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4322,13 +2647,22 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_services.accessible = function()
+		groups.contents = function(filters = NULL,
+			where = NULL, order = NULL, distinct = NULL,
+			limit = "100", offset = "0", count = "exact",
+			cluster_id = NULL, bypass_federation = NULL,
+			include_trash = NULL, uuid = NULL, recursive = NULL,
+			include = NULL)
 		{
-			endPoint <- stringr::str_interp("keep_services/accessible")
+			endPoint <- stringr::str_interp("groups/contents")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(filters = filters, where = where,
+							  order = order, distinct = distinct, limit = limit,
+							  offset = offset, count = count, cluster_id = cluster_id,
+							  bypass_federation = bypass_federation, include_trash = include_trash,
+							  uuid = uuid, recursive = recursive, include = include)
 			
 			body <- NULL
 			
@@ -4342,18 +2676,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		keep_services.list = function(filters = NULL,
+		groups.shared = function(filters = NULL,
 			where = NULL, order = NULL, select = NULL,
 			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+			count = "exact", cluster_id = NULL, bypass_federation = NULL,
+			include_trash = NULL, include = NULL)
 		{
-			endPoint <- stringr::str_interp("keep_services")
+			endPoint <- stringr::str_interp("groups/shared")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation,
+							  include_trash = include_trash, include = include)
 			
 			body <- NULL
 			
@@ -4367,41 +2704,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_templates.get = function(uuid)
+		groups.trash = function(uuid)
 		{
-			endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+			endPoint <- stringr::str_interp("groups/${uuid}/trash")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		pipeline_templates.create = function(pipelinetemplate,
-			ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("pipeline_templates")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(pipelinetemplate) > 0)
-				body <- jsonlite::toJSON(list(pipelinetemplate = pipelinetemplate), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
 			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
@@ -4412,41 +2724,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_templates.update = function(pipelinetemplate, uuid)
-		{
-			endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- NULL
-			
-			if(length(pipelinetemplate) > 0)
-				body <- jsonlite::toJSON(list(pipelinetemplate = pipelinetemplate), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("PUT", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		pipeline_templates.delete = function(uuid)
+		groups.untrash = function(uuid)
 		{
-			endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+			endPoint <- stringr::str_interp("groups/${uuid}/untrash")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4456,18 +2744,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_templates.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+		groups.list = function(filters = NULL, where = NULL,
+			order = NULL, select = NULL, distinct = NULL,
+			limit = "100", offset = "0", count = "exact",
+			cluster_id = NULL, bypass_federation = NULL,
+			include_trash = NULL)
 		{
-			endPoint <- stringr::str_interp("pipeline_templates")
+			endPoint <- stringr::str_interp("groups")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation,
+							  include_trash = include_trash)
 			
 			body <- NULL
 			
@@ -4481,11 +2772,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_instances.get = function(uuid)
+		keep_services.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+			endPoint <- stringr::str_interp("keep_services/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4501,17 +2792,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_instances.create = function(pipelineinstance,
-			ensure_unique_name = "false")
+		keep_services.create = function(keepservice,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("pipeline_instances")
+			endPoint <- stringr::str_interp("keep_services")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(pipelineinstance) > 0)
-				body <- jsonlite::toJSON(list(pipelineinstance = pipelineinstance), 
+			if(length(keepservice) > 0)
+				body <- jsonlite::toJSON(list(keepservice = keepservice), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4526,16 +2818,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_instances.update = function(pipelineinstance, uuid)
+		keep_services.update = function(keepservice, uuid)
 		{
-			endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+			endPoint <- stringr::str_interp("keep_services/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(pipelineinstance) > 0)
-				body <- jsonlite::toJSON(list(pipelineinstance = pipelineinstance), 
+			if(length(keepservice) > 0)
+				body <- jsonlite::toJSON(list(keepservice = keepservice), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4550,11 +2842,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_instances.delete = function(uuid)
+		keep_services.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+			endPoint <- stringr::str_interp("keep_services/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4570,17 +2862,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_instances.cancel = function(uuid)
+		keep_services.accessible = function()
 		{
-			endPoint <- stringr::str_interp("pipeline_instances/${uuid}/cancel")
+			endPoint <- stringr::str_interp("keep_services/accessible")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("POST", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4590,18 +2882,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		pipeline_instances.list = function(filters = NULL,
+		keep_services.list = function(filters = NULL,
 			where = NULL, order = NULL, select = NULL,
 			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("pipeline_instances")
+			endPoint <- stringr::str_interp("keep_services")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -4615,11 +2908,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		repositories.get = function(uuid)
+		links.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("repositories/${uuid}")
+			endPoint <- stringr::str_interp("links/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4635,16 +2928,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		repositories.create = function(repository, ensure_unique_name = "false")
+		links.create = function(link, ensure_unique_name = "false",
+			cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("repositories")
+			endPoint <- stringr::str_interp("links")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(repository) > 0)
-				body <- jsonlite::toJSON(list(repository = repository), 
+			if(length(link) > 0)
+				body <- jsonlite::toJSON(list(link = link), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4659,16 +2954,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		repositories.update = function(repository, uuid)
+		links.update = function(link, uuid)
 		{
-			endPoint <- stringr::str_interp("repositories/${uuid}")
+			endPoint <- stringr::str_interp("links/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(repository) > 0)
-				body <- jsonlite::toJSON(list(repository = repository), 
+			if(length(link) > 0)
+				body <- jsonlite::toJSON(list(link = link), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4683,11 +2978,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		repositories.delete = function(uuid)
+		links.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("repositories/${uuid}")
+			endPoint <- stringr::str_interp("links/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4703,13 +2998,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		repositories.get_all_permissions = function()
+		links.list = function(filters = NULL, where = NULL,
+			order = NULL, select = NULL, distinct = NULL,
+			limit = "100", offset = "0", count = "exact",
+			cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("repositories/get_all_permissions")
+			endPoint <- stringr::str_interp("links")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(filters = filters, where = where,
+							  order = order, select = select, distinct = distinct,
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -4723,18 +3024,13 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		repositories.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+		links.get_permissions = function(uuid)
 		{
-			endPoint <- stringr::str_interp("repositories")
+			endPoint <- stringr::str_interp("permissions/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+			queryArgs <- NULL
 			
 			body <- NULL
 			
@@ -4748,11 +3044,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		specimens.get = function(uuid)
+		logs.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("specimens/${uuid}")
+			endPoint <- stringr::str_interp("logs/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4768,16 +3064,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		specimens.create = function(specimen, ensure_unique_name = "false")
+		logs.create = function(log, ensure_unique_name = "false",
+			cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("specimens")
+			endPoint <- stringr::str_interp("logs")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(specimen) > 0)
-				body <- jsonlite::toJSON(list(specimen = specimen), 
+			if(length(log) > 0)
+				body <- jsonlite::toJSON(list(log = log), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4792,16 +3090,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		specimens.update = function(specimen, uuid)
+		logs.update = function(log, uuid)
 		{
-			endPoint <- stringr::str_interp("specimens/${uuid}")
+			endPoint <- stringr::str_interp("logs/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(specimen) > 0)
-				body <- jsonlite::toJSON(list(specimen = specimen), 
+			if(length(log) > 0)
+				body <- jsonlite::toJSON(list(log = log), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4816,11 +3114,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		specimens.delete = function(uuid)
+		logs.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("specimens/${uuid}")
+			endPoint <- stringr::str_interp("logs/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4836,18 +3134,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		specimens.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+		logs.list = function(filters = NULL, where = NULL,
+			order = NULL, select = NULL, distinct = NULL,
+			limit = "100", offset = "0", count = "exact",
+			cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("specimens")
+			endPoint <- stringr::str_interp("logs")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -4861,11 +3160,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		logs.get = function(uuid)
+		users.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("logs/${uuid}")
+			endPoint <- stringr::str_interp("users/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -4881,16 +3180,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		logs.create = function(log, ensure_unique_name = "false")
+		users.create = function(user, ensure_unique_name = "false",
+			cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("logs")
+			endPoint <- stringr::str_interp("users")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(log) > 0)
-				body <- jsonlite::toJSON(list(log = log), 
+			if(length(user) > 0)
+				body <- jsonlite::toJSON(list(user = user), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -4905,21 +3206,41 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		logs.update = function(log, uuid)
+		users.update = function(user, uuid, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("logs/${uuid}")
+			endPoint <- stringr::str_interp("users/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(bypass_federation = bypass_federation)
 			
-			if(length(log) > 0)
-				body <- jsonlite::toJSON(list(log = log), 
+			if(length(user) > 0)
+				body <- jsonlite::toJSON(list(user = user), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
 			
-			response <- private$REST$http$exec("PUT", url, headers, body,
+			response <- private$REST$http$exec("PUT", url, headers, body,
+			                                   queryArgs, private$numRetries)
+			resource <- private$REST$httpParser$parseJSONResponse(response)
+			
+			if(!is.null(resource$errors))
+				stop(resource$errors)
+			
+			resource
+		},
+
+		users.delete = function(uuid)
+		{
+			endPoint <- stringr::str_interp("users/${uuid}")
+			url <- paste0(private$host, endPoint)
+			headers <- list(Authorization = paste("Bearer", private$token), 
+			                "Content-Type" = "application/json")
+			queryArgs <- NULL
+			
+			body <- NULL
+			
+			response <- private$REST$http$exec("DELETE", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4929,17 +3250,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		logs.delete = function(uuid)
+		users.current = function()
 		{
-			endPoint <- stringr::str_interp("logs/${uuid}")
+			endPoint <- stringr::str_interp("users/current")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4949,17 +3270,13 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		logs.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		users.system = function()
 		{
-			endPoint <- stringr::str_interp("logs")
+			endPoint <- stringr::str_interp("users/system")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+			queryArgs <- NULL
 			
 			body <- NULL
 			
@@ -4973,17 +3290,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		traits.get = function(uuid)
+		users.activate = function(uuid)
 		{
-			endPoint <- stringr::str_interp("traits/${uuid}")
+			endPoint <- stringr::str_interp("users/${uuid}/activate")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -4993,19 +3310,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		traits.create = function(trait, ensure_unique_name = "false")
+		users.setup = function(uuid = NULL, user = NULL,
+			repo_name = NULL, vm_uuid = NULL, send_notification_email = "false")
 		{
-			endPoint <- stringr::str_interp("traits")
+			endPoint <- stringr::str_interp("users/setup")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(uuid = uuid, user = user,
+							  repo_name = repo_name, vm_uuid = vm_uuid,
+							  send_notification_email = send_notification_email)
 			
-			if(length(trait) > 0)
-				body <- jsonlite::toJSON(list(trait = trait), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
+			body <- NULL
 			
 			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
@@ -5017,21 +3333,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		traits.update = function(trait, uuid)
+		users.unsetup = function(uuid)
 		{
-			endPoint <- stringr::str_interp("traits/${uuid}")
+			endPoint <- stringr::str_interp("users/${uuid}/unsetup")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(trait) > 0)
-				body <- jsonlite::toJSON(list(trait = trait), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
+			body <- NULL
 			
-			response <- private$REST$http$exec("PUT", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5041,17 +3353,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		traits.delete = function(uuid)
+		users.update_uuid = function(uuid, new_uuid)
 		{
-			endPoint <- stringr::str_interp("traits/${uuid}")
+			endPoint <- stringr::str_interp("users/${uuid}/update_uuid")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(new_uuid = new_uuid)
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5061,21 +3373,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		traits.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact")
+		users.merge = function(new_owner_uuid, new_user_token = NULL,
+			redirect_to_new_user = NULL, old_user_uuid = NULL,
+			new_user_uuid = NULL)
 		{
-			endPoint <- stringr::str_interp("traits")
+			endPoint <- stringr::str_interp("users/merge")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+			queryArgs <- list(new_owner_uuid = new_owner_uuid,
+							  new_user_token = new_user_token, redirect_to_new_user = redirect_to_new_user,
+							  old_user_uuid = old_user_uuid, new_user_uuid = new_user_uuid)
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5085,13 +3397,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.get = function(uuid)
+		users.list = function(filters = NULL, where = NULL,
+			order = NULL, select = NULL, distinct = NULL,
+			limit = "100", offset = "0", count = "exact",
+			cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+			endPoint <- stringr::str_interp("users")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(filters = filters, where = where,
+							  order = order, select = select, distinct = distinct,
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -5105,22 +3423,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.create = function(virtualmachine,
-			ensure_unique_name = "false")
+		repositories.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("virtual_machines")
+			endPoint <- stringr::str_interp("repositories/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- NULL
 			
-			if(length(virtualmachine) > 0)
-				body <- jsonlite::toJSON(list(virtualmachine = virtualmachine), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
+			body <- NULL
 			
-			response <- private$REST$http$exec("POST", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5130,21 +3443,23 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.update = function(virtualmachine, uuid)
+		repositories.create = function(repository,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+			endPoint <- stringr::str_interp("repositories")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(virtualmachine) > 0)
-				body <- jsonlite::toJSON(list(virtualmachine = virtualmachine), 
+			if(length(repository) > 0)
+				body <- jsonlite::toJSON(list(repository = repository), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
 			
-			response <- private$REST$http$exec("PUT", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5154,17 +3469,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.delete = function(uuid)
+		repositories.update = function(repository, uuid)
 		{
-			endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+			endPoint <- stringr::str_interp("repositories/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			body <- NULL
+			if(length(repository) > 0)
+				body <- jsonlite::toJSON(list(repository = repository), 
+				                         auto_unbox = TRUE)
+			else
+				body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("PUT", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5174,17 +3493,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.logins = function(uuid)
+		repositories.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("virtual_machines/${uuid}/logins")
+			endPoint <- stringr::str_interp("repositories/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
+			response <- private$REST$http$exec("DELETE", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5194,11 +3513,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.get_all_logins = function()
+		repositories.get_all_permissions = function()
 		{
-			endPoint <- stringr::str_interp("virtual_machines/get_all_logins")
+			endPoint <- stringr::str_interp("repositories/get_all_permissions")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5214,18 +3533,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		virtual_machines.list = function(filters = NULL,
+		repositories.list = function(filters = NULL,
 			where = NULL, order = NULL, select = NULL,
 			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("virtual_machines")
+			endPoint <- stringr::str_interp("repositories")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -5239,11 +3559,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		workflows.get = function(uuid)
+		virtual_machines.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("workflows/${uuid}")
+			endPoint <- stringr::str_interp("virtual_machines/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5259,16 +3579,18 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		workflows.create = function(workflow, ensure_unique_name = "false")
+		virtual_machines.create = function(virtualmachine,
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("workflows")
+			endPoint <- stringr::str_interp("virtual_machines")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			if(length(workflow) > 0)
-				body <- jsonlite::toJSON(list(workflow = workflow), 
+			if(length(virtualmachine) > 0)
+				body <- jsonlite::toJSON(list(virtualmachine = virtualmachine), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -5283,16 +3605,16 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		workflows.update = function(workflow, uuid)
+		virtual_machines.update = function(virtualmachine, uuid)
 		{
-			endPoint <- stringr::str_interp("workflows/${uuid}")
+			endPoint <- stringr::str_interp("virtual_machines/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			if(length(workflow) > 0)
-				body <- jsonlite::toJSON(list(workflow = workflow), 
+			if(length(virtualmachine) > 0)
+				body <- jsonlite::toJSON(list(virtualmachine = virtualmachine), 
 				                         auto_unbox = TRUE)
 			else
 				body <- NULL
@@ -5307,11 +3629,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		workflows.delete = function(uuid)
+		virtual_machines.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("workflows/${uuid}")
+			endPoint <- stringr::str_interp("virtual_machines/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5327,18 +3649,13 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		workflows.list = function(filters = NULL,
-			where = NULL, order = NULL, select = NULL,
-			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+		virtual_machines.logins = function(uuid)
 		{
-			endPoint <- stringr::str_interp("workflows")
+			endPoint <- stringr::str_interp("virtual_machines/${uuid}/logins")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+			queryArgs <- NULL
 			
 			body <- NULL
 			
@@ -5352,11 +3669,11 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.get = function(uuid)
+		virtual_machines.get_all_logins = function()
 		{
-			endPoint <- stringr::str_interp("groups/${uuid}")
+			endPoint <- stringr::str_interp("virtual_machines/get_all_logins")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5372,45 +3689,23 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.create = function(group, ensure_unique_name = "false")
-		{
-			endPoint <- stringr::str_interp("groups")
-			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
-			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
-			
-			if(length(group) > 0)
-				body <- jsonlite::toJSON(list(group = group), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
-			
-			response <- private$REST$http$exec("POST", url, headers, body,
-			                                   queryArgs, private$numRetries)
-			resource <- private$REST$httpParser$parseJSONResponse(response)
-			
-			if(!is.null(resource$errors))
-				stop(resource$errors)
-			
-			resource
-		},
-
-		groups.update = function(group, uuid)
+		virtual_machines.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("groups/${uuid}")
+			endPoint <- stringr::str_interp("virtual_machines")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- NULL
+			queryArgs <- list(filters = filters, where = where,
+							  order = order, select = select, distinct = distinct,
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
-			if(length(group) > 0)
-				body <- jsonlite::toJSON(list(group = group), 
-				                         auto_unbox = TRUE)
-			else
-				body <- NULL
+			body <- NULL
 			
-			response <- private$REST$http$exec("PUT", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5420,17 +3715,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.delete = function(uuid)
+		workflows.get = function(uuid)
 		{
-			endPoint <- stringr::str_interp("groups/${uuid}")
+			endPoint <- stringr::str_interp("workflows/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("DELETE", url, headers, body,
+			response <- private$REST$http$exec("GET", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5440,23 +3735,23 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.contents = function(filters = NULL,
-			where = NULL, order = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact",
-			include_trash = NULL, uuid = NULL, recursive = NULL)
+		workflows.create = function(workflow, ensure_unique_name = "false",
+			cluster_id = NULL)
 		{
-			endPoint <- stringr::str_interp("groups/contents")
+			endPoint <- stringr::str_interp("workflows")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(filters = filters, where = where,
-							  order = order, distinct = distinct, limit = limit,
-							  offset = offset, count = count, include_trash = include_trash,
-							  uuid = uuid, recursive = recursive)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
-			body <- NULL
+			if(length(workflow) > 0)
+				body <- jsonlite::toJSON(list(workflow = workflow), 
+				                         auto_unbox = TRUE)
+			else
+				body <- NULL
 			
-			response <- private$REST$http$exec("GET", url, headers, body,
+			response <- private$REST$http$exec("POST", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5466,17 +3761,21 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.trash = function(uuid)
+		workflows.update = function(workflow, uuid)
 		{
-			endPoint <- stringr::str_interp("groups/${uuid}/trash")
+			endPoint <- stringr::str_interp("workflows/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
-			body <- NULL
+			if(length(workflow) > 0)
+				body <- jsonlite::toJSON(list(workflow = workflow), 
+				                         auto_unbox = TRUE)
+			else
+				body <- NULL
 			
-			response <- private$REST$http$exec("POST", url, headers, body,
+			response <- private$REST$http$exec("PUT", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5486,17 +3785,17 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.untrash = function(uuid)
+		workflows.delete = function(uuid)
 		{
-			endPoint <- stringr::str_interp("groups/${uuid}/untrash")
+			endPoint <- stringr::str_interp("workflows/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
 			body <- NULL
 			
-			response <- private$REST$http$exec("POST", url, headers, body,
+			response <- private$REST$http$exec("DELETE", url, headers, body,
 			                                   queryArgs, private$numRetries)
 			resource <- private$REST$httpParser$parseJSONResponse(response)
 			
@@ -5506,19 +3805,19 @@ Arvados <- R6::R6Class(
 			resource
 		},
 
-		groups.list = function(filters = NULL, where = NULL,
-			order = NULL, select = NULL, distinct = NULL,
-			limit = "100", offset = "0", count = "exact",
-			include_trash = NULL)
+		workflows.list = function(filters = NULL,
+			where = NULL, order = NULL, select = NULL,
+			distinct = NULL, limit = "100", offset = "0",
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
-			endPoint <- stringr::str_interp("groups")
+			endPoint <- stringr::str_interp("workflows")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
 							  limit = limit, offset = offset, count = count,
-							  include_trash = include_trash)
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -5536,7 +3835,7 @@ Arvados <- R6::R6Class(
 		{
 			endPoint <- stringr::str_interp("user_agreements/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5553,13 +3852,14 @@ Arvados <- R6::R6Class(
 		},
 
 		user_agreements.create = function(useragreement,
-			ensure_unique_name = "false")
+			ensure_unique_name = "false", cluster_id = NULL)
 		{
 			endPoint <- stringr::str_interp("user_agreements")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
-			queryArgs <- list(ensure_unique_name = ensure_unique_name)
+			queryArgs <- list(ensure_unique_name = ensure_unique_name,
+							  cluster_id = cluster_id)
 			
 			if(length(useragreement) > 0)
 				body <- jsonlite::toJSON(list(useragreement = useragreement), 
@@ -5581,7 +3881,7 @@ Arvados <- R6::R6Class(
 		{
 			endPoint <- stringr::str_interp("user_agreements/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5605,7 +3905,7 @@ Arvados <- R6::R6Class(
 		{
 			endPoint <- stringr::str_interp("user_agreements/${uuid}")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5625,7 +3925,7 @@ Arvados <- R6::R6Class(
 		{
 			endPoint <- stringr::str_interp("user_agreements/signatures")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5645,7 +3945,7 @@ Arvados <- R6::R6Class(
 		{
 			endPoint <- stringr::str_interp("user_agreements/sign")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
@@ -5664,15 +3964,16 @@ Arvados <- R6::R6Class(
 		user_agreements.list = function(filters = NULL,
 			where = NULL, order = NULL, select = NULL,
 			distinct = NULL, limit = "100", offset = "0",
-			count = "exact")
+			count = "exact", cluster_id = NULL, bypass_federation = NULL)
 		{
 			endPoint <- stringr::str_interp("user_agreements")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- list(filters = filters, where = where,
 							  order = order, select = select, distinct = distinct,
-							  limit = limit, offset = offset, count = count)
+							  limit = limit, offset = offset, count = count,
+							  cluster_id = cluster_id, bypass_federation = bypass_federation)
 			
 			body <- NULL
 			
@@ -5690,7 +3991,27 @@ Arvados <- R6::R6Class(
 		{
 			endPoint <- stringr::str_interp("user_agreements/new")
 			url <- paste0(private$host, endPoint)
-			headers <- list(Authorization = paste("OAuth2", private$token), 
+			headers <- list(Authorization = paste("Bearer", private$token), 
+			                "Content-Type" = "application/json")
+			queryArgs <- NULL
+			
+			body <- NULL
+			
+			response <- private$REST$http$exec("GET", url, headers, body,
+			                                   queryArgs, private$numRetries)
+			resource <- private$REST$httpParser$parseJSONResponse(response)
+			
+			if(!is.null(resource$errors))
+				stop(resource$errors)
+			
+			resource
+		},
+
+		configs.get = function()
+		{
+			endPoint <- stringr::str_interp("config")
+			url <- paste0(private$host, endPoint)
+			headers <- list(Authorization = paste("Bearer", private$token), 
 			                "Content-Type" = "application/json")
 			queryArgs <- NULL
 			
diff --git a/sdk/R/R/autoGenAPI.R b/sdk/R/R/autoGenAPI.R
index aea64323b..c86684f8b 100644
--- a/sdk/R/R/autoGenAPI.R
+++ b/sdk/R/R/autoGenAPI.R
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: Apache-2.0
 
 getAPIDocument <- function(){
-    url <- "https://ce8i5.arvadosapi.com/discovery/v1/apis/arvados/v1/rest"
+    url <- "https://jutro.arvadosapi.com/discovery/v1/apis/arvados/v1/rest"
     serverResponse <- httr::RETRY("GET", url = url)
 
     httr::content(serverResponse, as = "parsed", type = "application/json")
@@ -17,6 +17,10 @@ generateAPI <- function()
     discoveryDocument <- getAPIDocument()
 
     methodResources <- discoveryDocument$resources
+
+    # Don't emit deprecated APIs
+    methodResources <- methodResources[!(names(methodResources) %in% c("jobs", "job_tasks", "pipeline_templates", "pipeline_instances",
+	    		    "keep_disks", "nodes", "humans", "traits", "specimens"))]
     resourceNames   <- names(methodResources)
 
     methodDoc <- genMethodsDoc(methodResources, resourceNames)
@@ -34,6 +38,10 @@ generateAPI <- function()
                       arvadosAPIFooter)
 
     fileConn <- file("./R/Arvados.R", "w")
+    writeLines(c(
+    "# Copyright (C) The Arvados Authors. All rights reserved.",
+    "#",
+    "# SPDX-License-Identifier: Apache-2.0", ""), fileConn)
     writeLines(unlist(arvadosClass), fileConn)
     close(fileConn)
     NULL
@@ -252,7 +260,7 @@ getRequestURL <- function(methodMetaData)
 
 getRequestHeaders <- function()
 {
-    c("headers <- list(Authorization = paste(\"OAuth2\", private$token), ",
+    c("headers <- list(Authorization = paste(\"Bearer\", private$token), ",
       "                \"Content-Type\" = \"application/json\")")
 }
 

commit 69274f95798389376e00de7f07a9822858c3ee62
Author: Peter Amstutz <peter.amstutz at curii.com>
Date:   Wed Sep 23 16:17:09 2020 -0400

    16827: Fix getFileNamesFromResponse
    
    Update tests.
    
    Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>

diff --git a/sdk/R/R/HttpParser.R b/sdk/R/R/HttpParser.R
index cd492166a..60bf78282 100644
--- a/sdk/R/R/HttpParser.R
+++ b/sdk/R/R/HttpParser.R
@@ -31,14 +31,13 @@ HttpParser <- R6::R6Class(
         {
             text <- rawToChar(response$content)
             doc <- XML::xmlParse(text, asText=TRUE)
-            base <- paste(paste("/", strsplit(uri, "/")[[1]][-1:-3], sep="", collapse=""), "/", sep="")
+            base <- paste("/", strsplit(uri, "/")[[1]][4], "/", sep="")
             result <- unlist(
                 XML::xpathApply(doc, "//D:response/D:href", function(node) {
                     sub(base, "", URLdecode(XML::xmlValue(node)), fixed=TRUE)
                 })
             )
-            result <- result[result != ""]
-            result[-1]
+            result[result != ""]
         },
 
         getFileSizesFromResponse = function(response, uri)
diff --git a/sdk/R/R/RESTService.R b/sdk/R/R/RESTService.R
index 78b2c35e3..9c65e7286 100644
--- a/sdk/R/R/RESTService.R
+++ b/sdk/R/R/RESTService.R
@@ -36,16 +36,13 @@ RESTService <- R6::R6Class(
         {
             if(is.null(private$webDavHostName))
             {
-                discoveryDocumentURL <- paste0("https://", private$rawHostName,
-                                               "/discovery/v1/apis/arvados/v1/rest")
+                publicConfigURL <- paste0("https://", private$rawHostName,
+                                               "/arvados/v1/config")
 
-                headers <- list(Authorization = paste("OAuth2", self$token))
-
-                serverResponse <- self$http$exec("GET", discoveryDocumentURL, headers,
-                                                 retryTimes = self$numRetries)
+                serverResponse <- self$http$exec("GET", publicConfigURL, retryTimes = self$numRetries)
 
-                discoveryDocument <- self$httpParser$parseJSONResponse(serverResponse)
-                private$webDavHostName <- discoveryDocument$keepWebServiceUrl
+                configDocument <- self$httpParser$parseJSONResponse(serverResponse)
+                private$webDavHostName <- configDocument$Services$WebDAVDownload$ExternalURL
 
                 if(is.null(private$webDavHostName))
                     stop("Unable to find WebDAV server.")
@@ -118,7 +115,7 @@ RESTService <- R6::R6Class(
             collectionURL <- URLencode(paste0(self$getWebDavHostName(),
                                               "c=", uuid))
 
-            headers <- list("Authorization" = paste("OAuth2", self$token))
+            headers <- list("Authorization" = paste("Bearer", self$token))
 
             response <- self$http$exec("PROPFIND", collectionURL, headers,
                                        retryTimes = self$numRetries)
diff --git a/sdk/R/R/autoGenAPI.R b/sdk/R/R/autoGenAPI.R
index 1aef20b6c..aea64323b 100644
--- a/sdk/R/R/autoGenAPI.R
+++ b/sdk/R/R/autoGenAPI.R
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: Apache-2.0
 
 getAPIDocument <- function(){
-    url <- "https://4xphq.arvadosapi.com/discovery/v1/apis/arvados/v1/rest"
+    url <- "https://ce8i5.arvadosapi.com/discovery/v1/apis/arvados/v1/rest"
     serverResponse <- httr::RETRY("GET", url = url)
 
     httr::content(serverResponse, as = "parsed", type = "application/json")
diff --git a/sdk/R/tests/testthat/test-ArvadosFile.R b/sdk/R/tests/testthat/test-ArvadosFile.R
index e3457c993..da7d52c67 100644
--- a/sdk/R/tests/testthat/test-ArvadosFile.R
+++ b/sdk/R/tests/testthat/test-ArvadosFile.R
@@ -23,7 +23,7 @@ test_that("get always returns NULL", {
     dog <- ArvadosFile$new("dog")
 
     responseIsNull <- is.null(dog$get("something"))
-    expect_that(responseIsNull, is_true())
+    expect_true(responseIsNull)
 })
 
 test_that("getFirst always returns NULL", {
@@ -31,7 +31,7 @@ test_that("getFirst always returns NULL", {
     dog <- ArvadosFile$new("dog")
 
     responseIsNull <- is.null(dog$getFirst())
-    expect_that(responseIsNull, is_true())
+    expect_true(responseIsNull)
 })
 
 test_that(paste("getSizeInBytes returns zero if arvadosFile",
@@ -266,8 +266,8 @@ test_that("move moves arvados file inside collection tree", {
     dogIsNullOnOldLocation <- is.null(collection$get("animal/dog"))
     dogExistsOnNewLocation <- !is.null(collection$get("dog"))
 
-    expect_that(dogIsNullOnOldLocation, is_true())
-    expect_that(dogExistsOnNewLocation, is_true())
+    expect_true(dogIsNullOnOldLocation)
+    expect_true(dogExistsOnNewLocation)
 })
 
 test_that(paste("copy raises exception if arvados file",
@@ -339,8 +339,8 @@ test_that("copy copies arvados file inside collection tree", {
     dogExistsOnOldLocation <- !is.null(collection$get("animal/dog"))
     dogExistsOnNewLocation <- !is.null(collection$get("dog"))
 
-    expect_that(dogExistsOnOldLocation, is_true())
-    expect_that(dogExistsOnNewLocation, is_true())
+    expect_true(dogExistsOnOldLocation)
+    expect_true(dogExistsOnNewLocation)
 })
 
 test_that("duplicate performs deep cloning of Arvados file", {
diff --git a/sdk/R/tests/testthat/test-Collection.R b/sdk/R/tests/testthat/test-Collection.R
index 636359ae2..20a2ecf05 100644
--- a/sdk/R/tests/testthat/test-Collection.R
+++ b/sdk/R/tests/testthat/test-Collection.R
@@ -86,7 +86,7 @@ test_that(paste("add adds ArvadosFile or Subcollection",
     dog <- collection$get("animal/dog")
     dogExistsInCollection <- !is.null(dog) && dog$getName() == "dog"
 
-    expect_that(dogExistsInCollection, is_true())
+    expect_true(dogExistsInCollection)
     expect_that(fakeREST$createCallCount, equals(1))
 })
 
@@ -119,8 +119,8 @@ test_that(paste("create adds files specified by fileNames",
     dogExistsInCollection <- !is.null(dog) && dog$getName() == "dog"
     catExistsInCollection <- !is.null(cat) && cat$getName() == "cat"
 
-    expect_that(dogExistsInCollection, is_true())
-    expect_that(catExistsInCollection, is_true())
+    expect_true(dogExistsInCollection)
+    expect_true(catExistsInCollection)
     expect_that(fakeREST$createCallCount, equals(2))
 })
 
@@ -168,8 +168,8 @@ test_that(paste("remove removes files specified by paths",
     dogExistsInCollection <- !is.null(dog) && dog$getName() == "dog"
     catExistsInCollection <- !is.null(cat) && cat$getName() == "cat"
 
-    expect_that(dogExistsInCollection, is_false())
-    expect_that(catExistsInCollection, is_false())
+    expect_false(dogExistsInCollection)
+    expect_false(catExistsInCollection)
     expect_that(fakeREST$deleteCallCount, equals(2))
 })
 
@@ -188,8 +188,8 @@ test_that(paste("move moves content to a new location inside file tree",
     dogIsNullOnOldLocation <- is.null(collection$get("animal/dog"))
     dogExistsOnNewLocation <- !is.null(collection$get("dog"))
 
-    expect_that(dogIsNullOnOldLocation, is_true())
-    expect_that(dogExistsOnNewLocation, is_true())
+    expect_true(dogIsNullOnOldLocation)
+    expect_true(dogExistsOnNewLocation)
     expect_that(fakeREST$moveCallCount, equals(1))
 })
 
@@ -219,7 +219,7 @@ test_that("getFileListing returns sorted collection content received from REST s
     contentMatchExpected <- all(collection$getFileListing() ==
                                 c("animal", "animal/fish", "ball"))
 
-    expect_that(contentMatchExpected, is_true())
+    expect_true(contentMatchExpected)
     #2 calls because Collection$new calls getFileListing once
     expect_that(fakeREST$getCollectionContentCallCount, equals(2))
 
@@ -237,7 +237,7 @@ test_that("get returns arvados file or subcollection from internal tree structur
     fish <- collection$get("animal/fish")
     fishIsNotNull <- !is.null(fish)
 
-    expect_that(fishIsNotNull, is_true())
+    expect_true(fishIsNotNull)
     expect_that(fish$getName(), equals("fish"))
 })
 
@@ -256,8 +256,8 @@ test_that(paste("copy copies content to a new location inside file tree",
     dogExistsOnOldLocation <- !is.null(collection$get("animal/dog"))
     dogExistsOnNewLocation <- !is.null(collection$get("dog"))
 
-    expect_that(dogExistsOnOldLocation, is_true())
-    expect_that(dogExistsOnNewLocation, is_true())
+    expect_true(dogExistsOnOldLocation)
+    expect_true(dogExistsOnNewLocation)
     expect_that(fakeREST$copyCallCount, equals(1))
 })
 
diff --git a/sdk/R/tests/testthat/test-CollectionTree.R b/sdk/R/tests/testthat/test-CollectionTree.R
index 1a3aefecd..c4bf9a1da 100644
--- a/sdk/R/tests/testthat/test-CollectionTree.R
+++ b/sdk/R/tests/testthat/test-CollectionTree.R
@@ -34,16 +34,16 @@ test_that("constructor creates file tree from character array properly", {
                                          boat$getCollection()   == "myCollection"
 
     expect_that(root$getName(), equals(""))
-    expect_that(rootIsOfTypeSubcollection, is_true())
-    expect_that(rootHasNoParent, is_true())
-    expect_that(animalIsOfTypeSubcollection, is_true())
-    expect_that(animalsParentIsRoot, is_true())
-    expect_that(animalContainsDog, is_true())
-    expect_that(dogIsOfTypeArvadosFile, is_true())
-    expect_that(dogsParentIsAnimal, is_true())
-    expect_that(boatIsOfTypeArvadosFile, is_true())
-    expect_that(boatsParentIsRoot, is_true())
-    expect_that(allElementsBelongToSameCollection, is_true())
+    expect_true(rootIsOfTypeSubcollection)
+    expect_true(rootHasNoParent)
+    expect_true(animalIsOfTypeSubcollection)
+    expect_true(animalsParentIsRoot)
+    expect_true(animalContainsDog)
+    expect_true(dogIsOfTypeArvadosFile)
+    expect_true(dogsParentIsAnimal)
+    expect_true(boatIsOfTypeArvadosFile)
+    expect_true(boatsParentIsRoot)
+    expect_true(allElementsBelongToSameCollection)
 })
 
 test_that("getElement returns element from tree if element exists on specified path", {
@@ -72,7 +72,7 @@ test_that("getElement returns NULL from tree if element doesn't exists on specif
     fish <- collectionTree$getElement("animal/fish")
     fishIsNULL <- is.null(fish)
 
-    expect_that(fishIsNULL, is_true())
+    expect_true(fishIsNULL)
 })
 
 test_that("getElement trims ./ from start of relativePath", {
diff --git a/sdk/R/tests/testthat/test-HttpParser.R b/sdk/R/tests/testthat/test-HttpParser.R
index 82c0fb0dd..fb9f379b3 100644
--- a/sdk/R/tests/testthat/test-HttpParser.R
+++ b/sdk/R/tests/testthat/test-HttpParser.R
@@ -18,7 +18,7 @@ test_that("parseJSONResponse generates and returns JSON object from server respo
     result <- parser$parseJSONResponse(serverResponse)
     barExists <- !is.null(result$bar)
 
-    expect_that(barExists, is_true())
+    expect_true(barExists)
     expect_that(unlist(result$bar$foo), equals(10))
 })
 
@@ -40,7 +40,7 @@ test_that(paste("parseResponse generates and returns character vector",
 
 webDAVResponseSample =
     paste0("<?xml version=\"1.0\" encoding=\"UTF-8\"?><D:multistatus xmlns:",
-           "D=\"DAV:\"><D:response><D:href>/c=aaaaa-bbbbb-ccccccccccccccc</D",
+           "D=\"DAV:\"><D:response><D:href>/c=aaaaa-bbbbb-ccccccccccccccc/</D",
            ":href><D:propstat><D:prop><D:resourcetype><D:collection xmlns:D=",
            "\"DAV:\"/></D:resourcetype><D:getlastmodified>Fri, 11 Jan 2018 1",
            "1:11:11 GMT</D:getlastmodified><D:displayname></D:displayname><D",
@@ -75,7 +75,7 @@ test_that(paste("getFileNamesFromResponse returns file names belonging to specif
     expectedResult <- "myFile.exe"
     resultMatchExpected <- all.equal(result, expectedResult)
 
-    expect_that(resultMatchExpected, is_true())
+    expect_true(resultMatchExpected)
 })
 
 test_that(paste("getFileSizesFromResponse returns file sizes",
@@ -92,5 +92,5 @@ test_that(paste("getFileSizesFromResponse returns file sizes",
     result <- parser$getFileSizesFromResponse(serverResponse, url)
     resultMatchExpected <- result == expectedResult
 
-    expect_that(resultMatchExpected, is_true())
+    expect_true(resultMatchExpected)
 })
diff --git a/sdk/R/tests/testthat/test-HttpRequest.R b/sdk/R/tests/testthat/test-HttpRequest.R
index f12463c80..eb58d033b 100644
--- a/sdk/R/tests/testthat/test-HttpRequest.R
+++ b/sdk/R/tests/testthat/test-HttpRequest.R
@@ -59,8 +59,8 @@ test_that("exec calls httr functions correctly", {
     http <- HttpRequest$new()
     http$exec("GET", "url")
 
-    expect_that(add_headersCalled, is_true())
-    expect_that(retryCalled, is_true())
+    expect_true(add_headersCalled)
+    expect_true(retryCalled)
     expect_that(expectedConfig$options, equals(list(ssl_verifypeer = 0L)))
 })
 
@@ -101,8 +101,8 @@ test_that("getConnection calls curl functions correctly", {
     http <- HttpRequest$new()
     http$getConnection("location", list(), "r")
 
-    expect_that(new_handleCalled, is_true())
-    expect_that(handle_setheadersCalled, is_true())
-    expect_that(handle_setoptCalled, is_true())
-    expect_that(curlCalled, is_true())
+    expect_true(new_handleCalled)
+    expect_true(handle_setheadersCalled)
+    expect_true(handle_setoptCalled)
+    expect_true(curlCalled)
 })
diff --git a/sdk/R/tests/testthat/test-RESTService.R b/sdk/R/tests/testthat/test-RESTService.R
index 64988e33d..8885ed3de 100644
--- a/sdk/R/tests/testthat/test-RESTService.R
+++ b/sdk/R/tests/testthat/test-RESTService.R
@@ -10,8 +10,8 @@ context("REST service")
 
 test_that("getWebDavHostName calls REST service properly", {
 
-    expectedURL <- "https://host/discovery/v1/apis/arvados/v1/rest"
-    serverResponse <- list(keepWebServiceUrl = "https://myWebDavServer.com")
+    expectedURL <- "https://host/arvados/v1/config"
+    serverResponse <- list(Services = list(WebDAVDownload = list(ExternalURL = "https://myWebDavServer.com")))
     httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
 
     REST <- RESTService$new("token", "host",
@@ -19,14 +19,14 @@ test_that("getWebDavHostName calls REST service properly", {
 
     REST$getWebDavHostName()
 
-    expect_that(httpRequest$URLIsProperlyConfigured, is_true())
-    expect_that(httpRequest$requestHeaderContainsAuthorizationField, is_true())
+    expect_true(httpRequest$URLIsProperlyConfigured)
+    expect_false(httpRequest$requestHeaderContainsAuthorizationField)
     expect_that(httpRequest$numberOfGETRequests, equals(1))
 })
 
 test_that("getWebDavHostName returns webDAV host name properly", {
 
-    serverResponse <- list(keepWebServiceUrl = "https://myWebDavServer.com")
+    serverResponse <- list(Services = list(WebDAVDownload = list(ExternalURL = "https://myWebDavServer.com")))
     httpRequest <- FakeHttpRequest$new(expectedURL = NULL, serverResponse)
 
     REST <- RESTService$new("token", "host",
@@ -48,8 +48,8 @@ test_that("create calls REST service properly", {
 
     REST$create("file", uuid)
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
     expect_that(fakeHttp$numberOfPUTRequests, equals(1))
 })
 
@@ -81,8 +81,8 @@ test_that("delete calls REST service properly", {
 
     REST$delete("file", uuid)
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
     expect_that(fakeHttp$numberOfDELETERequests, equals(1))
 })
 
@@ -114,9 +114,9 @@ test_that("move calls REST service properly", {
 
     REST$move("file", "newDestination/file", uuid)
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
-    expect_that(fakeHttp$requestHeaderContainsDestinationField, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
+    expect_true(fakeHttp$requestHeaderContainsDestinationField)
     expect_that(fakeHttp$numberOfMOVERequests, equals(1))
 })
 
@@ -148,9 +148,9 @@ test_that("copy calls REST service properly", {
 
     REST$copy("file", "newDestination/file", uuid)
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
-    expect_that(fakeHttp$requestHeaderContainsDestinationField, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
+    expect_true(fakeHttp$requestHeaderContainsDestinationField)
     expect_that(fakeHttp$numberOfCOPYRequests, equals(1))
 })
 
@@ -187,8 +187,8 @@ test_that("getCollectionContent retreives correct content from WebDAV server", {
     returnedContentMatchExpected <- all.equal(returnResult,
                                               c("animal", "animal/dog", "ball"))
 
-    expect_that(returnedContentMatchExpected, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
+    expect_true(returnedContentMatchExpected)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
 })
 
 test_that("getCollectionContent raises exception if server returns empty response", {
@@ -266,9 +266,9 @@ test_that("getResourceSize calls REST service properly", {
     returnedContentMatchExpected <- all.equal(returnResult,
                                               c(6, 2, 931, 12003))
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
-    expect_that(returnedContentMatchExpected, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
+    expect_true(returnedContentMatchExpected)
 })
 
 test_that("getResourceSize raises exception if server returns empty response", {
@@ -330,9 +330,9 @@ test_that("read calls REST service properly", {
 
     returnResult <- REST$read("file", uuid, "text", 1024, 512)
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
-    expect_that(fakeHttp$requestHeaderContainsRangeField, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
+    expect_true(fakeHttp$requestHeaderContainsRangeField)
     expect_that(returnResult, equals("file content"))
 })
 
@@ -390,10 +390,10 @@ test_that("write calls REST service properly", {
 
     REST$write("file", uuid, fileContent, "text/html")
 
-    expect_that(fakeHttp$URLIsProperlyConfigured, is_true())
-    expect_that(fakeHttp$requestBodyIsProvided, is_true())
-    expect_that(fakeHttp$requestHeaderContainsAuthorizationField, is_true())
-    expect_that(fakeHttp$requestHeaderContainsContentTypeField, is_true())
+    expect_true(fakeHttp$URLIsProperlyConfigured)
+    expect_true(fakeHttp$requestBodyIsProvided)
+    expect_true(fakeHttp$requestHeaderContainsAuthorizationField)
+    expect_true(fakeHttp$requestHeaderContainsContentTypeField)
 })
 
 test_that("write raises exception if server response code is not between 200 and 300", {
diff --git a/sdk/R/tests/testthat/test-Subcollection.R b/sdk/R/tests/testthat/test-Subcollection.R
index a6e420962..a95247f77 100644
--- a/sdk/R/tests/testthat/test-Subcollection.R
+++ b/sdk/R/tests/testthat/test-Subcollection.R
@@ -37,7 +37,7 @@ test_that(paste("getFileListing by default returns sorted path of all files",
     resultsMatch <- length(expectedResult) == length(result) &&
                     all(expectedResult == result)
 
-    expect_that(resultsMatch, is_true())
+    expect_true(resultsMatch)
 })
 
 test_that(paste("getFileListing returns sorted names of all direct children",
@@ -58,7 +58,7 @@ test_that(paste("getFileListing returns sorted names of all direct children",
     resultsMatch <- length(expectedResult) == length(result) &&
                     all(expectedResult == result)
 
-    expect_that(resultsMatch, is_true())
+    expect_true(resultsMatch)
 })
 
 test_that("add adds content to inside collection tree", {
@@ -73,8 +73,8 @@ test_that("add adds content to inside collection tree", {
     animalContainsFish <- animal$get("fish")$getName() == fish$getName()
     animalContainsDog  <- animal$get("dog")$getName()  == dog$getName()
 
-    expect_that(animalContainsFish, is_true())
-    expect_that(animalContainsDog, is_true())
+    expect_true(animalContainsFish)
+    expect_true(animalContainsDog)
 })
 
 test_that("add raises exception if content name is empty string", {
@@ -143,7 +143,7 @@ test_that("remove removes content from subcollection", {
 
     returnValueAfterRemovalIsNull <- is.null(animal$get("fish"))
 
-    expect_that(returnValueAfterRemovalIsNull, is_true())
+    expect_true(returnValueAfterRemovalIsNull)
 })
 
 test_that(paste("remove raises exception",
@@ -198,10 +198,10 @@ test_that(paste("get returns ArvadosFile or Subcollection",
     returnedFishIsSubcollection <- "Subcollection" %in% class(returnedFish)
     returnedDogIsArvadosFile    <- "ArvadosFile"   %in% class(returnedDog)
 
-    expect_that(returnedFishIsSubcollection, is_true())
+    expect_true(returnedFishIsSubcollection)
     expect_that(returnedFish$getName(), equals("fish"))
 
-    expect_that(returnedDogIsArvadosFile, is_true())
+    expect_true(returnedDogIsArvadosFile)
     expect_that(returnedDog$getName(), equals("dog"))
 })
 
@@ -215,7 +215,7 @@ test_that(paste("get returns NULL if file or folder",
 
     returnedDogIsNull <- is.null(animal$get("dog"))
 
-    expect_that(returnedDogIsNull, is_true())
+    expect_true(returnedDogIsNull)
 })
 
 test_that("getFirst returns first child in the subcollection", {
@@ -234,7 +234,7 @@ test_that("getFirst returns NULL if subcollection contains no children", {
 
     returnedElementIsNull <- is.null(animal$getFirst())
 
-    expect_that(returnedElementIsNull, is_true())
+    expect_true(returnedElementIsNull)
 })
 
 test_that(paste("setCollection by default sets collection",
@@ -261,7 +261,7 @@ test_that(paste("setCollection sets collection filed of subcollection only",
     fishCollectionIsNull <- is.null(fish$getCollection())
 
     expect_that(animal$getCollection(), equals("myCollection"))
-    expect_that(fishCollectionIsNull, is_true())
+    expect_true(fishCollectionIsNull)
 })
 
 test_that(paste("move raises exception if subcollection",
@@ -330,8 +330,8 @@ test_that("move moves subcollection inside collection tree", {
     fishIsNullOnOldLocation <- is.null(collection$get("animal/fish"))
     fishExistsOnNewLocation <- !is.null(collection$get("fish"))
 
-    expect_that(fishIsNullOnOldLocation, is_true())
-    expect_that(fishExistsOnNewLocation, is_true())
+    expect_true(fishIsNullOnOldLocation)
+    expect_true(fishExistsOnNewLocation)
 })
 
 test_that(paste("getSizeInBytes returns zero if subcollection",
@@ -425,8 +425,8 @@ test_that("copy copies subcollection inside collection tree", {
     fishExistsOnOldLocation <- !is.null(collection$get("animal/fish"))
     fishExistsOnNewLocation <- !is.null(collection$get("fish"))
 
-    expect_that(fishExistsOnOldLocation, is_true())
-    expect_that(fishExistsOnNewLocation, is_true())
+    expect_true(fishExistsOnOldLocation)
+    expect_true(fishExistsOnNewLocation)
 })
 
 test_that("duplicate performs deep cloning of Subcollection", {

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list