Added fix for discovery document inconsistency
authorFuad Muhic <fmuhic@capeannenterprises.com>
Tue, 6 Mar 2018 15:52:11 +0000 (16:52 +0100)
committerFuad Muhic <fmuhic@capeannenterprises.com>
Tue, 6 Mar 2018 15:52:11 +0000 (16:52 +0100)
Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic@capeannenterprises.com>

sdk/R/R/Arvados.R
sdk/R/R/ArvadosClasses.R
sdk/R/R/Collection.R
sdk/R/R/autoGenAPI.R
sdk/R/man/UserAgreement.Rd

index a9b7dc0f826c7fbf384e89d8a4b2032f12d40408..2bba6020b691d70fb60a6e57116522d0381bb3e1 100644 (file)
@@ -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,
index 132428227dd159cd8fc94d2006ecfb759803c4f3..e969887fd19ba2b4c18065277af1f13d605e79ec 100644 (file)
@@ -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
                }
        ),
 
index ba66c8b4b285992681b2fc21717226b9850f9144..211576bf11e0e4642c29ff03ca6860b1436450ec 100644 (file)
@@ -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
     ),
index 39e0430fd70ce0139b15d50a6a7f3fc30de1de72..af758dda5850ebf8e26707afe24c384fe47182cf 100644 (file)
@@ -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),",
                      "",
index f9d67ae08d7e7c949cb9a2cf08e5a4989567cb1c..2f1c65f667e0635d168a7e20a9e27bdd84a6a97d 100644 (file)
@@ -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}{}
   }
 }