Added error handlind code and proper folding to autogenerated content
authorFuad Muhic <fmuhic@capeannenterprises.com>
Fri, 23 Feb 2018 16:53:57 +0000 (17:53 +0100)
committerFuad Muhic <fmuhic@capeannenterprises.com>
Fri, 23 Feb 2018 16:53:57 +0000 (17:53 +0100)
Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic@capeannenterprises.com>

sdk/R/R/Arvados.R [new file with mode: 0644]
sdk/R/R/ArvadosClasses.R [new file with mode: 0644]
sdk/R/R/autoGenAPI.R

diff --git a/sdk/R/R/Arvados.R b/sdk/R/R/Arvados.R
new file mode 100644 (file)
index 0000000..7c077c0
--- /dev/null
@@ -0,0 +1,6618 @@
+#' @export
+Arvados <- R6::R6Class(
+
+       "Arvados",
+
+       public = list(
+
+               initialize = function(authToken = NULL, hostName = NULL, numRetries = 0)
+               {
+                       if(!is.null(hostName))
+                               Sys.setenv(ARVADOS_API_HOST = hostName)
+
+                       if(!is.null(authToken))
+                               Sys.setenv(ARVADOS_API_TOKEN = authToken)
+
+                       hostName <- Sys.getenv("ARVADOS_API_HOST")
+                       token    <- Sys.getenv("ARVADOS_API_TOKEN")
+
+                       if(hostName == "" | token == "")
+                               stop(paste("Please provide host name and authentification token",
+                                                  "or set ARVADOS_API_HOST and ARVADOS_API_TOKEN",
+                                                  "environment variables."))
+
+                       private$token <- token
+                       private$host  <- paste0("https://", hostName, "/arvados/v1/")
+                       private$numRetries <- numRetries
+                       private$REST <- RESTService$new(token, hostName,
+                                                       HttpRequest$new(), HttpParser$new(),
+                                                       numRetries)
+
+               },
+
+               users.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("users")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               users.create = function(user, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("users")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- user$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.update = function(user, uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- user$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.current = function()
+               {
+                       endPoint <- stringr::str_interp("users/current")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.system = function()
+               {
+                       endPoint <- stringr::str_interp("users/system")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.activate = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}/activate")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.setup = function(
+                               user = NULL, openid_prefix = NULL, repo_name = NULL,
+                               vm_uuid = NULL, send_notification_email = "false")
+               {
+                       endPoint <- stringr::str_interp("users/setup")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       user = user, openid_prefix = openid_prefix,
+                                       repo_name = repo_name, vm_uuid = vm_uuid,
+                                       send_notification_email = send_notification_email)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.unsetup = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}/unsetup")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.update_uuid = function(uuid, new_uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}/update_uuid")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid, new_uuid = new_uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("users")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               users.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               users.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("users/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               identity_url = resource$identity_url, is_admin = resource$is_admin,
+                               prefs = resource$prefs, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               is_active = resource$is_active, username = resource$username)
+               },
+
+               api_client_authorizations.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_client_authorizations.create = function(
+                               api_client_authorization, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- api_client_authorization$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.update = function(api_client_authorization, uuid)
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- api_client_authorization$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.create_system_auth = function(api_client_id = NULL, scopes = NULL)
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/create_system_auth")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       api_client_id = api_client_id, scopes = scopes)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.current = function()
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/current")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_client_authorizations.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_client_authorizations.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_client_authorizations/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               last_used_by_ip_address = resource$last_used_by_ip_address,
+                               last_used_at = resource$last_used_at, expires_at = resource$expires_at,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               default_owner_uuid = resource$default_owner_uuid,
+                               scopes = resource$scopes)
+               },
+
+               api_clients.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_clients/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("api_clients")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.create = function(api_client, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("api_clients")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- api_client$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.update = function(api_client, uuid)
+               {
+                       endPoint <- stringr::str_interp("api_clients/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- api_client$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_clients/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("api_clients")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_clients/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               api_clients.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("api_clients/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               container_requests.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("container_requests/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_by_user_uuid = resource$modified_by_user_uuid,
+                               name = resource$name, description = resource$description,
+                               properties = resource$properties, state = resource$state,
+                               requesting_container_uuid = resource$requesting_container_uuid,
+                               container_uuid = resource$container_uuid,
+                               container_count_max = resource$container_count_max,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               container_image = resource$container_image,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               priority = resource$priority, expires_at = resource$expires_at,
+                               filters = resource$filters, updated_at = resource$updated_at,
+                               container_count = resource$container_count,
+                               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)
+               },
+
+               container_requests.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("container_requests")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               container_requests.create = function(
+                               container_request, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("container_requests")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- container_request$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_by_user_uuid = resource$modified_by_user_uuid,
+                               name = resource$name, description = resource$description,
+                               properties = resource$properties, state = resource$state,
+                               requesting_container_uuid = resource$requesting_container_uuid,
+                               container_uuid = resource$container_uuid,
+                               container_count_max = resource$container_count_max,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               container_image = resource$container_image,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               priority = resource$priority, expires_at = resource$expires_at,
+                               filters = resource$filters, updated_at = resource$updated_at,
+                               container_count = resource$container_count,
+                               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)
+               },
+
+               container_requests.update = function(container_request, uuid)
+               {
+                       endPoint <- stringr::str_interp("container_requests/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- container_request$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_by_user_uuid = resource$modified_by_user_uuid,
+                               name = resource$name, description = resource$description,
+                               properties = resource$properties, state = resource$state,
+                               requesting_container_uuid = resource$requesting_container_uuid,
+                               container_uuid = resource$container_uuid,
+                               container_count_max = resource$container_count_max,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               container_image = resource$container_image,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               priority = resource$priority, expires_at = resource$expires_at,
+                               filters = resource$filters, updated_at = resource$updated_at,
+                               container_count = resource$container_count,
+                               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)
+               },
+
+               container_requests.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("container_requests/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_by_user_uuid = resource$modified_by_user_uuid,
+                               name = resource$name, description = resource$description,
+                               properties = resource$properties, state = resource$state,
+                               requesting_container_uuid = resource$requesting_container_uuid,
+                               container_uuid = resource$container_uuid,
+                               container_count_max = resource$container_count_max,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               container_image = resource$container_image,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               priority = resource$priority, expires_at = resource$expires_at,
+                               filters = resource$filters, updated_at = resource$updated_at,
+                               container_count = resource$container_count,
+                               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)
+               },
+
+               container_requests.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("container_requests")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               container_requests.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("container_requests/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_by_user_uuid = resource$modified_by_user_uuid,
+                               name = resource$name, description = resource$description,
+                               properties = resource$properties, state = resource$state,
+                               requesting_container_uuid = resource$requesting_container_uuid,
+                               container_uuid = resource$container_uuid,
+                               container_count_max = resource$container_count_max,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               container_image = resource$container_image,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               priority = resource$priority, expires_at = resource$expires_at,
+                               filters = resource$filters, updated_at = resource$updated_at,
+                               container_count = resource$container_count,
+                               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)
+               },
+
+               container_requests.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("container_requests/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_by_user_uuid = resource$modified_by_user_uuid,
+                               name = resource$name, description = resource$description,
+                               properties = resource$properties, state = resource$state,
+                               requesting_container_uuid = resource$requesting_container_uuid,
+                               container_uuid = resource$container_uuid,
+                               container_count_max = resource$container_count_max,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               container_image = resource$container_image,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               priority = resource$priority, expires_at = resource$expires_at,
+                               filters = resource$filters, updated_at = resource$updated_at,
+                               container_count = resource$container_count,
+                               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)
+               },
+
+               authorized_keys.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("authorized_keys/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("authorized_keys")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.create = function(
+                               authorized_key, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("authorized_keys")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- authorized_key$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.update = function(authorized_key, uuid)
+               {
+                       endPoint <- stringr::str_interp("authorized_keys/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- authorized_key$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("authorized_keys/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("authorized_keys")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("authorized_keys/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               authorized_keys.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("authorized_keys/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               collections.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact", include_trash = NULL)
+               {
+                       endPoint <- stringr::str_interp("collections")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count, include_trash = include_trash)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               collections.create = function(collection, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("collections")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- collection$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.update = function(collection, uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- collection$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.provenance = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}/provenance")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.used_by = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}/used_by")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.trash = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}/trash")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.untrash = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}/untrash")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact", include_trash = NULL)
+               {
+                       endPoint <- stringr::str_interp("collections")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count, include_trash = include_trash)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               collections.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               collections.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("collections/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       collection <- 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,
+                               modified_at = resource$modified_at, portable_data_hash = resource$portable_data_hash,
+                               replication_desired = resource$replication_desired,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+                       
+                       collection$setRESTService(private$REST)
+                       collection
+               },
+
+               containers.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("containers")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               containers.create = function(container, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("containers")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- container$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.update = function(container, uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- container$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.auth = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}/auth")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.lock = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}/lock")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.unlock = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}/unlock")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.current = function()
+               {
+                       endPoint <- stringr::str_interp("containers/current")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("containers")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               containers.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               containers.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("containers/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               environment = resource$environment, cwd = resource$cwd,
+                               command = resource$command, output_path = resource$output_path,
+                               mounts = resource$mounts, runtime_constraints = resource$runtime_constraints,
+                               output = resource$output, container_image = resource$container_image,
+                               progress = resource$progress, priority = resource$priority,
+                               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)
+               },
+
+               humans.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("humans/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("humans")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.create = function(human, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("humans")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- human$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.update = function(human, uuid)
+               {
+                       endPoint <- stringr::str_interp("humans/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- human$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("humans/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("humans")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("humans/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               humans.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("humans/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               job_tasks.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("job_tasks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               output = resource$output, progress = resource$progress,
+                               success = resource$success, created_at = resource$created_at,
+                               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)
+               },
+
+               job_tasks.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("job_tasks")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               job_tasks.create = function(job_task, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("job_tasks")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- job_task$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               output = resource$output, progress = resource$progress,
+                               success = resource$success, created_at = resource$created_at,
+                               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)
+               },
+
+               job_tasks.update = function(job_task, uuid)
+               {
+                       endPoint <- stringr::str_interp("job_tasks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- job_task$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               output = resource$output, progress = resource$progress,
+                               success = resource$success, created_at = resource$created_at,
+                               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)
+               },
+
+               job_tasks.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("job_tasks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               output = resource$output, progress = resource$progress,
+                               success = resource$success, created_at = resource$created_at,
+                               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)
+               },
+
+               job_tasks.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("job_tasks")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               job_tasks.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("job_tasks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               output = resource$output, progress = resource$progress,
+                               success = resource$success, created_at = resource$created_at,
+                               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)
+               },
+
+               job_tasks.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("job_tasks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               output = resource$output, progress = resource$progress,
+                               success = resource$success, created_at = resource$created_at,
+                               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)
+               },
+
+               links.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("links/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("links")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.create = function(link, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("links")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- link$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.update = function(link, uuid)
+               {
+                       endPoint <- stringr::str_interp("links/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- link$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("links/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("links")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("links/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("links/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               links.get_permissions = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("permissions/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               jobs.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("jobs")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               jobs.create = function(
+                               job, ensure_unique_name = "false", find_or_create = "false",
+                               filters = NULL, minimum_script_version = NULL,
+                               exclude_script_versions = NULL)
+               {
+                       endPoint <- stringr::str_interp("jobs")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       ensure_unique_name = ensure_unique_name,
+                                       find_or_create = find_or_create, filters = filters,
+                                       minimum_script_version = minimum_script_version,
+                                       exclude_script_versions = exclude_script_versions)
+                       body <- job$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.update = function(job, uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- job$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.queue = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("jobs/queue")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.queue_size = function()
+               {
+                       endPoint <- stringr::str_interp("jobs/queue_size")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.cancel = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}/cancel")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.lock = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}/lock")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("jobs")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               jobs.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               jobs.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("jobs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               script = resource$script, script_version = resource$script_version,
+                               script_parameters = resource$script_parameters,
+                               cancelled_by_client_uuid = resource$cancelled_by_client_uuid,
+                               cancelled_by_user_uuid = resource$cancelled_by_user_uuid,
+                               cancelled_at = resource$cancelled_at, started_at = resource$started_at,
+                               finished_at = resource$finished_at, running = resource$running,
+                               success = resource$success, output = resource$output,
+                               created_at = resource$created_at, updated_at = resource$updated_at,
+                               is_locked_by_uuid = resource$is_locked_by_uuid,
+                               log = resource$log, tasks_summary = resource$tasks_summary,
+                               runtime_constraints = resource$runtime_constraints,
+                               nondeterministic = resource$nondeterministic,
+                               repository = resource$repository, supplied_script_version = resource$supplied_script_version,
+                               docker_image_locator = resource$docker_image_locator,
+                               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)
+               },
+
+               keep_disks.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_disks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_disks.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("keep_disks")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_disks.create = function(keep_disk, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("keep_disks")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- keep_disk$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_disks.update = function(keep_disk, uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_disks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- keep_disk$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_disks.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_disks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_disks.ping = function(
+                               uuid = NULL, ping_secret, node_uuid = NULL,
+                               filesystem_uuid = NULL, service_host = NULL,
+                               service_port, service_ssl_flag)
+               {
+                       endPoint <- stringr::str_interp("keep_disks/ping")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       uuid = uuid, ping_secret = ping_secret, node_uuid = node_uuid,
+                                       filesystem_uuid = filesystem_uuid, service_host = service_host,
+                                       service_port = service_port, service_ssl_flag = service_ssl_flag)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_disks.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("keep_disks")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_disks.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_disks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_disks.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_disks/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               bytes_total = resource$bytes_total, bytes_free = resource$bytes_free,
+                               is_readable = resource$is_readable, is_writable = resource$is_writable,
+                               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)
+               },
+
+               keep_services.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_services/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("keep_services")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.create = function(
+                               keep_service, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("keep_services")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- keep_service$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.update = function(keep_service, uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_services/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- keep_service$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_services/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.accessible = function()
+               {
+                       endPoint <- stringr::str_interp("keep_services/accessible")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("keep_services")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_services/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               keep_services.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("keep_services/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.create = function(
+                               pipeline_template, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- pipeline_template$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.update = function(pipeline_template, uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- pipeline_template$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_templates.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_templates/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_instances.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               pipeline_instances.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_instances.create = function(
+                               pipeline_instance, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- pipeline_instance$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               pipeline_instances.update = function(pipeline_instance, uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- pipeline_instance$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               pipeline_instances.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               pipeline_instances.cancel = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances/${uuid}/cancel")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               pipeline_instances.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               pipeline_instances.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               pipeline_instances.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("pipeline_instances/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               modified_at = resource$modified_at, pipeline_template_uuid = resource$pipeline_template_uuid,
+                               name = resource$name, components = resource$components,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               state = resource$state, components_summary = resource$components_summary,
+                               started_at = resource$started_at, finished_at = resource$finished_at,
+                               description = resource$description)
+               },
+
+               nodes.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("nodes/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               nodes.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("nodes")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               nodes.create = function(
+                               node, ensure_unique_name = "false", assign_slot = NULL)
+               {
+                       endPoint <- stringr::str_interp("nodes")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       ensure_unique_name = ensure_unique_name,
+                                       assign_slot = assign_slot)
+                       body <- node$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               nodes.update = function(node, uuid, assign_slot = NULL)
+               {
+                       endPoint <- stringr::str_interp("nodes/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid, assign_slot = assign_slot)
+                       body <- node$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               nodes.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("nodes/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               nodes.ping = function(uuid, ping_secret)
+               {
+                       endPoint <- stringr::str_interp("nodes/${uuid}/ping")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid, ping_secret = ping_secret)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               nodes.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("nodes")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               nodes.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("nodes/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               nodes.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("nodes/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               ip_address = resource$ip_address, first_ping_at = resource$first_ping_at,
+                               last_ping_at = resource$last_ping_at, info = resource$info,
+                               updated_at = resource$updated_at, properties = resource$properties,
+                               job_uuid = resource$job_uuid)
+               },
+
+               repositories.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("repositories/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("repositories")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.create = function(repository, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("repositories")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- repository$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.update = function(repository, uuid)
+               {
+                       endPoint <- stringr::str_interp("repositories/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- repository$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("repositories/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.get_all_permissions = function()
+               {
+                       endPoint <- stringr::str_interp("repositories/get_all_permissions")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("repositories")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("repositories/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               repositories.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("repositories/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("specimens/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("specimens")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.create = function(specimen, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("specimens")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- specimen$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.update = function(specimen, uuid)
+               {
+                       endPoint <- stringr::str_interp("specimens/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- specimen$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("specimens/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("specimens")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("specimens/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               specimens.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("specimens/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               logs.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("logs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               event_type = resource$event_type, summary = resource$summary,
+                               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)
+               },
+
+               logs.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("logs")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               logs.create = function(log, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("logs")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- log$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               event_type = resource$event_type, summary = resource$summary,
+                               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)
+               },
+
+               logs.update = function(log, uuid)
+               {
+                       endPoint <- stringr::str_interp("logs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- log$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               event_type = resource$event_type, summary = resource$summary,
+                               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)
+               },
+
+               logs.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("logs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               event_type = resource$event_type, summary = resource$summary,
+                               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)
+               },
+
+               logs.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("logs")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               logs.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("logs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               event_type = resource$event_type, summary = resource$summary,
+                               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)
+               },
+
+               logs.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("logs/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               event_type = resource$event_type, summary = resource$summary,
+                               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)
+               },
+
+               traits.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("traits/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("traits")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.create = function(trait, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("traits")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- trait$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.update = function(trait, uuid)
+               {
+                       endPoint <- stringr::str_interp("traits/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- trait$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("traits/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("traits")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("traits/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               traits.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("traits/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("virtual_machines")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.create = function(
+                               virtual_machine, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("virtual_machines")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- virtual_machine$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.update = function(virtual_machine, uuid)
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- virtual_machine$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.logins = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/${uuid}/logins")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.get_all_logins = function()
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/get_all_logins")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("virtual_machines")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               virtual_machines.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("virtual_machines/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("workflows/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("workflows")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.create = function(workflow, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("workflows")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- workflow$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.update = function(workflow, uuid)
+               {
+                       endPoint <- stringr::str_interp("workflows/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- workflow$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("workflows/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("workflows")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("workflows/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               workflows.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("workflows/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact", include_trash = NULL)
+               {
+                       endPoint <- stringr::str_interp("groups")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count, include_trash = include_trash)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.create = function(group, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("groups")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- group$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.update = function(group, uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- group$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.contents = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               distinct = NULL, limit = "100", offset = "0",
+                               count = "exact", include_trash = NULL, uuid = NULL,
+                               recursive = NULL)
+               {
+                       endPoint <- stringr::str_interp("groups/contents")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       distinct = distinct, limit = limit, offset = offset,
+                                       count = count, include_trash = include_trash,
+                                       uuid = uuid, recursive = recursive)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.trash = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}/trash")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.untrash = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}/untrash")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact", include_trash = NULL)
+               {
+                       endPoint <- stringr::str_interp("groups")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count, include_trash = include_trash)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               groups.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("groups/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               user_agreements.get = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("user_agreements/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.index = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("user_agreements")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               user_agreements.create = function(
+                               user_agreement, ensure_unique_name = "false")
+               {
+                       endPoint <- stringr::str_interp("user_agreements")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(ensure_unique_name = ensure_unique_name)
+                       body <- user_agreement$toJSON()
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.update = function(user_agreement, uuid)
+               {
+                       endPoint <- stringr::str_interp("user_agreements/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- user_agreement$toJSON()
+                       
+                       response <- private$REST$http$exec("PUT", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.delete = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("user_agreements/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.signatures = function()
+               {
+                       endPoint <- stringr::str_interp("user_agreements/signatures")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.sign = function()
+               {
+                       endPoint <- stringr::str_interp("user_agreements/sign")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("POST", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.list = function(
+                               filters = NULL, where = NULL, order = NULL,
+                               select = NULL, distinct = NULL, limit = "100",
+                               offset = "0", count = "exact")
+               {
+                       endPoint <- stringr::str_interp("user_agreements")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(
+                                       filters = filters, where = where, order = order,
+                                       select = select, distinct = distinct, limit = limit,
+                                       offset = offset, count = count)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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)
+               },
+
+               user_agreements.new = function()
+               {
+                       endPoint <- stringr::str_interp("user_agreements/new")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- NULL
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.show = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("user_agreements/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("GET", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               user_agreements.destroy = function(uuid)
+               {
+                       endPoint <- stringr::str_interp("user_agreements/${uuid}")
+                       url <- paste0(private$host, endPoint)
+                       headers <- list(Authorization = paste("OAuth2", private$token), 
+                                       "Content-Type" = "application/json")
+                       queryArgs <- list(uuid = uuid)
+                       body <- NULL
+                       
+                       response <- private$REST$http$exec("DELETE", url, headers, body,
+                                                          queryArgs, private$numRetries)
+                       resource <- private$REST$httpParser$parseJSONResponse(response)
+                       
+                       if(!is.null(resource$errors))
+                               stop(resource$errors)
+                       
+                       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,
+                               replication_confirmed_at = resource$replication_confirmed_at,
+                               replication_confirmed = resource$replication_confirmed,
+                               updated_at = resource$updated_at, manifest_text = resource$manifest_text,
+                               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)
+               },
+
+               getHostName = function() private$host,
+               getToken = function() private$token,
+               setRESTService = function(newREST) private$REST <- newREST
+       ),
+
+       private = list(
+
+               token = NULL,
+               host = NULL,
+               REST = NULL,
+               numRetries = NULL
+       ),
+
+       cloneable = FALSE
+)
diff --git a/sdk/R/R/ArvadosClasses.R b/sdk/R/R/ArvadosClasses.R
new file mode 100644 (file)
index 0000000..e97b6d3
--- /dev/null
@@ -0,0 +1,2861 @@
+#' @export
+UserList <- R6::R6Class(
+
+       "UserList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("userlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+User <- R6::R6Class(
+
+       "User",
+
+       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,
+               email = NULL,
+               first_name = NULL,
+               last_name = NULL,
+               identity_url = NULL,
+               is_admin = NULL,
+               prefs = NULL,
+               updated_at = NULL,
+               default_owner_uuid = NULL,
+               is_active = NULL,
+               username = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               email = NULL, first_name = NULL, last_name = NULL,
+                               identity_url = NULL, is_admin = NULL, prefs = NULL,
+                               updated_at = NULL, default_owner_uuid = NULL,
+                               is_active = NULL, username = 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$email <- email
+                       self$first_name <- first_name
+                       self$last_name <- last_name
+                       self$identity_url <- identity_url
+                       self$is_admin <- is_admin
+                       self$prefs <- prefs
+                       self$updated_at <- updated_at
+                       self$default_owner_uuid <- default_owner_uuid
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("user" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ApiClientAuthorizationList <- R6::R6Class(
+
+       "ApiClientAuthorizationList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("apiclientauthorizationlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ApiClientAuthorization <- R6::R6Class(
+
+       "ApiClientAuthorization",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               api_token = NULL,
+               api_client_id = NULL,
+               user_id = NULL,
+               created_by_ip_address = NULL,
+               last_used_by_ip_address = NULL,
+               last_used_at = NULL,
+               expires_at = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               default_owner_uuid = NULL,
+               scopes = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, api_token = NULL,
+                               api_client_id = NULL, user_id = NULL, created_by_ip_address = NULL,
+                               last_used_by_ip_address = NULL, last_used_at = NULL,
+                               expires_at = NULL, created_at = NULL, updated_at = NULL,
+                               default_owner_uuid = NULL, scopes = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$api_token <- api_token
+                       self$api_client_id <- api_client_id
+                       self$user_id <- user_id
+                       self$created_by_ip_address <- created_by_ip_address
+                       self$last_used_by_ip_address <- last_used_by_ip_address
+                       self$last_used_at <- last_used_at
+                       self$expires_at <- expires_at
+                       self$created_at <- created_at
+                       self$updated_at <- updated_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("apiclientauthorization" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ApiClientList <- R6::R6Class(
+
+       "ApiClientList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("apiclientlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ApiClient <- R6::R6Class(
+
+       "ApiClient",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               name = NULL,
+               url_prefix = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               is_trusted = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, name = NULL, url_prefix = NULL,
+                               created_at = NULL, updated_at = NULL, is_trusted = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$name <- name
+                       self$url_prefix <- url_prefix
+                       self$created_at <- created_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("apiclient" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ContainerRequestList <- R6::R6Class(
+
+       "ContainerRequestList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("containerrequestlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ContainerRequest <- R6::R6Class(
+
+       "ContainerRequest",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               created_at = NULL,
+               modified_at = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               name = NULL,
+               description = NULL,
+               properties = NULL,
+               state = NULL,
+               requesting_container_uuid = NULL,
+               container_uuid = NULL,
+               container_count_max = NULL,
+               mounts = NULL,
+               runtime_constraints = NULL,
+               container_image = NULL,
+               environment = NULL,
+               cwd = NULL,
+               command = NULL,
+               output_path = NULL,
+               priority = NULL,
+               expires_at = NULL,
+               filters = NULL,
+               updated_at = NULL,
+               container_count = NULL,
+               use_existing = NULL,
+               scheduling_parameters = NULL,
+               output_uuid = NULL,
+               log_uuid = NULL,
+               output_name = NULL,
+               output_ttl = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, name = NULL,
+                               description = NULL, properties = NULL, state = NULL,
+                               requesting_container_uuid = NULL, container_uuid = NULL,
+                               container_count_max = NULL, mounts = NULL,
+                               runtime_constraints = NULL, container_image = NULL,
+                               environment = NULL, cwd = NULL, command = NULL,
+                               output_path = NULL, priority = NULL, expires_at = NULL,
+                               filters = NULL, updated_at = NULL, container_count = NULL,
+                               use_existing = NULL, scheduling_parameters = NULL,
+                               output_uuid = NULL, log_uuid = NULL, output_name = NULL,
+                               output_ttl = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$created_at <- created_at
+                       self$modified_at <- modified_at
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$name <- name
+                       self$description <- description
+                       self$properties <- properties
+                       self$state <- state
+                       self$requesting_container_uuid <- requesting_container_uuid
+                       self$container_uuid <- container_uuid
+                       self$container_count_max <- container_count_max
+                       self$mounts <- mounts
+                       self$runtime_constraints <- runtime_constraints
+                       self$container_image <- container_image
+                       self$environment <- environment
+                       self$cwd <- cwd
+                       self$command <- command
+                       self$output_path <- output_path
+                       self$priority <- priority
+                       self$expires_at <- expires_at
+                       self$filters <- filters
+                       self$updated_at <- updated_at
+                       self$container_count <- container_count
+                       self$use_existing <- use_existing
+                       self$scheduling_parameters <- scheduling_parameters
+                       self$output_uuid <- output_uuid
+                       self$log_uuid <- log_uuid
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("containerrequest" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+AuthorizedKeyList <- R6::R6Class(
+
+       "AuthorizedKeyList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("authorizedkeylist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+AuthorizedKey <- R6::R6Class(
+
+       "AuthorizedKey",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               name = NULL,
+               key_type = NULL,
+               authorized_user_uuid = NULL,
+               public_key = NULL,
+               expires_at = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, name = NULL, key_type = NULL,
+                               authorized_user_uuid = NULL, public_key = NULL,
+                               expires_at = NULL, created_at = NULL, updated_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$name <- name
+                       self$key_type <- key_type
+                       self$authorized_user_uuid <- authorized_user_uuid
+                       self$public_key <- public_key
+                       self$expires_at <- expires_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("authorizedkey" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+CollectionList <- R6::R6Class(
+
+       "CollectionList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("collectionlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+ContainerList <- R6::R6Class(
+
+       "ContainerList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("containerlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Container <- R6::R6Class(
+
+       "Container",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               created_at = NULL,
+               modified_at = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               state = NULL,
+               started_at = NULL,
+               finished_at = NULL,
+               log = NULL,
+               environment = NULL,
+               cwd = NULL,
+               command = NULL,
+               output_path = NULL,
+               mounts = NULL,
+               runtime_constraints = NULL,
+               output = NULL,
+               container_image = NULL,
+               progress = NULL,
+               priority = NULL,
+               updated_at = NULL,
+               exit_code = NULL,
+               auth_uuid = NULL,
+               locked_by_uuid = NULL,
+               scheduling_parameters = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, state = NULL,
+                               started_at = NULL, finished_at = NULL, log = NULL,
+                               environment = NULL, cwd = NULL, command = NULL,
+                               output_path = NULL, mounts = NULL, runtime_constraints = NULL,
+                               output = NULL, container_image = NULL, progress = NULL,
+                               priority = NULL, updated_at = NULL, exit_code = NULL,
+                               auth_uuid = NULL, locked_by_uuid = NULL,
+                               scheduling_parameters = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$created_at <- created_at
+                       self$modified_at <- modified_at
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$state <- state
+                       self$started_at <- started_at
+                       self$finished_at <- finished_at
+                       self$log <- log
+                       self$environment <- environment
+                       self$cwd <- cwd
+                       self$command <- command
+                       self$output_path <- output_path
+                       self$mounts <- mounts
+                       self$runtime_constraints <- runtime_constraints
+                       self$output <- output
+                       self$container_image <- container_image
+                       self$progress <- progress
+                       self$priority <- priority
+                       self$updated_at <- updated_at
+                       self$exit_code <- exit_code
+                       self$auth_uuid <- auth_uuid
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("container" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+HumanList <- R6::R6Class(
+
+       "HumanList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("humanlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Human <- R6::R6Class(
+
+       "Human",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               properties = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, properties = NULL, created_at = NULL,
+                               updated_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$properties <- properties
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("human" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+JobTaskList <- R6::R6Class(
+
+       "JobTaskList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("jobtasklist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+JobTask <- R6::R6Class(
+
+       "JobTask",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               job_uuid = NULL,
+               sequence = NULL,
+               parameters = NULL,
+               output = NULL,
+               progress = NULL,
+               success = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               created_by_job_task_uuid = NULL,
+               qsequence = NULL,
+               started_at = NULL,
+               finished_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, job_uuid = NULL, sequence = NULL,
+                               parameters = NULL, output = NULL, progress = NULL,
+                               success = NULL, created_at = NULL, updated_at = NULL,
+                               created_by_job_task_uuid = NULL, qsequence = NULL,
+                               started_at = NULL, finished_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$job_uuid <- job_uuid
+                       self$sequence <- sequence
+                       self$parameters <- parameters
+                       self$output <- output
+                       self$progress <- progress
+                       self$success <- success
+                       self$created_at <- created_at
+                       self$updated_at <- updated_at
+                       self$created_by_job_task_uuid <- created_by_job_task_uuid
+                       self$qsequence <- qsequence
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("jobtask" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+LinkList <- R6::R6Class(
+
+       "LinkList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("linklist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Link <- R6::R6Class(
+
+       "Link",
+
+       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,
+               tail_uuid = NULL,
+               link_class = NULL,
+               name = NULL,
+               head_uuid = NULL,
+               properties = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               tail_uuid = NULL, link_class = NULL, name = NULL,
+                               head_uuid = NULL, properties = NULL, updated_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$tail_uuid <- tail_uuid
+                       self$link_class <- link_class
+                       self$name <- name
+                       self$head_uuid <- head_uuid
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("link" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+JobList <- R6::R6Class(
+
+       "JobList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("joblist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Job <- R6::R6Class(
+
+       "Job",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               submit_id = NULL,
+               script = NULL,
+               script_version = NULL,
+               script_parameters = NULL,
+               cancelled_by_client_uuid = NULL,
+               cancelled_by_user_uuid = NULL,
+               cancelled_at = NULL,
+               started_at = NULL,
+               finished_at = NULL,
+               running = NULL,
+               success = NULL,
+               output = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               is_locked_by_uuid = NULL,
+               log = NULL,
+               tasks_summary = NULL,
+               runtime_constraints = NULL,
+               nondeterministic = NULL,
+               repository = NULL,
+               supplied_script_version = NULL,
+               docker_image_locator = NULL,
+               priority = NULL,
+               description = NULL,
+               state = NULL,
+               arvados_sdk_version = NULL,
+               components = NULL,
+               script_parameters_digest = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, submit_id = NULL, script = NULL,
+                               script_version = NULL, script_parameters = NULL,
+                               cancelled_by_client_uuid = NULL, cancelled_by_user_uuid = NULL,
+                               cancelled_at = NULL, started_at = NULL, finished_at = NULL,
+                               running = NULL, success = NULL, output = NULL,
+                               created_at = NULL, updated_at = NULL, is_locked_by_uuid = NULL,
+                               log = NULL, tasks_summary = NULL, runtime_constraints = NULL,
+                               nondeterministic = NULL, repository = NULL,
+                               supplied_script_version = NULL, docker_image_locator = NULL,
+                               priority = NULL, description = NULL, state = NULL,
+                               arvados_sdk_version = NULL, components = NULL,
+                               script_parameters_digest = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$submit_id <- submit_id
+                       self$script <- script
+                       self$script_version <- script_version
+                       self$script_parameters <- script_parameters
+                       self$cancelled_by_client_uuid <- cancelled_by_client_uuid
+                       self$cancelled_by_user_uuid <- cancelled_by_user_uuid
+                       self$cancelled_at <- cancelled_at
+                       self$started_at <- started_at
+                       self$finished_at <- finished_at
+                       self$running <- running
+                       self$success <- success
+                       self$output <- output
+                       self$created_at <- created_at
+                       self$updated_at <- updated_at
+                       self$is_locked_by_uuid <- is_locked_by_uuid
+                       self$log <- log
+                       self$tasks_summary <- tasks_summary
+                       self$runtime_constraints <- runtime_constraints
+                       self$nondeterministic <- nondeterministic
+                       self$repository <- repository
+                       self$supplied_script_version <- supplied_script_version
+                       self$docker_image_locator <- docker_image_locator
+                       self$priority <- priority
+                       self$description <- description
+                       self$state <- state
+                       self$arvados_sdk_version <- arvados_sdk_version
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("job" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+KeepDiskList <- R6::R6Class(
+
+       "KeepDiskList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("keepdisklist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+KeepDisk <- R6::R6Class(
+
+       "KeepDisk",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               ping_secret = NULL,
+               node_uuid = NULL,
+               filesystem_uuid = NULL,
+               bytes_total = NULL,
+               bytes_free = NULL,
+               is_readable = NULL,
+               is_writable = NULL,
+               last_read_at = NULL,
+               last_write_at = NULL,
+               last_ping_at = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               keep_service_uuid = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, ping_secret = NULL, node_uuid = NULL,
+                               filesystem_uuid = NULL, bytes_total = NULL,
+                               bytes_free = NULL, is_readable = NULL, is_writable = NULL,
+                               last_read_at = NULL, last_write_at = NULL,
+                               last_ping_at = NULL, created_at = NULL, updated_at = NULL,
+                               keep_service_uuid = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$ping_secret <- ping_secret
+                       self$node_uuid <- node_uuid
+                       self$filesystem_uuid <- filesystem_uuid
+                       self$bytes_total <- bytes_total
+                       self$bytes_free <- bytes_free
+                       self$is_readable <- is_readable
+                       self$is_writable <- is_writable
+                       self$last_read_at <- last_read_at
+                       self$last_write_at <- last_write_at
+                       self$last_ping_at <- last_ping_at
+                       self$created_at <- created_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("keepdisk" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+KeepServiceList <- R6::R6Class(
+
+       "KeepServiceList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("keepservicelist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+KeepService <- R6::R6Class(
+
+       "KeepService",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               service_host = NULL,
+               service_port = NULL,
+               service_ssl_flag = NULL,
+               service_type = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               read_only = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, service_host = NULL,
+                               service_port = NULL, service_ssl_flag = NULL,
+                               service_type = NULL, created_at = NULL, updated_at = NULL,
+                               read_only = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$service_host <- service_host
+                       self$service_port <- service_port
+                       self$service_ssl_flag <- service_ssl_flag
+                       self$service_type <- service_type
+                       self$created_at <- created_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("keepservice" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+PipelineTemplateList <- R6::R6Class(
+
+       "PipelineTemplateList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("pipelinetemplatelist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+PipelineTemplate <- R6::R6Class(
+
+       "PipelineTemplate",
+
+       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,
+               name = NULL,
+               components = NULL,
+               updated_at = NULL,
+               description = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               name = NULL, components = NULL, updated_at = NULL,
+                               description = 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$name <- name
+                       self$components <- components
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("pipelinetemplate" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+PipelineInstanceList <- R6::R6Class(
+
+       "PipelineInstanceList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("pipelineinstancelist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+PipelineInstance <- R6::R6Class(
+
+       "PipelineInstance",
+
+       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,
+               pipeline_template_uuid = NULL,
+               name = NULL,
+               components = NULL,
+               updated_at = NULL,
+               properties = NULL,
+               state = NULL,
+               components_summary = NULL,
+               started_at = NULL,
+               finished_at = NULL,
+               description = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               pipeline_template_uuid = NULL, name = NULL,
+                               components = NULL, updated_at = NULL, properties = NULL,
+                               state = NULL, components_summary = NULL,
+                               started_at = NULL, finished_at = NULL, description = 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$pipeline_template_uuid <- pipeline_template_uuid
+                       self$name <- name
+                       self$components <- components
+                       self$updated_at <- updated_at
+                       self$properties <- properties
+                       self$state <- state
+                       self$components_summary <- components_summary
+                       self$started_at <- started_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("pipelineinstance" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+NodeList <- R6::R6Class(
+
+       "NodeList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("nodelist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Node <- R6::R6Class(
+
+       "Node",
+
+       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,
+               slot_number = NULL,
+               hostname = NULL,
+               domain = NULL,
+               ip_address = NULL,
+               first_ping_at = NULL,
+               last_ping_at = NULL,
+               info = NULL,
+               updated_at = NULL,
+               properties = NULL,
+               job_uuid = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               slot_number = NULL, hostname = NULL, domain = NULL,
+                               ip_address = NULL, first_ping_at = NULL,
+                               last_ping_at = NULL, info = NULL, updated_at = NULL,
+                               properties = NULL, job_uuid = 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$slot_number <- slot_number
+                       self$hostname <- hostname
+                       self$domain <- domain
+                       self$ip_address <- ip_address
+                       self$first_ping_at <- first_ping_at
+                       self$last_ping_at <- last_ping_at
+                       self$info <- info
+                       self$updated_at <- updated_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("node" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+RepositoryList <- R6::R6Class(
+
+       "RepositoryList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("repositorylist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Repository <- R6::R6Class(
+
+       "Repository",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               name = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, name = NULL, created_at = NULL,
+                               updated_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$name <- name
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("repository" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+SpecimenList <- R6::R6Class(
+
+       "SpecimenList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("specimenlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Specimen <- R6::R6Class(
+
+       "Specimen",
+
+       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,
+               material = NULL,
+               updated_at = NULL,
+               properties = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               material = NULL, updated_at = NULL, properties = 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$material <- material
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("specimen" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+LogList <- R6::R6Class(
+
+       "LogList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("loglist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Log <- R6::R6Class(
+
+       "Log",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               object_uuid = NULL,
+               event_at = NULL,
+               event_type = NULL,
+               summary = NULL,
+               properties = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+               modified_at = NULL,
+               object_owner_uuid = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               object_uuid = NULL, event_at = NULL, event_type = NULL,
+                               summary = NULL, properties = NULL, created_at = NULL,
+                               updated_at = NULL, modified_at = NULL, object_owner_uuid = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$object_uuid <- object_uuid
+                       self$event_at <- event_at
+                       self$event_type <- event_type
+                       self$summary <- summary
+                       self$properties <- properties
+                       self$created_at <- created_at
+                       self$updated_at <- updated_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("log" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+TraitList <- R6::R6Class(
+
+       "TraitList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("traitlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Trait <- R6::R6Class(
+
+       "Trait",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               name = NULL,
+               properties = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, name = NULL, properties = NULL,
+                               created_at = NULL, updated_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$name <- name
+                       self$properties <- properties
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("trait" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+VirtualMachineList <- R6::R6Class(
+
+       "VirtualMachineList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("virtualmachinelist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+VirtualMachine <- R6::R6Class(
+
+       "VirtualMachine",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               modified_at = NULL,
+               hostname = NULL,
+               created_at = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               modified_by_client_uuid = NULL, modified_by_user_uuid = NULL,
+                               modified_at = NULL, hostname = NULL, created_at = NULL,
+                               updated_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$modified_at <- modified_at
+                       self$hostname <- hostname
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("virtualmachine" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+WorkflowList <- R6::R6Class(
+
+       "WorkflowList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("workflowlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Workflow <- R6::R6Class(
+
+       "Workflow",
+
+       public = list(
+               uuid = NULL,
+               etag = NULL,
+               owner_uuid = NULL,
+               created_at = NULL,
+               modified_at = NULL,
+               modified_by_client_uuid = NULL,
+               modified_by_user_uuid = NULL,
+               name = NULL,
+               description = NULL,
+               definition = NULL,
+               updated_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, name = NULL,
+                               description = NULL, definition = NULL, updated_at = NULL)
+               {
+                       self$uuid <- uuid
+                       self$etag <- etag
+                       self$owner_uuid <- owner_uuid
+                       self$created_at <- created_at
+                       self$modified_at <- modified_at
+                       self$modified_by_client_uuid <- modified_by_client_uuid
+                       self$modified_by_user_uuid <- modified_by_user_uuid
+                       self$name <- name
+                       self$description <- description
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("workflow" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+GroupList <- R6::R6Class(
+
+       "GroupList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("grouplist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+Group <- R6::R6Class(
+
+       "Group",
+
+       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,
+               name = NULL,
+               description = NULL,
+               updated_at = NULL,
+               group_class = NULL,
+               trash_at = NULL,
+               is_trashed = NULL,
+               delete_at = NULL,
+
+               initialize = function(
+                               uuid = NULL, etag = NULL, owner_uuid = NULL,
+                               created_at = NULL, modified_by_client_uuid = NULL,
+                               modified_by_user_uuid = NULL, modified_at = NULL,
+                               name = NULL, description = NULL, updated_at = NULL,
+                               group_class = NULL, trash_at = NULL, is_trashed = NULL,
+                               delete_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$name <- name
+                       self$description <- description
+                       self$updated_at <- updated_at
+                       self$group_class <- group_class
+                       self$trash_at <- trash_at
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("group" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+UserAgreementList <- R6::R6Class(
+
+       "UserAgreementList",
+
+       public = list(
+               kind = NULL,
+               etag = NULL,
+               items = NULL,
+               next_link = NULL,
+               next_page_token = NULL,
+               selfLink = NULL,
+
+               initialize = function(
+                               kind = NULL, etag = NULL, items = NULL, next_link = NULL,
+                               next_page_token = NULL, selfLink = NULL)
+               {
+                       self$kind <- kind
+                       self$etag <- etag
+                       self$items <- items
+                       self$next_link <- next_link
+                       self$next_page_token <- next_page_token
+                       self$selfLink <- selfLink
+                       
+                       private$classFields <- c(
+                               kind, etag, items, next_link, next_page_token,
+                               selfLink
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("useragreementlist" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
+#' @export
+UserAgreement <- R6::R6Class(
+
+       "UserAgreement",
+
+       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,
+
+               initialize = function(
+                               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)
+               {
+                       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
+                       
+                       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
+                       )
+               },
+
+               toJSON = function() {
+                       fields <- sapply(private$classFields, function(field)
+                       {
+                               self[[field]]
+                       }, USE.NAMES = TRUE)
+                       
+                       jsonlite::toJSON(list("useragreement" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)
+               }
+       ),
+
+       private = list(
+               classFields = NULL
+       ),
+
+       cloneable = FALSE
+)
+
index 95206a4a0a096010f2d023d565fcd46a93cf5546..7dedfa50edd893d33658e4ef2e3d17b68eb47b31 100644 (file)
@@ -64,9 +64,9 @@ getFunctionArguments <- function(functionMetaData)
 
     if(!is.null(request))
         if(request$required)
-            requestArgument <- names(request$properties)[1]
+            requestArgument <- names(request$properties)
         else
-            requestArgument <- paste(names(request$properties)[1], "=", "NULL")
+            requestArgument <- paste(names(request$properties), "=", "NULL")
 
     argNames <- names(functionMetaData$parameters)
 
@@ -85,7 +85,7 @@ getFunctionArguments <- function(functionMetaData)
         argName
     })
 
-    paste0(c(requestArgument, args), collapse = ", ")
+    paste0(c(requestArgument, args))
 }
 
 getFunctionBody <- function(functionMetaData, classMetaData)
@@ -96,12 +96,25 @@ getFunctionBody <- function(functionMetaData, classMetaData)
     requestBody <- getRequestBody(functionMetaData)
     request <- getRequest(functionMetaData)
     response <- getResponse(functionMetaData)
+    errorCheck <- getErrorCheckingCode()
     returnObject <- getReturnObject(functionMetaData, classMetaData)
 
-    body <- c(url, headers, requestQueryList, requestBody, request, response, returnObject)
+    body <- c(url,
+              headers,
+              requestQueryList,
+              requestBody, "",
+              request, response, "",
+              errorCheck, "",
+              returnObject)
+
     paste0("\t\t\t", body)
 }
 
+getErrorCheckingCode <- function()
+{
+    c("if(!is.null(resource$errors))", "\tstop(resource$errors)")
+}
+
 getRequestBody <- function(functionMetaData)
 {
     request <- functionMetaData$request
@@ -115,8 +128,8 @@ getRequestBody <- function(functionMetaData)
 
 getRequestHeaders <- function()
 {
-    paste0("headers <- list(Authorization = paste(\"OAuth2\", private$token), ",
-                            "\"Content-Type\" = \"application/json\")")
+    c("headers <- list(Authorization = paste(\"OAuth2\", private$token), ",
+      "                \"Content-Type\" = \"application/json\")")
 }
 
 getReturnObject <- function(functionMetaData, classMetaData)
@@ -124,12 +137,16 @@ getReturnObject <- function(functionMetaData, classMetaData)
     returnClass <- functionMetaData$response[["$ref"]]
     classArguments <- getReturnClassArguments(returnClass, classMetaData)
 
+
     if(returnClass == "Collection")
-        return(c(paste0("collection <- ", returnClass, "$new(", classArguments, ")"),
+        return(c("collection <- Collection$new(",
+                 paste0("\t", splitArgs(classArguments, 40, ")")),
+                 "",
                  "collection$setRESTService(private$REST)",
                  "collection"))
 
-    c(paste0(returnClass, "$new(", classArguments, ")"))
+    c(paste0(returnClass, "$new("),
+      paste0("\t", splitArgs(classArguments, 40, ")")))
 }
 
 getReturnClassArguments <- function(className, classMetaData)
@@ -141,13 +158,14 @@ getReturnClassArguments <- function(className, classMetaData)
         paste0(arg, " = resource$", arg)
     })
 
-    paste0(arguments, collapse = ", ")
+    arguments
 }
 
 getRequest <- function(functionMetaData)
 {
     method <- functionMetaData$httpMethod
-    paste0("response <- private$REST$http$exec(\"", method, "\", url, headers, body, queryArgs)")
+    c(paste0("response <- private$REST$http$exec(\"", method, "\", url, headers, body,"),
+      "                                   queryArgs, private$numRetries)")
 }
 
 getResponse <- function(functionMetaData)
@@ -166,30 +184,56 @@ getRequestURL <- function(functionMetaData)
 
 getRequestQueryList <- function(functionMetaData)
 {
-    argNames <- names(functionMetaData$parameters)
+    args <- names(functionMetaData$parameters)
 
-    if(length(argNames) == 0)
+    if(length(args) == 0)
         return("queryArgs <- NULL")
 
-    queryListContent <- sapply(argNames, function(arg) paste0(arg, " = ", arg))
+    args <- sapply(args, function(arg) paste0(arg, " = ", arg))
+    collapsedArgs <- paste0(args, collapse = ", ")
 
-    paste0("queryArgs <- list(", paste0(queryListContent, collapse = ', ') , ")")
+    if(nchar(collapsedArgs) > 40)
+    {
+        formatedArgs <- splitArgs(args, 40, ")")
+        return(c(paste0("queryArgs <- list("),
+                 paste0("\t\t", formatedArgs)))
+    }
+    else
+    {
+        return(paste0("queryArgs <- list(", collapsedArgs, ")"))
+    }
 }
 
 createFunction <- function(functionName, functionMetaData, classMetaData)
 {
     args <- getFunctionArguments(functionMetaData)
-    aditionalArgs <- 
     body <- getFunctionBody(functionMetaData, classMetaData)
+    funSignature <- getFunSignature(functionName, args)
 
-    functionString <- c(paste0("\t\t", functionName, " = function(", args, ")"),
-                       "\t\t{",
-                           body,
-                       "\t\t},\n")
+    functionString <- c(funSignature,
+                        "\t\t{",
+                            body,
+                        "\t\t},\n")
 
     functionString
 }
 
+getFunSignature <- function(funName, args)
+{
+    collapsedArgs <- paste0(args, collapse = ", ")
+
+    if(nchar(collapsedArgs) > 40)
+    {
+        formatedArgs <- splitArgs(args, 40, ")")
+        return(c(paste0("\t\t", funName, " = function("),
+                 paste0("\t\t\t\t", formatedArgs)))
+    }
+    else
+    {
+        return(paste0("\t\t", funName, " = function(", collapsedArgs, ")"))
+    }
+}
+
 generateAPIClassHeader <- function()
 {
     c("#' @export",
@@ -266,8 +310,8 @@ getArvadosClass <- function(classSchema)
 {
     name   <- classSchema$id
     fields <- unique(names(classSchema$properties))
-    fieldsList <- paste0("c(", paste0("\"", fields, "\"", collapse = ", "), ")")
-    constructorArgs <- paste0(fields, " = NULL", collapse = ", ")
+    #fieldsList <- paste0("c(", paste0("\"", fields, "\"", collapse = ", "), ")")
+    constructorArgs <- paste(fields, "= NULL")
 
     classString <- c("#' @export",
               paste0(name, " <- R6::R6Class("),
@@ -277,10 +321,14 @@ getArvadosClass <- function(classSchema)
                      "\tpublic = list(",
               paste0("\t\t", fields, " = NULL,"),
                      "",
-              paste0("\t\tinitialize = function(", constructorArgs, ") {"),
+                     "\t\tinitialize = function(",
+                     paste0("\t\t\t\t", splitArgs(constructorArgs, 40, ")")),
+                     "\t\t{", 
               paste0("\t\t\tself$", fields, " <- ", fields),
                      "\t\t\t",
-              paste0("\t\t\tprivate$classFields <- ", fieldsList),
+                     "\t\t\tprivate$classFields <- c(",
+              paste0("\t\t\t\t", splitArgs(fields, 40)),
+                     "\t\t\t)",
                      "\t\t},",
                      "",
                      "\t\ttoJSON = function() {",
@@ -289,7 +337,8 @@ getArvadosClass <- function(classSchema)
                      "\t\t\t\tself[[field]]",
                      "\t\t\t}, USE.NAMES = TRUE)",
                      "\t\t\t",
-              paste0("\t\t\tjsonlite::toJSON(list(\"", tolower(name), "\" = Filter(Negate(is.null), fields)), auto_unbox = TRUE)"),
+              paste0("\t\t\tjsonlite::toJSON(list(\"", tolower(name), "\" = 
+                     Filter(Negate(is.null), fields)), auto_unbox = TRUE)"),
                      "\t\t}",
                      "\t),",
                      "",
@@ -301,3 +350,32 @@ getArvadosClass <- function(classSchema)
                      ")",
                      "")
 }
+
+splitArgs <- function(args, lineLength, appendAtEnd = "")
+{
+    
+    if(length(args) > 1)
+        args[1:(length(args) - 1)] <- paste0(args[1:(length(args) - 1)], ",") 
+
+    args[length(args)] <- paste0(args[length(args)], appendAtEnd)
+
+    argsLength <- length(args)
+    argLines <- list()
+    index <- 1
+
+    while(index <= argsLength)
+    {
+        line <- args[index]
+        index <- index + 1
+
+        while(nchar(line) < lineLength && index <= argsLength)
+        {
+            line <- paste(line, args[index])
+            index <- index + 1
+        }
+
+        argLines <- c(argLines, line)
+    }
+    
+    unlist(argLines)
+}