[ARVADOS] updated: 1.1.3-150-g4dde672

Git user git at public.curoverse.com
Tue Mar 6 10:55:01 EST 2018


Summary of changes:
 build/libcloud-pin.sh                              |    2 +-
 build/run-library.sh                               |    3 +
 build/run-tests.sh                                 |   59 +-
 doc/_includes/_mount_types.liquid                  |    2 +-
 .../install-dispatch.html.textile.liquid           |   45 +-
 lib/dispatchcloud/node_size.go                     |   22 +-
 sdk/R/R/Arvados.R                                  | 2233 +++++++++++++++-----
 sdk/R/R/ArvadosClasses.R                           |  861 ++++++--
 sdk/R/R/Collection.R                               |  101 +-
 sdk/R/R/autoGenAPI.R                               |   35 +-
 sdk/R/man/UserAgreement.Rd                         |    7 +-
 sdk/cwl/arvados_cwl/__init__.py                    |    6 +-
 sdk/cwl/arvados_cwl/arvdocker.py                   |    2 +-
 sdk/cwl/arvados_cwl/arvjob.py                      |    2 +-
 sdk/cwl/arvados_cwl/arvtool.py                     |    2 +-
 sdk/cwl/arvados_cwl/arvworkflow.py                 |   68 +
 sdk/cwl/arvados_cwl/runner.py                      |    3 +-
 sdk/cwl/setup.py                                   |    2 +-
 sdk/cwl/tests/test_container.py                    |   15 +-
 sdk/cwl/tests/test_job.py                          |   81 +-
 sdk/cwl/tests/test_submit.py                       |    2 +-
 sdk/cwl/tests/wf/echo-subwf.cwl                    |   19 +
 sdk/cwl/tests/{secondary/wf.cwl => wf/echo-wf.cwl} |   21 +-
 sdk/cwl/tests/wf/echo_a.cwl                        |   11 +
 sdk/cwl/tests/wf/echo_b.cwl                        |   11 +
 sdk/go/arvados/container.go                        |    3 +
 sdk/ruby/arvados.gemspec                           |    3 +-
 .../crunch-dispatch-slurm/crunch-dispatch-slurm.go |   54 +-
 .../crunch-dispatch-slurm_test.go                  |   40 +-
 services/crunch-dispatch-slurm/priority.go         |   56 +
 services/crunch-dispatch-slurm/priority_test.go    |  143 ++
 services/crunch-dispatch-slurm/slurm.go            |    4 +-
 services/crunch-dispatch-slurm/squeue.go           |   97 +-
 services/crunch-dispatch-slurm/squeue_test.go      |  119 ++
 services/nodemanager/setup.py                      |    7 +-
 35 files changed, 3232 insertions(+), 909 deletions(-)
 create mode 100644 sdk/cwl/tests/wf/echo-subwf.cwl
 copy sdk/cwl/tests/{secondary/wf.cwl => wf/echo-wf.cwl} (53%)
 create mode 100644 sdk/cwl/tests/wf/echo_a.cwl
 create mode 100644 sdk/cwl/tests/wf/echo_b.cwl
 create mode 100644 services/crunch-dispatch-slurm/priority.go
 create mode 100644 services/crunch-dispatch-slurm/priority_test.go
 create mode 100644 services/crunch-dispatch-slurm/squeue_test.go

       via  4dde672661ea9dca680ec9eb1cdba7bd7d87fca7 (commit)
       via  01d25c2665d0966114955b505f140088e97cf9b3 (commit)
       via  1eb2ff90186bb24b6e2ecc73c31e9e2992ce27e9 (commit)
       via  07a09069c579e51c33c6fb267b2e510cc8f98ea8 (commit)
       via  69ae9c5a8d7e2df93ece51afd4eb471c745eb84c (commit)
       via  8e2a634e2b0ef180f30db5322233244b142f93f6 (commit)
       via  9c983060b6f0fc6dc42310587b9858b7f8b968de (commit)
       via  3accec3b0dca797707a46e68e20b69cabf246281 (commit)
       via  64f2f4f50d0096e00e59791cd729bcc14be4aa08 (commit)
       via  cde5fc115a5d543eb6522fdad6e651dfbe857656 (commit)
       via  2bb38adc748cdd792fedb0d89ff70540703c2220 (commit)
       via  f05926dd62535d230a167d0fc5c9cc10e8289883 (commit)
       via  685befa1154009726ff84e6a5ab153080616d527 (commit)
       via  b0a3fa7167c604792de4683d5827b972ce608cd1 (commit)
       via  6074799e56d0c595c2a99b089bd9808f622b491e (commit)
       via  da00fef872b9bc09541b2487866b060f16ac45aa (commit)
       via  cd4c51ffcf09f28cf13605e97260f5a00641527c (commit)
       via  6346a7c4c0cb5d7e8c5f01392b6cc64d329b68ec (commit)
       via  f848ccbeb40ee87f7072b7399545424ecc0369e6 (commit)
       via  921e5feb0deff2f1b420e867faf79a4ecd293350 (commit)
       via  1ec0d70f23bc6f137edf7494b3b3d20c2328845d (commit)
       via  6d27336e8bd1258952cc775ef5b5d291913a06ee (commit)
       via  01fe37c91379764afc9569b5f5b907e79e15001e (commit)
       via  a78ca0e838c13c914367811a6a8fa0ae953a6042 (commit)
       via  88a29cd091468feb98e5cd541c560f4d35bca716 (commit)
       via  5c60c8c56304a0204f4e94128fb3deaae9e9b707 (commit)
       via  52e26b4e8bbbf505d6641becc435a939cee8c285 (commit)
       via  6664c6b18ded2d97e53b0b0a853e2c7a1a86fe1c (commit)
       via  a837c67de6903827f7dfb3b19adfc82c30a87861 (commit)
       via  fce5b69e1504c3421705292c823084f6637d6c11 (commit)
       via  498d29adee40f671fd2924c410226db7a6a0ba93 (commit)
       via  da17cdccd11d66a10cbc3bf7fbd8c84b49d4a67c (commit)
       via  8a2035547ad8bf6abad6a4a03bb0b59211a00932 (commit)
       via  d0d191b2922e4fc5a202c5438c7191a4cc2f6ccc (commit)
       via  54e5ad11af9ee6804c908e49249edf87de7b35dd (commit)
       via  4d4462189a59d9e27e692fc6f84c4f93fa59741d (commit)
      from  2128e03298979fd9aa01365464c7390be5a90c8f (commit)

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 4dde672661ea9dca680ec9eb1cdba7bd7d87fca7
Merge: 01d25c2 1eb2ff9
Author: Fuad Muhic <fmuhic at capeannenterprises.com>
Date:   Tue Mar 6 16:54:44 2018 +0100

    Merge branch 'master' of git.curoverse.com:arvados into 13076-r-autogen-api
    
    Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic at capeannenterprises.com>


commit 01d25c2665d0966114955b505f140088e97cf9b3
Author: Fuad Muhic <fmuhic at capeannenterprises.com>
Date:   Tue Mar 6 16:52:11 2018 +0100

    Added fix for discovery document inconsistency
    
    Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic at capeannenterprises.com>

diff --git a/sdk/R/R/Arvados.R b/sdk/R/R/Arvados.R
index a9b7dc0..2bba602 100644
--- a/sdk/R/R/Arvados.R
+++ b/sdk/R/R/Arvados.R
@@ -2453,9 +2453,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2463,6 +2463,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.index = function(filters = NULL, where = NULL,
@@ -2485,10 +2490,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- UserList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.create = function(user, ensure_unique_name = "false")
@@ -2507,9 +2517,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2517,6 +2527,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.update = function(user, uuid)
@@ -2535,9 +2550,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2545,6 +2560,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.delete = function(uuid)
@@ -2563,9 +2583,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2573,6 +2593,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.current = function()
@@ -2591,9 +2616,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2601,6 +2626,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.system = function()
@@ -2619,9 +2649,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2629,6 +2659,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.activate = function(uuid)
@@ -2647,9 +2682,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2657,6 +2692,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.setup = function(user = NULL, openid_prefix = NULL,
@@ -2678,9 +2718,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2688,6 +2728,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.unsetup = function(uuid)
@@ -2706,9 +2751,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2716,6 +2761,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.update_uuid = function(uuid, new_uuid)
@@ -2734,9 +2784,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2744,6 +2794,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.list = function(filters = NULL, where = NULL,
@@ -2766,10 +2821,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- UserList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.show = function(uuid)
@@ -2788,9 +2848,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2798,6 +2858,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		users.destroy = function(uuid)
@@ -2816,9 +2881,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			User$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- User$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, email = resource$email,
 				first_name = resource$first_name, last_name = resource$last_name,
@@ -2826,6 +2891,11 @@ Arvados <- R6::R6Class(
 				prefs = resource$prefs, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				is_active = resource$is_active, username = resource$username)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.get = function(uuid)
@@ -2844,7 +2914,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -2853,6 +2923,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.index = function(filters = NULL,
@@ -2876,10 +2951,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorizationList$new(kind = resource$kind,
+			result <- ApiClientAuthorizationList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.create = function(api_client_authorization,
@@ -2899,7 +2979,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -2908,6 +2988,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.update = function(api_client_authorization, uuid)
@@ -2926,7 +3011,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -2935,6 +3020,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.delete = function(uuid)
@@ -2953,7 +3043,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -2962,6 +3052,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.create_system_auth = function(api_client_id = NULL, scopes = NULL)
@@ -2981,7 +3076,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -2990,6 +3085,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.current = function()
@@ -3008,7 +3108,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -3017,6 +3117,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.list = function(filters = NULL,
@@ -3040,10 +3145,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorizationList$new(kind = resource$kind,
+			result <- ApiClientAuthorizationList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.show = function(uuid)
@@ -3062,7 +3172,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -3071,6 +3181,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_client_authorizations.destroy = function(uuid)
@@ -3089,7 +3204,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientAuthorization$new(uuid = resource$uuid,
+			result <- ApiClientAuthorization$new(uuid = resource$uuid,
 				etag = resource$etag, api_token = resource$api_token,
 				api_client_id = resource$api_client_id, user_id = resource$user_id,
 				created_by_ip_address = resource$created_by_ip_address,
@@ -3098,6 +3213,11 @@ Arvados <- R6::R6Class(
 				created_at = resource$created_at, updated_at = resource$updated_at,
 				default_owner_uuid = resource$default_owner_uuid,
 				scopes = resource$scopes)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.get = function(uuid)
@@ -3116,12 +3236,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClient$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- ApiClient$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				url_prefix = resource$url_prefix, created_at = resource$created_at,
 				updated_at = resource$updated_at, is_trusted = resource$is_trusted)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.index = function(filters = NULL,
@@ -3145,10 +3271,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- ApiClientList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.create = function(api_client, ensure_unique_name = "false")
@@ -3167,12 +3298,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClient$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- ApiClient$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				url_prefix = resource$url_prefix, created_at = resource$created_at,
 				updated_at = resource$updated_at, is_trusted = resource$is_trusted)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.update = function(api_client, uuid)
@@ -3191,12 +3328,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClient$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- ApiClient$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				url_prefix = resource$url_prefix, created_at = resource$created_at,
 				updated_at = resource$updated_at, is_trusted = resource$is_trusted)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.delete = function(uuid)
@@ -3215,12 +3358,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClient$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- ApiClient$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				url_prefix = resource$url_prefix, created_at = resource$created_at,
 				updated_at = resource$updated_at, is_trusted = resource$is_trusted)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.list = function(filters = NULL,
@@ -3244,10 +3393,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClientList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- ApiClientList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.show = function(uuid)
@@ -3266,12 +3420,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClient$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- ApiClient$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				url_prefix = resource$url_prefix, created_at = resource$created_at,
 				updated_at = resource$updated_at, is_trusted = resource$is_trusted)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		api_clients.destroy = function(uuid)
@@ -3290,12 +3450,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ApiClient$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- ApiClient$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				url_prefix = resource$url_prefix, created_at = resource$created_at,
 				updated_at = resource$updated_at, is_trusted = resource$is_trusted)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.get = function(uuid)
@@ -3314,7 +3480,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequest$new(uuid = resource$uuid,
+			result <- ContainerRequest$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_at = resource$modified_at,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
@@ -3334,6 +3500,11 @@ Arvados <- R6::R6Class(
 				use_existing = resource$use_existing, scheduling_parameters = resource$scheduling_parameters,
 				output_uuid = resource$output_uuid, log_uuid = resource$log_uuid,
 				output_name = resource$output_name, output_ttl = resource$output_ttl)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.index = function(filters = NULL,
@@ -3357,10 +3528,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequestList$new(kind = resource$kind,
+			result <- ContainerRequestList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.create = function(container_request,
@@ -3380,7 +3556,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequest$new(uuid = resource$uuid,
+			result <- ContainerRequest$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_at = resource$modified_at,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
@@ -3400,6 +3576,11 @@ Arvados <- R6::R6Class(
 				use_existing = resource$use_existing, scheduling_parameters = resource$scheduling_parameters,
 				output_uuid = resource$output_uuid, log_uuid = resource$log_uuid,
 				output_name = resource$output_name, output_ttl = resource$output_ttl)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.update = function(container_request, uuid)
@@ -3418,7 +3599,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequest$new(uuid = resource$uuid,
+			result <- ContainerRequest$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_at = resource$modified_at,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
@@ -3438,6 +3619,11 @@ Arvados <- R6::R6Class(
 				use_existing = resource$use_existing, scheduling_parameters = resource$scheduling_parameters,
 				output_uuid = resource$output_uuid, log_uuid = resource$log_uuid,
 				output_name = resource$output_name, output_ttl = resource$output_ttl)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.delete = function(uuid)
@@ -3456,7 +3642,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequest$new(uuid = resource$uuid,
+			result <- ContainerRequest$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_at = resource$modified_at,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
@@ -3476,6 +3662,11 @@ Arvados <- R6::R6Class(
 				use_existing = resource$use_existing, scheduling_parameters = resource$scheduling_parameters,
 				output_uuid = resource$output_uuid, log_uuid = resource$log_uuid,
 				output_name = resource$output_name, output_ttl = resource$output_ttl)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.list = function(filters = NULL,
@@ -3499,10 +3690,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequestList$new(kind = resource$kind,
+			result <- ContainerRequestList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.show = function(uuid)
@@ -3521,7 +3717,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequest$new(uuid = resource$uuid,
+			result <- ContainerRequest$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_at = resource$modified_at,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
@@ -3541,6 +3737,11 @@ Arvados <- R6::R6Class(
 				use_existing = resource$use_existing, scheduling_parameters = resource$scheduling_parameters,
 				output_uuid = resource$output_uuid, log_uuid = resource$log_uuid,
 				output_name = resource$output_name, output_ttl = resource$output_ttl)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		container_requests.destroy = function(uuid)
@@ -3559,7 +3760,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerRequest$new(uuid = resource$uuid,
+			result <- ContainerRequest$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_at = resource$modified_at,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
@@ -3579,6 +3780,11 @@ Arvados <- R6::R6Class(
 				use_existing = resource$use_existing, scheduling_parameters = resource$scheduling_parameters,
 				output_uuid = resource$output_uuid, log_uuid = resource$log_uuid,
 				output_name = resource$output_name, output_ttl = resource$output_ttl)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.get = function(uuid)
@@ -3597,13 +3803,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKey$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- AuthorizedKey$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				key_type = resource$key_type, authorized_user_uuid = resource$authorized_user_uuid,
 				public_key = resource$public_key, expires_at = resource$expires_at,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.index = function(filters = NULL,
@@ -3627,10 +3839,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKeyList$new(kind = resource$kind,
+			result <- AuthorizedKeyList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.create = function(authorized_key,
@@ -3650,13 +3867,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKey$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- AuthorizedKey$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				key_type = resource$key_type, authorized_user_uuid = resource$authorized_user_uuid,
 				public_key = resource$public_key, expires_at = resource$expires_at,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.update = function(authorized_key, uuid)
@@ -3675,13 +3898,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKey$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- AuthorizedKey$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				key_type = resource$key_type, authorized_user_uuid = resource$authorized_user_uuid,
 				public_key = resource$public_key, expires_at = resource$expires_at,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.delete = function(uuid)
@@ -3700,13 +3929,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKey$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- AuthorizedKey$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				key_type = resource$key_type, authorized_user_uuid = resource$authorized_user_uuid,
 				public_key = resource$public_key, expires_at = resource$expires_at,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.list = function(filters = NULL,
@@ -3730,10 +3965,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKeyList$new(kind = resource$kind,
+			result <- AuthorizedKeyList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.show = function(uuid)
@@ -3752,13 +3992,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKey$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- AuthorizedKey$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				key_type = resource$key_type, authorized_user_uuid = resource$authorized_user_uuid,
 				public_key = resource$public_key, expires_at = resource$expires_at,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		authorized_keys.destroy = function(uuid)
@@ -3777,13 +4023,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			AuthorizedKey$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- AuthorizedKey$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				key_type = resource$key_type, authorized_user_uuid = resource$authorized_user_uuid,
 				public_key = resource$public_key, expires_at = resource$expires_at,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.get = function(uuid)
@@ -3802,7 +4054,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -3814,10 +4066,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
 			
-			collection$setRESTService(private$REST)
-			collection
+			result$setRESTService(private$REST)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.index = function(filters = NULL,
@@ -3842,10 +4100,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			CollectionList$new(kind = resource$kind,
+			result <- CollectionList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.create = function(collection, ensure_unique_name = "false")
@@ -3864,7 +4127,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -3876,10 +4139,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
 			
-			collection$setRESTService(private$REST)
-			collection
+			result$setRESTService(private$REST)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.update = function(collection, uuid)
@@ -3898,7 +4167,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -3910,10 +4179,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			result$setRESTService(private$REST)
 			
-			collection$setRESTService(private$REST)
-			collection
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.delete = function(uuid)
@@ -3932,7 +4207,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -3944,10 +4219,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
 			
-			collection$setRESTService(private$REST)
-			collection
+			result$setRESTService(private$REST)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.provenance = function(uuid)
@@ -3966,7 +4247,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -3978,10 +4259,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			result$setRESTService(private$REST)
 			
-			collection$setRESTService(private$REST)
-			collection
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.used_by = function(uuid)
@@ -4000,7 +4287,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -4012,10 +4299,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
 			
-			collection$setRESTService(private$REST)
-			collection
+			result$setRESTService(private$REST)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.trash = function(uuid)
@@ -4034,7 +4327,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -4046,10 +4339,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			result$setRESTService(private$REST)
 			
-			collection$setRESTService(private$REST)
-			collection
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.untrash = function(uuid)
@@ -4068,7 +4367,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -4080,10 +4379,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
 			
-			collection$setRESTService(private$REST)
-			collection
+			result$setRESTService(private$REST)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.list = function(filters = NULL,
@@ -4108,10 +4413,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			CollectionList$new(kind = resource$kind,
+			result <- CollectionList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.show = function(uuid)
@@ -4130,7 +4440,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -4142,10 +4452,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
 			
-			collection$setRESTService(private$REST)
-			collection
+			result$setRESTService(private$REST)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		collections.destroy = function(uuid)
@@ -4164,7 +4480,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			collection <- Collection$new(uuid = resource$uuid,
+			result <- Collection$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -4176,10 +4492,16 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			result$setRESTService(private$REST)
 			
-			collection$setRESTService(private$REST)
-			collection
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.get = function(uuid)
@@ -4198,9 +4520,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4212,6 +4535,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.index = function(filters = NULL,
@@ -4235,10 +4563,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- ContainerList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.create = function(container, ensure_unique_name = "false")
@@ -4257,9 +4590,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4271,6 +4605,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.update = function(container, uuid)
@@ -4289,9 +4628,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4303,6 +4643,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.delete = function(uuid)
@@ -4321,9 +4666,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4335,6 +4681,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.auth = function(uuid)
@@ -4353,9 +4704,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4367,6 +4719,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.lock = function(uuid)
@@ -4385,9 +4742,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4399,6 +4757,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.unlock = function(uuid)
@@ -4417,9 +4780,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4431,6 +4795,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.current = function()
@@ -4449,9 +4818,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4463,6 +4833,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.list = function(filters = NULL,
@@ -4486,10 +4861,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			ContainerList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- ContainerList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.show = function(uuid)
@@ -4508,9 +4888,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4522,6 +4903,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		containers.destroy = function(uuid)
@@ -4540,9 +4926,10 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Container$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Container$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				state = resource$state, started_at = resource$started_at,
 				finished_at = resource$finished_at, log = resource$log,
@@ -4554,6 +4941,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, exit_code = resource$exit_code,
 				auth_uuid = resource$auth_uuid, locked_by_uuid = resource$locked_by_uuid,
 				scheduling_parameters = resource$scheduling_parameters)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.get = function(uuid)
@@ -4572,11 +4964,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Human$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Human$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, properties = resource$properties,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.index = function(filters = NULL, where = NULL,
@@ -4599,10 +4997,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			HumanList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- HumanList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.create = function(human, ensure_unique_name = "false")
@@ -4621,11 +5024,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Human$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Human$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, properties = resource$properties,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.update = function(human, uuid)
@@ -4644,11 +5053,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Human$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Human$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, properties = resource$properties,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.delete = function(uuid)
@@ -4667,11 +5082,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Human$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Human$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, properties = resource$properties,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.list = function(filters = NULL, where = NULL,
@@ -4694,10 +5115,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			HumanList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- HumanList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.show = function(uuid)
@@ -4716,11 +5142,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Human$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Human$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, properties = resource$properties,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		humans.destroy = function(uuid)
@@ -4739,11 +5171,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Human$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Human$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, properties = resource$properties,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.get = function(uuid)
@@ -4762,8 +5200,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTask$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- JobTask$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, job_uuid = resource$job_uuid,
 				sequence = resource$sequence, parameters = resource$parameters,
@@ -4772,6 +5211,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, created_by_job_task_uuid = resource$created_by_job_task_uuid,
 				qsequence = resource$qsequence, started_at = resource$started_at,
 				finished_at = resource$finished_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.index = function(filters = NULL,
@@ -4795,10 +5239,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTaskList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- JobTaskList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.create = function(job_task, ensure_unique_name = "false")
@@ -4817,8 +5266,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTask$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- JobTask$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, job_uuid = resource$job_uuid,
 				sequence = resource$sequence, parameters = resource$parameters,
@@ -4827,6 +5277,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, created_by_job_task_uuid = resource$created_by_job_task_uuid,
 				qsequence = resource$qsequence, started_at = resource$started_at,
 				finished_at = resource$finished_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.update = function(job_task, uuid)
@@ -4845,8 +5300,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTask$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- JobTask$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, job_uuid = resource$job_uuid,
 				sequence = resource$sequence, parameters = resource$parameters,
@@ -4855,6 +5311,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, created_by_job_task_uuid = resource$created_by_job_task_uuid,
 				qsequence = resource$qsequence, started_at = resource$started_at,
 				finished_at = resource$finished_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.delete = function(uuid)
@@ -4873,8 +5334,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTask$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- JobTask$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, job_uuid = resource$job_uuid,
 				sequence = resource$sequence, parameters = resource$parameters,
@@ -4883,6 +5345,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, created_by_job_task_uuid = resource$created_by_job_task_uuid,
 				qsequence = resource$qsequence, started_at = resource$started_at,
 				finished_at = resource$finished_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.list = function(filters = NULL,
@@ -4906,10 +5373,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTaskList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- JobTaskList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.show = function(uuid)
@@ -4928,8 +5400,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTask$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- JobTask$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, job_uuid = resource$job_uuid,
 				sequence = resource$sequence, parameters = resource$parameters,
@@ -4938,6 +5411,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, created_by_job_task_uuid = resource$created_by_job_task_uuid,
 				qsequence = resource$qsequence, started_at = resource$started_at,
 				finished_at = resource$finished_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		job_tasks.destroy = function(uuid)
@@ -4956,8 +5434,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobTask$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- JobTask$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, job_uuid = resource$job_uuid,
 				sequence = resource$sequence, parameters = resource$parameters,
@@ -4966,6 +5445,11 @@ Arvados <- R6::R6Class(
 				updated_at = resource$updated_at, created_by_job_task_uuid = resource$created_by_job_task_uuid,
 				qsequence = resource$qsequence, started_at = resource$started_at,
 				finished_at = resource$finished_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.get = function(uuid)
@@ -4984,14 +5468,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.index = function(filters = NULL, where = NULL,
@@ -5014,10 +5503,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			LinkList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- LinkList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.create = function(link, ensure_unique_name = "false")
@@ -5036,14 +5530,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.update = function(link, uuid)
@@ -5062,14 +5561,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.delete = function(uuid)
@@ -5088,14 +5592,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.list = function(filters = NULL, where = NULL,
@@ -5118,10 +5627,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			LinkList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- LinkList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.show = function(uuid)
@@ -5140,14 +5654,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.destroy = function(uuid)
@@ -5166,14 +5685,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		links.get_permissions = function(uuid)
@@ -5192,14 +5716,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Link$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Link$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, tail_uuid = resource$tail_uuid,
 				link_class = resource$link_class, name = resource$name,
 				head_uuid = resource$head_uuid, properties = resource$properties,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.get = function(uuid)
@@ -5218,7 +5747,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5239,6 +5768,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.index = function(filters = NULL, where = NULL,
@@ -5261,10 +5795,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- JobList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.create = function(job, ensure_unique_name = "false",
@@ -5288,7 +5827,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5309,6 +5848,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.update = function(job, uuid)
@@ -5327,7 +5871,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5348,6 +5892,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.delete = function(uuid)
@@ -5366,7 +5915,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5387,6 +5936,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.queue = function(filters = NULL, where = NULL,
@@ -5409,7 +5963,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5430,6 +5984,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.queue_size = function()
@@ -5448,7 +6007,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5469,6 +6028,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.cancel = function(uuid)
@@ -5487,7 +6051,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5508,6 +6072,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.lock = function(uuid)
@@ -5526,7 +6095,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5547,6 +6116,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.list = function(filters = NULL, where = NULL,
@@ -5569,10 +6143,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			JobList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- JobList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.show = function(uuid)
@@ -5591,7 +6170,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5612,6 +6191,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		jobs.destroy = function(uuid)
@@ -5630,7 +6214,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Job$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Job$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, submit_id = resource$submit_id,
@@ -5651,6 +6235,11 @@ Arvados <- R6::R6Class(
 				priority = resource$priority, description = resource$description,
 				state = resource$state, arvados_sdk_version = resource$arvados_sdk_version,
 				components = resource$components, script_parameters_digest = resource$script_parameters_digest)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.get = function(uuid)
@@ -5669,8 +6258,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5679,6 +6269,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.index = function(filters = NULL,
@@ -5702,10 +6297,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDiskList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- KeepDiskList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.create = function(keep_disk, ensure_unique_name = "false")
@@ -5724,8 +6324,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5734,6 +6335,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.update = function(keep_disk, uuid)
@@ -5752,8 +6358,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5762,6 +6369,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.delete = function(uuid)
@@ -5780,8 +6392,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5790,6 +6403,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.ping = function(uuid = NULL, ping_secret,
@@ -5813,8 +6431,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5823,6 +6442,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.list = function(filters = NULL,
@@ -5846,10 +6470,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDiskList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- KeepDiskList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.show = function(uuid)
@@ -5868,8 +6497,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5878,6 +6508,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_disks.destroy = function(uuid)
@@ -5896,8 +6531,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepDisk$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepDisk$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, ping_secret = resource$ping_secret,
 				node_uuid = resource$node_uuid, filesystem_uuid = resource$filesystem_uuid,
@@ -5906,6 +6542,11 @@ Arvados <- R6::R6Class(
 				last_read_at = resource$last_read_at, last_write_at = resource$last_write_at,
 				last_ping_at = resource$last_ping_at, created_at = resource$created_at,
 				updated_at = resource$updated_at, keep_service_uuid = resource$keep_service_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.get = function(uuid)
@@ -5924,13 +6565,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.index = function(filters = NULL,
@@ -5954,10 +6601,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepServiceList$new(kind = resource$kind,
+			result <- KeepServiceList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.create = function(keep_service,
@@ -5977,13 +6629,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.update = function(keep_service, uuid)
@@ -6002,13 +6660,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.delete = function(uuid)
@@ -6027,13 +6691,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.accessible = function()
@@ -6052,13 +6722,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.list = function(filters = NULL,
@@ -6082,10 +6758,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepServiceList$new(kind = resource$kind,
+			result <- KeepServiceList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.show = function(uuid)
@@ -6104,13 +6785,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		keep_services.destroy = function(uuid)
@@ -6129,13 +6816,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			KeepService$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- KeepService$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, service_host = resource$service_host,
 				service_port = resource$service_port, service_ssl_flag = resource$service_ssl_flag,
 				service_type = resource$service_type, created_at = resource$created_at,
 				updated_at = resource$updated_at, read_only = resource$read_only)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.get = function(uuid)
@@ -6154,13 +6847,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplate$new(uuid = resource$uuid,
+			result <- PipelineTemplate$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				components = resource$components, updated_at = resource$updated_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.index = function(filters = NULL,
@@ -6184,10 +6882,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplateList$new(kind = resource$kind,
+			result <- PipelineTemplateList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.create = function(pipeline_template,
@@ -6207,13 +6910,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplate$new(uuid = resource$uuid,
+			result <- PipelineTemplate$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				components = resource$components, updated_at = resource$updated_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.update = function(pipeline_template, uuid)
@@ -6232,13 +6940,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplate$new(uuid = resource$uuid,
+			result <- PipelineTemplate$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				components = resource$components, updated_at = resource$updated_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.delete = function(uuid)
@@ -6257,13 +6970,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplate$new(uuid = resource$uuid,
+			result <- PipelineTemplate$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				components = resource$components, updated_at = resource$updated_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.list = function(filters = NULL,
@@ -6287,10 +7005,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplateList$new(kind = resource$kind,
+			result <- PipelineTemplateList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.show = function(uuid)
@@ -6309,13 +7032,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplate$new(uuid = resource$uuid,
+			result <- PipelineTemplate$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				components = resource$components, updated_at = resource$updated_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_templates.destroy = function(uuid)
@@ -6334,13 +7062,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineTemplate$new(uuid = resource$uuid,
+			result <- PipelineTemplate$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				components = resource$components, updated_at = resource$updated_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.get = function(uuid)
@@ -6359,7 +7092,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6369,6 +7102,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.index = function(filters = NULL,
@@ -6392,10 +7130,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstanceList$new(kind = resource$kind,
+			result <- PipelineInstanceList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.create = function(pipeline_instance,
@@ -6415,7 +7158,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6425,6 +7168,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.update = function(pipeline_instance, uuid)
@@ -6443,7 +7191,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6453,6 +7201,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.delete = function(uuid)
@@ -6471,7 +7224,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6481,6 +7234,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.cancel = function(uuid)
@@ -6499,7 +7257,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6509,6 +7267,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.list = function(filters = NULL,
@@ -6532,10 +7295,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstanceList$new(kind = resource$kind,
+			result <- PipelineInstanceList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.show = function(uuid)
@@ -6554,7 +7322,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6564,6 +7332,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		pipeline_instances.destroy = function(uuid)
@@ -6582,7 +7355,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			PipelineInstance$new(uuid = resource$uuid,
+			result <- PipelineInstance$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
@@ -6592,6 +7365,11 @@ Arvados <- R6::R6Class(
 				state = resource$state, components_summary = resource$components_summary,
 				started_at = resource$started_at, finished_at = resource$finished_at,
 				description = resource$description)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.get = function(uuid)
@@ -6610,9 +7388,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6620,6 +7398,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.index = function(filters = NULL, where = NULL,
@@ -6642,10 +7425,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			NodeList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- NodeList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.create = function(node, ensure_unique_name = "false",
@@ -6666,9 +7454,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6676,6 +7464,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.update = function(node, uuid, assign_slot = NULL)
@@ -6694,9 +7487,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6704,6 +7497,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.delete = function(uuid)
@@ -6722,9 +7520,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6732,6 +7530,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.ping = function(uuid, ping_secret)
@@ -6750,9 +7553,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6760,6 +7563,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.list = function(filters = NULL, where = NULL,
@@ -6782,10 +7590,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			NodeList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- NodeList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.show = function(uuid)
@@ -6804,9 +7617,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6814,6 +7627,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		nodes.destroy = function(uuid)
@@ -6832,9 +7650,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Node$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Node$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, slot_number = resource$slot_number,
 				hostname = resource$hostname, domain = resource$domain,
@@ -6842,6 +7660,11 @@ Arvados <- R6::R6Class(
 				last_ping_at = resource$last_ping_at, info = resource$info,
 				updated_at = resource$updated_at, properties = resource$properties,
 				job_uuid = resource$job_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.get = function(uuid)
@@ -6860,11 +7683,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.index = function(filters = NULL,
@@ -6888,10 +7717,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			RepositoryList$new(kind = resource$kind,
+			result <- RepositoryList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.create = function(repository, ensure_unique_name = "false")
@@ -6910,11 +7744,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.update = function(repository, uuid)
@@ -6933,11 +7773,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.delete = function(uuid)
@@ -6956,11 +7802,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.get_all_permissions = function()
@@ -6979,11 +7831,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.list = function(filters = NULL,
@@ -7007,10 +7865,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			RepositoryList$new(kind = resource$kind,
+			result <- RepositoryList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.show = function(uuid)
@@ -7029,11 +7892,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		repositories.destroy = function(uuid)
@@ -7052,11 +7921,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Repository$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Repository$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.get = function(uuid)
@@ -7075,12 +7950,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Specimen$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Specimen$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, material = resource$material,
 				updated_at = resource$updated_at, properties = resource$properties)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.index = function(filters = NULL,
@@ -7104,10 +7984,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			SpecimenList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- SpecimenList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.create = function(specimen, ensure_unique_name = "false")
@@ -7126,12 +8011,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Specimen$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Specimen$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, material = resource$material,
 				updated_at = resource$updated_at, properties = resource$properties)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.update = function(specimen, uuid)
@@ -7150,12 +8040,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Specimen$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Specimen$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, material = resource$material,
 				updated_at = resource$updated_at, properties = resource$properties)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.delete = function(uuid)
@@ -7174,12 +8069,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Specimen$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Specimen$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, material = resource$material,
 				updated_at = resource$updated_at, properties = resource$properties)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.list = function(filters = NULL,
@@ -7203,10 +8103,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			SpecimenList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- SpecimenList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.show = function(uuid)
@@ -7225,12 +8130,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Specimen$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Specimen$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, material = resource$material,
 				updated_at = resource$updated_at, properties = resource$properties)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		specimens.destroy = function(uuid)
@@ -7249,12 +8159,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Specimen$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Specimen$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, material = resource$material,
 				updated_at = resource$updated_at, properties = resource$properties)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.get = function(uuid)
@@ -7273,7 +8188,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Log$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Log$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				object_uuid = resource$object_uuid, event_at = resource$event_at,
@@ -7281,6 +8196,11 @@ Arvados <- R6::R6Class(
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at, modified_at = resource$modified_at,
 				object_owner_uuid = resource$object_owner_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.index = function(filters = NULL, where = NULL,
@@ -7303,10 +8223,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			LogList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- LogList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.create = function(log, ensure_unique_name = "false")
@@ -7325,7 +8250,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Log$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Log$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				object_uuid = resource$object_uuid, event_at = resource$event_at,
@@ -7333,6 +8258,11 @@ Arvados <- R6::R6Class(
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at, modified_at = resource$modified_at,
 				object_owner_uuid = resource$object_owner_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.update = function(log, uuid)
@@ -7351,7 +8281,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Log$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Log$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				object_uuid = resource$object_uuid, event_at = resource$event_at,
@@ -7359,6 +8289,11 @@ Arvados <- R6::R6Class(
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at, modified_at = resource$modified_at,
 				object_owner_uuid = resource$object_owner_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.delete = function(uuid)
@@ -7377,7 +8312,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Log$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Log$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				object_uuid = resource$object_uuid, event_at = resource$event_at,
@@ -7385,6 +8320,11 @@ Arvados <- R6::R6Class(
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at, modified_at = resource$modified_at,
 				object_owner_uuid = resource$object_owner_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.list = function(filters = NULL, where = NULL,
@@ -7407,10 +8347,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			LogList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- LogList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.show = function(uuid)
@@ -7429,7 +8374,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Log$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Log$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				object_uuid = resource$object_uuid, event_at = resource$event_at,
@@ -7437,6 +8382,11 @@ Arvados <- R6::R6Class(
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at, modified_at = resource$modified_at,
 				object_owner_uuid = resource$object_owner_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		logs.destroy = function(uuid)
@@ -7455,7 +8405,7 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Log$new(uuid = resource$uuid, etag = resource$etag,
+			result <- Log$new(uuid = resource$uuid, etag = resource$etag,
 				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				object_uuid = resource$object_uuid, event_at = resource$event_at,
@@ -7463,6 +8413,11 @@ Arvados <- R6::R6Class(
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at, modified_at = resource$modified_at,
 				object_owner_uuid = resource$object_owner_uuid)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.get = function(uuid)
@@ -7481,12 +8436,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Trait$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Trait$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.index = function(filters = NULL, where = NULL,
@@ -7509,10 +8470,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			TraitList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- TraitList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.create = function(trait, ensure_unique_name = "false")
@@ -7531,12 +8497,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Trait$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Trait$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.update = function(trait, uuid)
@@ -7555,12 +8527,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Trait$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Trait$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.delete = function(uuid)
@@ -7579,12 +8557,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Trait$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Trait$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.list = function(filters = NULL, where = NULL,
@@ -7607,10 +8591,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			TraitList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- TraitList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.show = function(uuid)
@@ -7629,12 +8618,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Trait$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Trait$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		traits.destroy = function(uuid)
@@ -7653,12 +8648,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Trait$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Trait$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				properties = resource$properties, created_at = resource$created_at,
 				updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.get = function(uuid)
@@ -7677,12 +8678,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.index = function(filters = NULL,
@@ -7706,10 +8712,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachineList$new(kind = resource$kind,
+			result <- VirtualMachineList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.create = function(virtual_machine,
@@ -7729,12 +8740,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.update = function(virtual_machine, uuid)
@@ -7753,12 +8769,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.delete = function(uuid)
@@ -7777,12 +8798,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.logins = function(uuid)
@@ -7801,12 +8827,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.get_all_logins = function()
@@ -7825,12 +8856,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.list = function(filters = NULL,
@@ -7854,10 +8890,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachineList$new(kind = resource$kind,
+			result <- VirtualMachineList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.show = function(uuid)
@@ -7876,12 +8917,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		virtual_machines.destroy = function(uuid)
@@ -7900,12 +8946,17 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			VirtualMachine$new(uuid = resource$uuid,
+			result <- VirtualMachine$new(uuid = resource$uuid,
 				etag = resource$etag, owner_uuid = resource$owner_uuid,
 				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, hostname = resource$hostname,
 				created_at = resource$created_at, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.get = function(uuid)
@@ -7924,12 +8975,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Workflow$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Workflow$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				name = resource$name, description = resource$description,
 				definition = resource$definition, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.index = function(filters = NULL,
@@ -7953,10 +9010,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			WorkflowList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- WorkflowList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.create = function(workflow, ensure_unique_name = "false")
@@ -7975,12 +9037,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Workflow$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Workflow$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				name = resource$name, description = resource$description,
 				definition = resource$definition, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.update = function(workflow, uuid)
@@ -7999,12 +9067,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Workflow$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Workflow$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				name = resource$name, description = resource$description,
 				definition = resource$definition, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.delete = function(uuid)
@@ -8023,12 +9097,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Workflow$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Workflow$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				name = resource$name, description = resource$description,
 				definition = resource$definition, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.list = function(filters = NULL,
@@ -8052,10 +9132,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			WorkflowList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- WorkflowList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.show = function(uuid)
@@ -8074,12 +9159,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Workflow$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Workflow$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				name = resource$name, description = resource$description,
 				definition = resource$definition, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		workflows.destroy = function(uuid)
@@ -8098,12 +9189,18 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Workflow$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_at = resource$modified_at, modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Workflow$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_at = resource$modified_at,
+				modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				name = resource$name, description = resource$description,
 				definition = resource$definition, updated_at = resource$updated_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.get = function(uuid)
@@ -8122,14 +9219,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.index = function(filters = NULL, where = NULL,
@@ -8154,10 +9256,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			GroupList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- GroupList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.create = function(group, ensure_unique_name = "false")
@@ -8176,14 +9283,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.update = function(group, uuid)
@@ -8202,14 +9314,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.delete = function(uuid)
@@ -8228,14 +9345,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.contents = function(filters = NULL,
@@ -8260,14 +9382,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.trash = function(uuid)
@@ -8286,14 +9413,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.untrash = function(uuid)
@@ -8312,14 +9444,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.list = function(filters = NULL, where = NULL,
@@ -8344,10 +9481,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			GroupList$new(kind = resource$kind, etag = resource$etag,
-				items = resource$items, next_link = resource$next_link,
-				next_page_token = resource$next_page_token,
+			result <- GroupList$new(kind = resource$kind,
+				etag = resource$etag, items = resource$items,
+				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.show = function(uuid)
@@ -8366,14 +9508,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		groups.destroy = function(uuid)
@@ -8392,14 +9539,19 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			Group$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- Group$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, name = resource$name,
 				description = resource$description, updated_at = resource$updated_at,
 				group_class = resource$group_class, trash_at = resource$trash_at,
 				is_trashed = resource$is_trashed, delete_at = resource$delete_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.get = function(uuid)
@@ -8418,9 +9570,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8430,7 +9582,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.index = function(filters = NULL,
@@ -8454,10 +9613,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreementList$new(kind = resource$kind,
+			result <- UserAgreementList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.create = function(user_agreement,
@@ -8477,9 +9641,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8489,7 +9653,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.update = function(user_agreement, uuid)
@@ -8508,9 +9679,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8520,7 +9691,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.delete = function(uuid)
@@ -8539,9 +9717,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8551,7 +9729,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.signatures = function()
@@ -8570,9 +9755,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8582,7 +9767,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.sign = function()
@@ -8601,9 +9793,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8613,7 +9805,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.list = function(filters = NULL,
@@ -8637,10 +9836,15 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreementList$new(kind = resource$kind,
+			result <- UserAgreementList$new(kind = resource$kind,
 				etag = resource$etag, items = resource$items,
 				next_link = resource$next_link, next_page_token = resource$next_page_token,
 				selfLink = resource$selfLink)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.new = function()
@@ -8659,9 +9863,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8671,7 +9875,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.show = function(uuid)
@@ -8690,9 +9901,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8702,7 +9913,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		user_agreements.destroy = function(uuid)
@@ -8721,9 +9939,9 @@ Arvados <- R6::R6Class(
 			if(!is.null(resource$errors))
 				stop(resource$errors)
 			
-			UserAgreement$new(uuid = resource$uuid, etag = resource$etag,
-				owner_uuid = resource$owner_uuid, created_at = resource$created_at,
-				modified_by_client_uuid = resource$modified_by_client_uuid,
+			result <- UserAgreement$new(uuid = resource$uuid,
+				etag = resource$etag, owner_uuid = resource$owner_uuid,
+				created_at = resource$created_at, modified_by_client_uuid = resource$modified_by_client_uuid,
 				modified_by_user_uuid = resource$modified_by_user_uuid,
 				modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
 				replication_desired = resource$replication_desired,
@@ -8733,7 +9951,14 @@ Arvados <- R6::R6Class(
 				name = resource$name, description = resource$description,
 				properties = resource$properties, delete_at = resource$delete_at,
 				file_names = resource$file_names, trash_at = resource$trash_at,
-				is_trashed = resource$is_trashed)
+				is_trashed = resource$is_trashed, storage_classes_desired = resource$storage_classes_desired,
+				storage_classes_confirmed = resource$storage_classes_confirmed,
+				storage_classes_confirmed_at = resource$storage_classes_confirmed_at)
+			
+			if(result$isEmpty())
+				resource
+			else
+				result
 		},
 
 		getHostName = function() private$host,
diff --git a/sdk/R/R/ArvadosClasses.R b/sdk/R/R/ArvadosClasses.R
index 1324282..e969887 100644
--- a/sdk/R/R/ArvadosClasses.R
+++ b/sdk/R/R/ArvadosClasses.R
@@ -45,8 +45,9 @@ UserList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -57,6 +58,16 @@ UserList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("userlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -155,11 +166,12 @@ User <- R6::R6Class(
 			self$is_active <- is_active
 			self$username <- username
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, email, first_name, last_name,
-				identity_url, is_admin, prefs, updated_at,
-				default_owner_uuid, is_active, username)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "email",
+				"first_name", "last_name", "identity_url",
+				"is_admin", "prefs", "updated_at", "default_owner_uuid",
+				"is_active", "username")
 		},
 
 		toJSON = function() {
@@ -170,6 +182,16 @@ User <- R6::R6Class(
 			
 			jsonlite::toJSON(list("user" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -227,8 +249,9 @@ ApiClientAuthorizationList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -239,6 +262,16 @@ ApiClientAuthorizationList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("apiclientauthorizationlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -323,11 +356,11 @@ ApiClientAuthorization <- R6::R6Class(
 			self$default_owner_uuid <- default_owner_uuid
 			self$scopes <- scopes
 			
-			private$classFields <- c(uuid, etag, api_token,
-				api_client_id, user_id, created_by_ip_address,
-				last_used_by_ip_address, last_used_at, expires_at,
-				created_at, updated_at, default_owner_uuid,
-				scopes)
+			private$classFields <- c("uuid", "etag",
+				"api_token", "api_client_id", "user_id",
+				"created_by_ip_address", "last_used_by_ip_address",
+				"last_used_at", "expires_at", "created_at",
+				"updated_at", "default_owner_uuid", "scopes")
 		},
 
 		toJSON = function() {
@@ -338,6 +371,16 @@ ApiClientAuthorization <- R6::R6Class(
 			
 			jsonlite::toJSON(list("apiclientauthorization" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -395,8 +438,9 @@ ApiClientList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -407,6 +451,16 @@ ApiClientList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("apiclientlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -484,10 +538,11 @@ ApiClient <- R6::R6Class(
 			self$updated_at <- updated_at
 			self$is_trusted <- is_trusted
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, name, url_prefix, created_at,
-				updated_at, is_trusted)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "name",
+				"url_prefix", "created_at", "updated_at",
+				"is_trusted")
 		},
 
 		toJSON = function() {
@@ -498,6 +553,16 @@ ApiClient <- R6::R6Class(
 			
 			jsonlite::toJSON(list("apiclient" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -555,8 +620,9 @@ ContainerRequestList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -567,6 +633,16 @@ ContainerRequestList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("containerrequestlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -723,16 +799,18 @@ ContainerRequest <- R6::R6Class(
 			self$output_name <- output_name
 			self$output_ttl <- output_ttl
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_at, modified_by_client_uuid,
-				modified_by_user_uuid, name, description,
-				properties, state, requesting_container_uuid,
-				container_uuid, container_count_max, mounts,
-				runtime_constraints, container_image, environment,
-				cwd, command, output_path, priority, expires_at,
-				filters, updated_at, container_count, use_existing,
-				scheduling_parameters, output_uuid, log_uuid,
-				output_name, output_ttl)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_at",
+				"modified_by_client_uuid", "modified_by_user_uuid",
+				"name", "description", "properties", "state",
+				"requesting_container_uuid", "container_uuid",
+				"container_count_max", "mounts", "runtime_constraints",
+				"container_image", "environment", "cwd",
+				"command", "output_path", "priority", "expires_at",
+				"filters", "updated_at", "container_count",
+				"use_existing", "scheduling_parameters",
+				"output_uuid", "log_uuid", "output_name",
+				"output_ttl")
 		},
 
 		toJSON = function() {
@@ -743,6 +821,16 @@ ContainerRequest <- R6::R6Class(
 			
 			jsonlite::toJSON(list("containerrequest" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -800,8 +888,9 @@ AuthorizedKeyList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -812,6 +901,16 @@ AuthorizedKeyList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("authorizedkeylist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -896,10 +995,11 @@ AuthorizedKey <- R6::R6Class(
 			self$created_at <- created_at
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, name, key_type, authorized_user_uuid,
-				public_key, expires_at, created_at, updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "name",
+				"key_type", "authorized_user_uuid", "public_key",
+				"expires_at", "created_at", "updated_at")
 		},
 
 		toJSON = function() {
@@ -910,6 +1010,16 @@ AuthorizedKey <- R6::R6Class(
 			
 			jsonlite::toJSON(list("authorizedkey" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -967,8 +1077,9 @@ CollectionList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -979,6 +1090,16 @@ CollectionList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("collectionlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1036,8 +1157,9 @@ ContainerList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -1048,6 +1170,16 @@ ContainerList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("containerlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1181,14 +1313,15 @@ Container <- R6::R6Class(
 			self$locked_by_uuid <- locked_by_uuid
 			self$scheduling_parameters <- scheduling_parameters
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_at, modified_by_client_uuid,
-				modified_by_user_uuid, state, started_at,
-				finished_at, log, environment, cwd, command,
-				output_path, mounts, runtime_constraints,
-				output, container_image, progress, priority,
-				updated_at, exit_code, auth_uuid, locked_by_uuid,
-				scheduling_parameters)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_at",
+				"modified_by_client_uuid", "modified_by_user_uuid",
+				"state", "started_at", "finished_at", "log",
+				"environment", "cwd", "command", "output_path",
+				"mounts", "runtime_constraints", "output",
+				"container_image", "progress", "priority",
+				"updated_at", "exit_code", "auth_uuid", "locked_by_uuid",
+				"scheduling_parameters")
 		},
 
 		toJSON = function() {
@@ -1199,6 +1332,16 @@ Container <- R6::R6Class(
 			
 			jsonlite::toJSON(list("container" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1256,8 +1399,9 @@ HumanList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -1268,6 +1412,16 @@ HumanList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("humanlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1337,9 +1491,10 @@ Human <- R6::R6Class(
 			self$created_at <- created_at
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, properties, created_at, updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "properties",
+				"created_at", "updated_at")
 		},
 
 		toJSON = function() {
@@ -1350,6 +1505,16 @@ Human <- R6::R6Class(
 			
 			jsonlite::toJSON(list("human" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1407,8 +1572,9 @@ JobTaskList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -1419,6 +1585,16 @@ JobTaskList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("jobtasklist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1521,12 +1697,12 @@ JobTask <- R6::R6Class(
 			self$started_at <- started_at
 			self$finished_at <- finished_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, job_uuid, sequence, parameters,
-				output, progress, success, created_at, updated_at,
-				created_by_job_task_uuid, qsequence, started_at,
-				finished_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "job_uuid",
+				"sequence", "parameters", "output", "progress",
+				"success", "created_at", "updated_at", "created_by_job_task_uuid",
+				"qsequence", "started_at", "finished_at")
 		},
 
 		toJSON = function() {
@@ -1537,6 +1713,16 @@ JobTask <- R6::R6Class(
 			
 			jsonlite::toJSON(list("jobtask" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1594,8 +1780,9 @@ LinkList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -1606,6 +1793,16 @@ LinkList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("linklist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1689,10 +1886,11 @@ Link <- R6::R6Class(
 			self$properties <- properties
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, tail_uuid, link_class, name,
-				head_uuid, properties, updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "tail_uuid",
+				"link_class", "name", "head_uuid", "properties",
+				"updated_at")
 		},
 
 		toJSON = function() {
@@ -1703,6 +1901,16 @@ Link <- R6::R6Class(
 			
 			jsonlite::toJSON(list("link" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1760,8 +1968,9 @@ JobList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -1772,6 +1981,16 @@ JobList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("joblist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -1936,17 +2155,19 @@ Job <- R6::R6Class(
 			self$components <- components
 			self$script_parameters_digest <- script_parameters_digest
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, submit_id, script, script_version,
-				script_parameters, cancelled_by_client_uuid,
-				cancelled_by_user_uuid, cancelled_at, started_at,
-				finished_at, running, success, output, created_at,
-				updated_at, is_locked_by_uuid, log, tasks_summary,
-				runtime_constraints, nondeterministic, repository,
-				supplied_script_version, docker_image_locator,
-				priority, description, state, arvados_sdk_version,
-				components, script_parameters_digest)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "submit_id",
+				"script", "script_version", "script_parameters",
+				"cancelled_by_client_uuid", "cancelled_by_user_uuid",
+				"cancelled_at", "started_at", "finished_at",
+				"running", "success", "output", "created_at",
+				"updated_at", "is_locked_by_uuid", "log",
+				"tasks_summary", "runtime_constraints", "nondeterministic",
+				"repository", "supplied_script_version",
+				"docker_image_locator", "priority", "description",
+				"state", "arvados_sdk_version", "components",
+				"script_parameters_digest")
 		},
 
 		toJSON = function() {
@@ -1957,6 +2178,16 @@ Job <- R6::R6Class(
 			
 			jsonlite::toJSON(list("job" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2014,8 +2245,9 @@ KeepDiskList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -2026,6 +2258,16 @@ KeepDiskList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("keepdisklist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2132,12 +2374,13 @@ KeepDisk <- R6::R6Class(
 			self$updated_at <- updated_at
 			self$keep_service_uuid <- keep_service_uuid
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, ping_secret, node_uuid, filesystem_uuid,
-				bytes_total, bytes_free, is_readable, is_writable,
-				last_read_at, last_write_at, last_ping_at,
-				created_at, updated_at, keep_service_uuid)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "ping_secret",
+				"node_uuid", "filesystem_uuid", "bytes_total",
+				"bytes_free", "is_readable", "is_writable",
+				"last_read_at", "last_write_at", "last_ping_at",
+				"created_at", "updated_at", "keep_service_uuid")
 		},
 
 		toJSON = function() {
@@ -2148,6 +2391,16 @@ KeepDisk <- R6::R6Class(
 			
 			jsonlite::toJSON(list("keepdisk" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2205,8 +2458,9 @@ KeepServiceList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -2217,6 +2471,16 @@ KeepServiceList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("keepservicelist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2301,11 +2565,11 @@ KeepService <- R6::R6Class(
 			self$updated_at <- updated_at
 			self$read_only <- read_only
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, service_host, service_port,
-				service_ssl_flag, service_type, created_at,
-				updated_at, read_only)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "service_host",
+				"service_port", "service_ssl_flag", "service_type",
+				"created_at", "updated_at", "read_only")
 		},
 
 		toJSON = function() {
@@ -2316,6 +2580,16 @@ KeepService <- R6::R6Class(
 			
 			jsonlite::toJSON(list("keepservice" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2373,8 +2647,9 @@ PipelineTemplateList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -2385,6 +2660,16 @@ PipelineTemplateList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("pipelinetemplatelist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2462,10 +2747,10 @@ PipelineTemplate <- R6::R6Class(
 			self$updated_at <- updated_at
 			self$description <- description
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, name, components, updated_at,
-				description)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "name",
+				"components", "updated_at", "description")
 		},
 
 		toJSON = function() {
@@ -2476,6 +2761,16 @@ PipelineTemplate <- R6::R6Class(
 			
 			jsonlite::toJSON(list("pipelinetemplate" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2533,8 +2828,9 @@ PipelineInstanceList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -2545,6 +2841,16 @@ PipelineInstanceList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("pipelineinstancelist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2644,12 +2950,12 @@ PipelineInstance <- R6::R6Class(
 			self$finished_at <- finished_at
 			self$description <- description
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, pipeline_template_uuid, name,
-				components, updated_at, properties, state,
-				components_summary, started_at, finished_at,
-				description)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "pipeline_template_uuid",
+				"name", "components", "updated_at", "properties",
+				"state", "components_summary", "started_at",
+				"finished_at", "description")
 		},
 
 		toJSON = function() {
@@ -2660,6 +2966,16 @@ PipelineInstance <- R6::R6Class(
 			
 			jsonlite::toJSON(list("pipelineinstance" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2717,8 +3033,9 @@ NodeList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -2729,6 +3046,16 @@ NodeList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("nodelist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2827,11 +3154,12 @@ Node <- R6::R6Class(
 			self$properties <- properties
 			self$job_uuid <- job_uuid
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, slot_number, hostname, domain,
-				ip_address, first_ping_at, last_ping_at,
-				info, updated_at, properties, job_uuid)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "slot_number",
+				"hostname", "domain", "ip_address", "first_ping_at",
+				"last_ping_at", "info", "updated_at", "properties",
+				"job_uuid")
 		},
 
 		toJSON = function() {
@@ -2842,6 +3170,16 @@ Node <- R6::R6Class(
 			
 			jsonlite::toJSON(list("node" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2899,8 +3237,9 @@ RepositoryList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -2911,6 +3250,16 @@ RepositoryList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("repositorylist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -2980,9 +3329,10 @@ Repository <- R6::R6Class(
 			self$created_at <- created_at
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, name, created_at, updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "name",
+				"created_at", "updated_at")
 		},
 
 		toJSON = function() {
@@ -2993,6 +3343,16 @@ Repository <- R6::R6Class(
 			
 			jsonlite::toJSON(list("repository" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3050,8 +3410,9 @@ SpecimenList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -3062,6 +3423,16 @@ SpecimenList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("specimenlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3135,9 +3506,10 @@ Specimen <- R6::R6Class(
 			self$updated_at <- updated_at
 			self$properties <- properties
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, material, updated_at, properties)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "material",
+				"updated_at", "properties")
 		},
 
 		toJSON = function() {
@@ -3148,6 +3520,16 @@ Specimen <- R6::R6Class(
 			
 			jsonlite::toJSON(list("specimen" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3205,8 +3587,9 @@ LogList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -3217,6 +3600,16 @@ LogList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("loglist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3305,11 +3698,11 @@ Log <- R6::R6Class(
 			self$modified_at <- modified_at
 			self$object_owner_uuid <- object_owner_uuid
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				object_uuid, event_at, event_type, summary,
-				properties, created_at, updated_at, modified_at,
-				object_owner_uuid)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "object_uuid", "event_at",
+				"event_type", "summary", "properties", "created_at",
+				"updated_at", "modified_at", "object_owner_uuid")
 		},
 
 		toJSON = function() {
@@ -3320,6 +3713,16 @@ Log <- R6::R6Class(
 			
 			jsonlite::toJSON(list("log" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3377,8 +3780,9 @@ TraitList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -3389,6 +3793,16 @@ TraitList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("traitlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3462,10 +3876,10 @@ Trait <- R6::R6Class(
 			self$created_at <- created_at
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, name, properties, created_at,
-				updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "name",
+				"properties", "created_at", "updated_at")
 		},
 
 		toJSON = function() {
@@ -3476,6 +3890,16 @@ Trait <- R6::R6Class(
 			
 			jsonlite::toJSON(list("trait" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3533,8 +3957,9 @@ VirtualMachineList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -3545,6 +3970,16 @@ VirtualMachineList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("virtualmachinelist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3614,9 +4049,10 @@ VirtualMachine <- R6::R6Class(
 			self$created_at <- created_at
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, hostname, created_at, updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "hostname",
+				"created_at", "updated_at")
 		},
 
 		toJSON = function() {
@@ -3627,6 +4063,16 @@ VirtualMachine <- R6::R6Class(
 			
 			jsonlite::toJSON(list("virtualmachine" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3684,8 +4130,9 @@ WorkflowList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -3696,6 +4143,16 @@ WorkflowList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("workflowlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3773,10 +4230,10 @@ Workflow <- R6::R6Class(
 			self$definition <- definition
 			self$updated_at <- updated_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_at, modified_by_client_uuid,
-				modified_by_user_uuid, name, description,
-				definition, updated_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_at",
+				"modified_by_client_uuid", "modified_by_user_uuid",
+				"name", "description", "definition", "updated_at")
 		},
 
 		toJSON = function() {
@@ -3787,6 +4244,16 @@ Workflow <- R6::R6Class(
 			
 			jsonlite::toJSON(list("workflow" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3844,8 +4311,9 @@ GroupList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -3856,6 +4324,16 @@ GroupList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("grouplist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -3943,10 +4421,11 @@ Group <- R6::R6Class(
 			self$is_trashed <- is_trashed
 			self$delete_at <- delete_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, name, description, updated_at,
-				group_class, trash_at, is_trashed, delete_at)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "name",
+				"description", "updated_at", "group_class",
+				"trash_at", "is_trashed", "delete_at")
 		},
 
 		toJSON = function() {
@@ -3957,6 +4436,16 @@ Group <- R6::R6Class(
 			
 			jsonlite::toJSON(list("group" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -4014,8 +4503,9 @@ UserAgreementList <- R6::R6Class(
 			self$next_page_token <- next_page_token
 			self$selfLink <- selfLink
 			
-			private$classFields <- c(kind, etag, items,
-				next_link, next_page_token, selfLink)
+			private$classFields <- c("kind", "etag",
+				"items", "next_link", "next_page_token",
+				"selfLink")
 		},
 
 		toJSON = function() {
@@ -4026,6 +4516,16 @@ UserAgreementList <- R6::R6Class(
 			
 			jsonlite::toJSON(list("useragreementlist" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
@@ -4048,7 +4548,9 @@ UserAgreementList <- R6::R6Class(
 #' 	replication_confirmed_at = NULL, replication_confirmed = NULL,
 #' 	updated_at = NULL, manifest_text = NULL, name = NULL,
 #' 	description = NULL, properties = NULL, delete_at = NULL,
-#' 	file_names = NULL, trash_at = NULL, is_trashed = NULL)
+#' 	file_names = NULL, trash_at = NULL, is_trashed = NULL,
+#' 	storage_classes_desired = NULL, storage_classes_confirmed = NULL,
+#' 	storage_classes_confirmed_at = NULL)
 #' }
 #' 
 #' @section Arguments:
@@ -4074,6 +4576,9 @@ UserAgreementList <- R6::R6Class(
 #'     \item{file_names}{}
 #'     \item{trash_at}{}
 #'     \item{is_trashed}{}
+#'     \item{storage_classes_desired}{}
+#'     \item{storage_classes_confirmed}{}
+#'     \item{storage_classes_confirmed_at}{}
 #'   }
 #' 
 #' @name UserAgreement
@@ -4105,6 +4610,9 @@ UserAgreement <- R6::R6Class(
 		file_names = NULL,
 		trash_at = NULL,
 		is_trashed = NULL,
+		storage_classes_desired = NULL,
+		storage_classes_confirmed = NULL,
+		storage_classes_confirmed_at = NULL,
 
 		initialize = function(uuid = NULL, etag = NULL,
 				owner_uuid = NULL, created_at = NULL, modified_by_client_uuid = NULL,
@@ -4114,7 +4622,8 @@ UserAgreement <- R6::R6Class(
 				updated_at = NULL, manifest_text = NULL,
 				name = NULL, description = NULL, properties = NULL,
 				delete_at = NULL, file_names = NULL, trash_at = NULL,
-				is_trashed = NULL)
+				is_trashed = NULL, storage_classes_desired = NULL,
+				storage_classes_confirmed = NULL, storage_classes_confirmed_at = NULL)
 		{
 			self$uuid <- uuid
 			self$etag <- etag
@@ -4136,14 +4645,18 @@ UserAgreement <- R6::R6Class(
 			self$file_names <- file_names
 			self$trash_at <- trash_at
 			self$is_trashed <- is_trashed
+			self$storage_classes_desired <- storage_classes_desired
+			self$storage_classes_confirmed <- storage_classes_confirmed
+			self$storage_classes_confirmed_at <- storage_classes_confirmed_at
 			
-			private$classFields <- c(uuid, etag, owner_uuid,
-				created_at, modified_by_client_uuid, modified_by_user_uuid,
-				modified_at, portable_data_hash, replication_desired,
-				replication_confirmed_at, replication_confirmed,
-				updated_at, manifest_text, name, description,
-				properties, delete_at, file_names, trash_at,
-				is_trashed)
+			private$classFields <- c("uuid", "etag",
+				"owner_uuid", "created_at", "modified_by_client_uuid",
+				"modified_by_user_uuid", "modified_at", "portable_data_hash",
+				"replication_desired", "replication_confirmed_at",
+				"replication_confirmed", "updated_at", "manifest_text",
+				"name", "description", "properties", "delete_at",
+				"file_names", "trash_at", "is_trashed", "storage_classes_desired",
+				"storage_classes_confirmed", "storage_classes_confirmed_at")
 		},
 
 		toJSON = function() {
@@ -4154,6 +4667,16 @@ UserAgreement <- R6::R6Class(
 			
 			jsonlite::toJSON(list("useragreement" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+		},
+
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
 		}
 	),
 
diff --git a/sdk/R/R/Collection.R b/sdk/R/R/Collection.R
index ba66c8b..211576b 100644
--- a/sdk/R/R/Collection.R
+++ b/sdk/R/R/Collection.R
@@ -53,26 +53,29 @@ Collection <- R6::R6Class(
 
     public = list(
 
-		uuid                     = NULL,
-		etag                     = NULL,
-		owner_uuid               = NULL,
-		created_at               = NULL,
-		modified_by_client_uuid  = NULL,
-		modified_by_user_uuid    = NULL,
-		modified_at              = NULL,
-		portable_data_hash       = NULL,
-		replication_desired      = NULL,
-		replication_confirmed_at = NULL,
-		replication_confirmed    = NULL,
-		updated_at               = NULL,
-		manifest_text            = NULL,
-		name                     = NULL,
-		description              = NULL,
-		properties               = NULL,
-		delete_at                = NULL,
-		file_names               = NULL,
-		trash_at                 = NULL,
-		is_trashed               = NULL,
+		uuid                         = NULL,
+		etag                         = NULL,
+		owner_uuid                   = NULL,
+		created_at                   = NULL,
+		modified_by_client_uuid      = NULL,
+		modified_by_user_uuid        = NULL,
+		modified_at                  = NULL,
+		portable_data_hash           = NULL,
+		replication_desired          = NULL,
+		replication_confirmed_at     = NULL,
+		replication_confirmed        = NULL,
+		updated_at                   = NULL,
+		manifest_text                = NULL,
+		name                         = NULL,
+		description                  = NULL,
+		properties                   = NULL,
+		delete_at                    = NULL,
+		file_names                   = NULL,
+		trash_at                     = NULL,
+		is_trashed                   = NULL,
+        storage_classes_desired      = NULL,
+        storage_classes_confirmed    = NULL,
+        storage_classes_confirmed_at = NULL,
 
 		initialize = function(uuid = NULL, etag = NULL, owner_uuid = NULL,
                               created_at = NULL, modified_by_client_uuid = NULL,
@@ -82,28 +85,34 @@ Collection <- R6::R6Class(
                               replication_confirmed = NULL, updated_at = NULL,
                               manifest_text = NULL, name = NULL, description = NULL,
                               properties = NULL, delete_at = NULL, file_names = NULL,
-                              trash_at = NULL, is_trashed = NULL) 
+                              trash_at = NULL, is_trashed = NULL,
+                              storage_classes_desired = NULL,
+                              storage_classes_confirmed = NULL,
+                              storage_classes_confirmed_at = NULL) 
         {
-			self$uuid                     <- uuid
-			self$etag                     <- etag
-			self$owner_uuid               <- owner_uuid
-			self$created_at               <- created_at
-			self$modified_by_client_uuid  <- modified_by_client_uuid
-			self$modified_by_user_uuid    <- modified_by_user_uuid
-			self$modified_at              <- modified_at
-			self$portable_data_hash       <- portable_data_hash
-			self$replication_desired      <- replication_desired
-			self$replication_confirmed_at <- replication_confirmed_at
-			self$replication_confirmed    <- replication_confirmed
-			self$updated_at               <- updated_at
-			self$manifest_text            <- manifest_text
-			self$name                     <- name
-			self$description              <- description
-			self$properties               <- properties
-			self$delete_at                <- delete_at
-			self$file_names               <- file_names
-			self$trash_at                 <- trash_at
-			self$is_trashed               <- is_trashed
+			self$uuid                         <- uuid
+			self$etag                         <- etag
+			self$owner_uuid                   <- owner_uuid
+			self$created_at                   <- created_at
+			self$modified_by_client_uuid      <- modified_by_client_uuid
+			self$modified_by_user_uuid        <- modified_by_user_uuid
+			self$modified_at                  <- modified_at
+			self$portable_data_hash           <- portable_data_hash
+			self$replication_desired          <- replication_desired
+			self$replication_confirmed_at     <- replication_confirmed_at
+			self$replication_confirmed        <- replication_confirmed
+			self$updated_at                   <- updated_at
+			self$manifest_text                <- manifest_text
+			self$name                         <- name
+			self$description                  <- description
+			self$properties                   <- properties
+			self$delete_at                    <- delete_at
+			self$file_names                   <- file_names
+			self$trash_at                     <- trash_at
+			self$is_trashed                   <- is_trashed
+            self$storage_classes_desired      <- storage_classes_desired
+            self$storage_classes_confirmed    <- storage_classes_confirmed
+            self$storage_classes_confirmed_at <- storage_classes_confirmed_at
 			
 			private$classFields <- c("uuid", "etag", "owner_uuid", 
                                      "created_at", "modified_by_client_uuid",
@@ -277,6 +286,16 @@ Collection <- R6::R6Class(
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)
 		},
 
+		isEmpty = function() {
+			fields <- sapply(private$classFields,
+			                 function(field) self[[field]])
+
+			if(any(sapply(fields, function(field) !is.null(field) && field != "")))
+				FALSE
+			else
+				TRUE
+		},
+
         getRESTService = function() private$REST,
         setRESTService = function(newRESTService) private$REST <- newRESTService
     ),
diff --git a/sdk/R/R/autoGenAPI.R b/sdk/R/R/autoGenAPI.R
index 39e0430..af758dd 100644
--- a/sdk/R/R/autoGenAPI.R
+++ b/sdk/R/R/autoGenAPI.R
@@ -42,7 +42,6 @@ generateArvadosAPIClass <- function(discoveryDocument)
 
 generateClassContent <- function(functionResources, resourceNames, classMetaData)
 {
-
     arvadosMethods <- Map(function(resource, resourceName)
     {
         methodNames <- names(resource$methods)
@@ -183,6 +182,7 @@ getFunctionBody <- function(functionMetaData, classMetaData)
     response <- getResponse(functionMetaData)
     errorCheck <- getErrorCheckingCode()
     returnObject <- getReturnObject(functionMetaData, classMetaData)
+    returnStatement <- getReturnObjectValidationCode()
 
     body <- c(url,
               headers,
@@ -190,11 +190,20 @@ getFunctionBody <- function(functionMetaData, classMetaData)
               requestBody, "",
               request, response, "",
               errorCheck, "",
-              returnObject)
+              returnObject, "",
+              returnStatement)
 
     paste0("\t\t\t", body)
 }
 
+getReturnObjectValidationCode <- function()
+{
+    c("if(result$isEmpty())",
+      "\tresource",
+      "else",
+      "\tresult")
+}
+
 getErrorCheckingCode <- function()
 {
     c("if(!is.null(resource$errors))", "\tstop(resource$errors)")
@@ -222,15 +231,14 @@ getReturnObject <- function(functionMetaData, classMetaData)
     returnClass <- functionMetaData$response[["$ref"]]
     classArguments <- getReturnClassArguments(returnClass, classMetaData)
 
-
     if(returnClass == "Collection")
-        return(c(formatArgs("collection <- Collection$new(", "\t",
+        return(c(formatArgs("result <- Collection$new(", "\t",
                             classArguments, ")", 40),
                  "",
-                 "collection$setRESTService(private$REST)",
-                 "collection"))
+                 "result$setRESTService(private$REST)"))
 
-    formatArgs(paste0(returnClass, "$new("), "\t", classArguments, ")", 40)
+    formatArgs(paste0("result <- ", returnClass, "$new("),
+               "\t", classArguments, ")", 40)
 }
 
 getReturnClassArguments <- function(className, classMetaData)
@@ -403,7 +411,7 @@ getArvadosClass <- function(classSchema)
               paste0("\t\t\tself$", fields, " <- ", fields),
                      "\t\t\t",
               paste0("\t\t\t", formatArgs("private$classFields <- c(", "\t",
-                                         fields, ")", 40)),
+                                         paste0("\"", fields, "\""), ")", 40)),
                      "\t\t},",
                      "",
                      "\t\ttoJSON = function() {",
@@ -414,6 +422,17 @@ getArvadosClass <- function(classSchema)
                      "\t\t\t",
               paste0("\t\t\tjsonlite::toJSON(list(\"", tolower(name), "\" = 
                      Filter(Negate(is.null), fields)), auto_unbox = TRUE)"),
+                     "\t\t},",
+                     "",
+                     "\t\tisEmpty = function() {",
+                     "\t\t\tfields <- sapply(private$classFields,",
+                     "\t\t\t                 function(field) self[[field]])",
+                     "",
+              paste0("\t\t\tif(any(sapply(fields, function(field) !is.null(field)",
+                     " && field != \"\")))"),
+                     "\t\t\t\tFALSE",
+                     "\t\t\telse",
+                     "\t\t\t\tTRUE",
                      "\t\t}",
                      "\t),",
                      "",
diff --git a/sdk/R/man/UserAgreement.Rd b/sdk/R/man/UserAgreement.Rd
index f9d67ae..2f1c65f 100644
--- a/sdk/R/man/UserAgreement.Rd
+++ b/sdk/R/man/UserAgreement.Rd
@@ -15,7 +15,9 @@ UserAgreement
 	replication_confirmed_at = NULL, replication_confirmed = NULL,
 	updated_at = NULL, manifest_text = NULL, name = NULL,
 	description = NULL, properties = NULL, delete_at = NULL,
-	file_names = NULL, trash_at = NULL, is_trashed = NULL)
+	file_names = NULL, trash_at = NULL, is_trashed = NULL,
+	storage_classes_desired = NULL, storage_classes_confirmed = NULL,
+	storage_classes_confirmed_at = NULL)
 }
 }
 
@@ -43,6 +45,9 @@ UserAgreement
     \item{file_names}{}
     \item{trash_at}{}
     \item{is_trashed}{}
+    \item{storage_classes_desired}{}
+    \item{storage_classes_confirmed}{}
+    \item{storage_classes_confirmed_at}{}
   }
 }
 

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list