R/multi_array_udf.R

# TileDB Storage Platform API
#
# TileDB Storage Platform REST API
#
# The version of the OpenAPI document: 2.2.19
# 
# Generated by: https://openapi-generator.tech

#' @docType class
#' @title MultiArrayUDF
#'
#' @description MultiArrayUDF Class
#'
#' @format An \code{R6Class} generator object
#'
#' @field udf_info_name  character [optional]
#'
#' @field language  \link{UDFLanguage} [optional]
#'
#' @field version  character [optional]
#'
#' @field image_name  character [optional]
#'
#' @field resource_class  character [optional]
#'
#' @field exec  character [optional]
#'
#' @field exec_raw  character [optional]
#'
#' @field result_format  \link{ResultFormat} [optional]
#'
#' @field task_name  character [optional]
#'
#' @field argument  character [optional]
#'
#' @field arguments_json  list( \link{TGUDFArgument} ) [optional]
#'
#' @field stored_param_uuids  list( character ) [optional]
#'
#' @field store_results  character [optional]
#'
#' @field dont_download_results  character [optional]
#'
#' @field ranges  \link{QueryRanges} [optional]
#'
#' @field subarray  \link{UDFSubarray} [optional]
#'
#' @field buffers  list( character ) [optional]
#'
#' @field arrays  list( \link{UDFArrayDetails} ) [optional]
#'
#' @field timeout  integer [optional]
#'
#' @field task_graph_uuid  character [optional]
#'
#' @field client_node_uuid  character [optional]
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
MultiArrayUDF <- R6::R6Class(
  'MultiArrayUDF',
  public = list(
    `udf_info_name` = NULL,
    `language` = NULL,
    `version` = NULL,
    `image_name` = NULL,
    `resource_class` = NULL,
    `exec` = NULL,
    `exec_raw` = NULL,
    `result_format` = NULL,
    `task_name` = NULL,
    `argument` = NULL,
    `arguments_json` = NULL,
    `stored_param_uuids` = NULL,
    `store_results` = NULL,
    `dont_download_results` = NULL,
    `ranges` = NULL,
    `subarray` = NULL,
    `buffers` = NULL,
    `arrays` = NULL,
    `timeout` = NULL,
    `task_graph_uuid` = NULL,
    `client_node_uuid` = NULL,
    initialize = function(
        `udf_info_name`=NULL, `language`=NULL, `version`=NULL, `image_name`=NULL, `resource_class`=NULL, `exec`=NULL, `exec_raw`=NULL, `result_format`=NULL, `task_name`=NULL, `argument`=NULL, `arguments_json`=NULL, `stored_param_uuids`=NULL, `store_results`=NULL, `dont_download_results`=NULL, `ranges`=NULL, `subarray`=NULL, `buffers`=NULL, `arrays`=NULL, `timeout`=NULL, `task_graph_uuid`=NULL, `client_node_uuid`=NULL, ...
    ) {
      local.optional.var <- list(...)
      if (!is.null(`udf_info_name`)) {
        stopifnot(is.character(`udf_info_name`), length(`udf_info_name`) == 1)
        self$`udf_info_name` <- `udf_info_name`
      }
      if (!is.null(`language`)) {
        stopifnot(R6::is.R6(`language`))
        self$`language` <- `language`
      }
      if (!is.null(`version`)) {
        stopifnot(is.character(`version`), length(`version`) == 1)
        self$`version` <- `version`
      }
      if (!is.null(`image_name`)) {
        stopifnot(is.character(`image_name`), length(`image_name`) == 1)
        self$`image_name` <- `image_name`
      }
      if (!is.null(`resource_class`)) {
        stopifnot(is.character(`resource_class`), length(`resource_class`) == 1)
        self$`resource_class` <- `resource_class`
      }
      if (!is.null(`exec`)) {
        stopifnot(is.character(`exec`), length(`exec`) == 1)
        self$`exec` <- `exec`
      }
      if (!is.null(`exec_raw`)) {
        stopifnot(is.character(`exec_raw`), length(`exec_raw`) == 1)
        self$`exec_raw` <- `exec_raw`
      }
      if (!is.null(`result_format`)) {
        stopifnot(R6::is.R6(`result_format`))
        self$`result_format` <- `result_format`
      }
      if (!is.null(`task_name`)) {
        stopifnot(is.character(`task_name`), length(`task_name`) == 1)
        self$`task_name` <- `task_name`
      }
      if (!is.null(`argument`)) {
        stopifnot(is.character(`argument`), length(`argument`) == 1)
        self$`argument` <- `argument`
      }
      if (!is.null(`arguments_json`)) {
        stopifnot(is.vector(`arguments_json`), length(`arguments_json`) != 0)
        sapply(`arguments_json`, function(x) stopifnot(R6::is.R6(x)))
        self$`arguments_json` <- `arguments_json`
      }
      if (!is.null(`stored_param_uuids`)) {
        stopifnot(is.vector(`stored_param_uuids`), length(`stored_param_uuids`) != 0)
        sapply(`stored_param_uuids`, function(x) stopifnot(is.character(x)))
        self$`stored_param_uuids` <- `stored_param_uuids`
      }
      if (!is.null(`store_results`)) {
        self$`store_results` <- `store_results`
      }
      if (!is.null(`dont_download_results`)) {
        self$`dont_download_results` <- `dont_download_results`
      }
      if (!is.null(`ranges`)) {
        stopifnot(R6::is.R6(`ranges`))
        self$`ranges` <- `ranges`
      }
      if (!is.null(`subarray`)) {
        stopifnot(R6::is.R6(`subarray`))
        self$`subarray` <- `subarray`
      }
      if (!is.null(`buffers`)) {
        stopifnot(is.vector(`buffers`), length(`buffers`) != 0)
        sapply(`buffers`, function(x) stopifnot(is.character(x)))
        self$`buffers` <- `buffers`
      }
      if (!is.null(`arrays`)) {
        stopifnot(is.vector(`arrays`), length(`arrays`) != 0)
        sapply(`arrays`, function(x) stopifnot(R6::is.R6(x)))
        self$`arrays` <- `arrays`
      }
      if (!is.null(`timeout`)) {
        stopifnot(is.numeric(`timeout`), length(`timeout`) == 1)
        self$`timeout` <- `timeout`
      }
      if (!is.null(`task_graph_uuid`)) {
        stopifnot(is.character(`task_graph_uuid`), length(`task_graph_uuid`) == 1)
        self$`task_graph_uuid` <- `task_graph_uuid`
      }
      if (!is.null(`client_node_uuid`)) {
        stopifnot(is.character(`client_node_uuid`), length(`client_node_uuid`) == 1)
        self$`client_node_uuid` <- `client_node_uuid`
      }
    },
    toJSON = function() {
      MultiArrayUDFObject <- list()
      if (!is.null(self$`udf_info_name`)) {
        MultiArrayUDFObject[['udf_info_name']] <-
          self$`udf_info_name`
      }
      if (!is.null(self$`language`)) {
        MultiArrayUDFObject[['language']] <-
          self$`language`$toJSON()
      }
      if (!is.null(self$`version`)) {
        MultiArrayUDFObject[['version']] <-
          self$`version`
      }
      if (!is.null(self$`image_name`)) {
        MultiArrayUDFObject[['image_name']] <-
          self$`image_name`
      }
      if (!is.null(self$`resource_class`)) {
        MultiArrayUDFObject[['resource_class']] <-
          self$`resource_class`
      }
      if (!is.null(self$`exec`)) {
        MultiArrayUDFObject[['exec']] <-
          self$`exec`
      }
      if (!is.null(self$`exec_raw`)) {
        MultiArrayUDFObject[['exec_raw']] <-
          self$`exec_raw`
      }
      if (!is.null(self$`result_format`)) {
        MultiArrayUDFObject[['result_format']] <-
          self$`result_format`$toJSON()
      }
      if (!is.null(self$`task_name`)) {
        MultiArrayUDFObject[['task_name']] <-
          self$`task_name`
      }
      if (!is.null(self$`argument`)) {
        MultiArrayUDFObject[['argument']] <-
          self$`argument`
      }
      if (!is.null(self$`arguments_json`)) {
        MultiArrayUDFObject[['arguments_json']] <-
          lapply(self$`arguments_json`, function(x) x$toJSON())
      }
      if (!is.null(self$`stored_param_uuids`)) {
        MultiArrayUDFObject[['stored_param_uuids']] <-
          self$`stored_param_uuids`
      }
      if (!is.null(self$`store_results`)) {
        MultiArrayUDFObject[['store_results']] <-
          self$`store_results`
      }
      if (!is.null(self$`dont_download_results`)) {
        MultiArrayUDFObject[['dont_download_results']] <-
          self$`dont_download_results`
      }
      if (!is.null(self$`ranges`)) {
        MultiArrayUDFObject[['ranges']] <-
          self$`ranges`$toJSON()
      }
      if (!is.null(self$`subarray`)) {
        MultiArrayUDFObject[['subarray']] <-
          self$`subarray`$toJSON()
      }
      if (!is.null(self$`buffers`)) {
        MultiArrayUDFObject[['buffers']] <-
          self$`buffers`
      }
      if (!is.null(self$`arrays`)) {
        MultiArrayUDFObject[['arrays']] <-
          lapply(self$`arrays`, function(x) x$toJSON())
      }
      if (!is.null(self$`timeout`)) {
        MultiArrayUDFObject[['timeout']] <-
          self$`timeout`
      }
      if (!is.null(self$`task_graph_uuid`)) {
        MultiArrayUDFObject[['task_graph_uuid']] <-
          self$`task_graph_uuid`
      }
      if (!is.null(self$`client_node_uuid`)) {
        MultiArrayUDFObject[['client_node_uuid']] <-
          self$`client_node_uuid`
      }

      MultiArrayUDFObject
    },
    fromJSON = function(MultiArrayUDFJson) {
      MultiArrayUDFObject <- jsonlite::fromJSON(MultiArrayUDFJson)
      if (!is.null(MultiArrayUDFObject$`udf_info_name`)) {
        self$`udf_info_name` <- MultiArrayUDFObject$`udf_info_name`
      }
      if (!is.null(MultiArrayUDFObject$`language`)) {
        # MANUAL EDIT AFTER OPENAPI AUTOGEN
        # For enums, OpenAPI autogen (1) generates a constructor which requires being called
        # with one arguent; (2) generates callsites (such as here) that calls that constructor
        # with zero arguments.
        #
        #languageObject <- UDFLanguage$new()
        #languageObject$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$language, auto_unbox = TRUE, digits = NA))
        languageObject <- UDFLanguage$new(MultiArrayUDFObject$language)
        self$`language` <- languageObject
      }
      if (!is.null(MultiArrayUDFObject$`version`)) {
        self$`version` <- MultiArrayUDFObject$`version`
      }
      if (!is.null(MultiArrayUDFObject$`image_name`)) {
        self$`image_name` <- MultiArrayUDFObject$`image_name`
      }
      if (!is.null(MultiArrayUDFObject$`resource_class`)) {
        self$`resource_class` <- MultiArrayUDFObject$`resource_class`
      }
      if (!is.null(MultiArrayUDFObject$`exec`)) {
        self$`exec` <- MultiArrayUDFObject$`exec`
      }
      if (!is.null(MultiArrayUDFObject$`exec_raw`)) {
        self$`exec_raw` <- MultiArrayUDFObject$`exec_raw`
      }
      if (!is.null(MultiArrayUDFObject$`result_format`)) {
        # MANUAL EDIT AFTER OPENAPI AUTOGEN
        # For enums, OpenAPI autogen (1) generates a constructor which requires being called
        # with one arguent; (2) generates callsites (such as here) that calls that constructor
        # with zero arguments.
        #
        #result_formatObject <- ResultFormat$new()
        #result_formatObject$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$result_format, auto_unbox = TRUE, digits = NA))
        result_formatObject <- ResultFormat$new(MultiArrayUDFObject$result_format)
        self$`result_format` <- result_formatObject
      }
      if (!is.null(MultiArrayUDFObject$`task_name`)) {
        self$`task_name` <- MultiArrayUDFObject$`task_name`
      }
      if (!is.null(MultiArrayUDFObject$`argument`)) {
        self$`argument` <- MultiArrayUDFObject$`argument`
      }
      if (!is.null(MultiArrayUDFObject$`arguments_json`)) {
        self$`arguments_json` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`arguments_json`, "array[TGUDFArgument]", loadNamespace("tiledbcloud"))
      }
      if (!is.null(MultiArrayUDFObject$`stored_param_uuids`)) {
        self$`stored_param_uuids` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`stored_param_uuids`, "array[character]", loadNamespace("tiledbcloud"))
      }
      if (!is.null(MultiArrayUDFObject$`store_results`)) {
        self$`store_results` <- MultiArrayUDFObject$`store_results`
      }
      if (!is.null(MultiArrayUDFObject$`dont_download_results`)) {
        self$`dont_download_results` <- MultiArrayUDFObject$`dont_download_results`
      }
      if (!is.null(MultiArrayUDFObject$`ranges`)) {
        rangesObject <- QueryRanges$new()
        rangesObject$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$ranges, auto_unbox = TRUE, digits = NA))
        self$`ranges` <- rangesObject
      }
      if (!is.null(MultiArrayUDFObject$`subarray`)) {
        subarrayObject <- UDFSubarray$new()
        subarrayObject$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$subarray, auto_unbox = TRUE, digits = NA))
        self$`subarray` <- subarrayObject
      }
      if (!is.null(MultiArrayUDFObject$`buffers`)) {
        self$`buffers` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`buffers`, "array[character]", loadNamespace("tiledbcloud"))
      }
      if (!is.null(MultiArrayUDFObject$`arrays`)) {
        self$`arrays` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`arrays`, "array[UDFArrayDetails]", loadNamespace("tiledbcloud"))
      }
      if (!is.null(MultiArrayUDFObject$`timeout`)) {
        self$`timeout` <- MultiArrayUDFObject$`timeout`
      }
      if (!is.null(MultiArrayUDFObject$`task_graph_uuid`)) {
        self$`task_graph_uuid` <- MultiArrayUDFObject$`task_graph_uuid`
      }
      if (!is.null(MultiArrayUDFObject$`client_node_uuid`)) {
        self$`client_node_uuid` <- MultiArrayUDFObject$`client_node_uuid`
      }
      self
    },
    toJSONString = function() {
      jsoncontent <- c(
        if (!is.null(self$`udf_info_name`)) {
        sprintf(
        '"udf_info_name":
          "%s"
                ',
        self$`udf_info_name`
        )},
        if (!is.null(self$`language`)) {
        sprintf(
        '"language":
        %s
        ',
        jsonlite::toJSON(self$`language`$toJSON(), auto_unbox=TRUE, digits = NA)
        )},
        if (!is.null(self$`version`)) {
        sprintf(
        '"version":
          "%s"
                ',
        self$`version`
        )},
        if (!is.null(self$`image_name`)) {
        sprintf(
        '"image_name":
          "%s"
                ',
        self$`image_name`
        )},
        if (!is.null(self$`resource_class`)) {
        sprintf(
        '"resource_class":
          "%s"
                ',
        self$`resource_class`
        )},
        if (!is.null(self$`exec`)) {
        sprintf(
        '"exec":
          "%s"
                ',
        self$`exec`
        )},
        if (!is.null(self$`exec_raw`)) {
        sprintf(
        '"exec_raw":
          "%s"
                ',
        self$`exec_raw`
        )},
        if (!is.null(self$`result_format`)) {
        sprintf(
        '"result_format":
        %s
        ',
        jsonlite::toJSON(self$`result_format`$toJSON(), auto_unbox=TRUE, digits = NA)
        )},
        if (!is.null(self$`task_name`)) {
        sprintf(
        '"task_name":
          "%s"
                ',
        self$`task_name`
        )},
        if (!is.null(self$`argument`)) {
        sprintf(
        '"argument":
          "%s"
                ',
        self$`argument`
        )},
        if (!is.null(self$`arguments_json`)) {
        sprintf(
        '"arguments_json":
        [%s]
',
        paste(sapply(self$`arguments_json`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=TRUE, digits = NA)), collapse=",")
        )},
        if (!is.null(self$`stored_param_uuids`)) {
        sprintf(
        '"stored_param_uuids":
           [%s]
        ',
        paste(unlist(lapply(self$`stored_param_uuids`, function(x) paste0('"', x, '"'))), collapse=",")
        )},
        if (!is.null(self$`store_results`)) {
        sprintf(
        '"store_results":
          "%s"
                ',
        self$`store_results`
        )},
        if (!is.null(self$`dont_download_results`)) {
        sprintf(
        '"dont_download_results":
          "%s"
                ',
        self$`dont_download_results`
        )},
        if (!is.null(self$`ranges`)) {
        sprintf(
        '"ranges":
        %s
        ',
        jsonlite::toJSON(self$`ranges`$toJSON(), auto_unbox=TRUE, digits = NA)
        )},
        if (!is.null(self$`subarray`)) {
        sprintf(
        '"subarray":
        %s
        ',
        jsonlite::toJSON(self$`subarray`$toJSON(), auto_unbox=TRUE, digits = NA)
        )},
        if (!is.null(self$`buffers`)) {
        sprintf(
        '"buffers":
           [%s]
        ',
        paste(unlist(lapply(self$`buffers`, function(x) paste0('"', x, '"'))), collapse=",")
        )},
        if (!is.null(self$`arrays`)) {
        sprintf(
        '"arrays":
        [%s]
',
        paste(sapply(self$`arrays`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=TRUE, digits = NA)), collapse=",")
        )},
        if (!is.null(self$`timeout`)) {
        sprintf(
        '"timeout":
          %d
                ',
        self$`timeout`
        )},
        if (!is.null(self$`task_graph_uuid`)) {
        sprintf(
        '"task_graph_uuid":
          "%s"
                ',
        self$`task_graph_uuid`
        )},
        if (!is.null(self$`client_node_uuid`)) {
        sprintf(
        '"client_node_uuid":
          "%s"
                ',
        self$`client_node_uuid`
        )}
      )
      jsoncontent <- paste(jsoncontent, collapse = ",")
      paste('{', jsoncontent, '}', sep = "")
    },
    fromJSONString = function(MultiArrayUDFJson) {
      MultiArrayUDFObject <- jsonlite::fromJSON(MultiArrayUDFJson)
      self$`udf_info_name` <- MultiArrayUDFObject$`udf_info_name`
      self$`language` <- UDFLanguage$new()$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$language, auto_unbox = TRUE, digits = NA))
      self$`version` <- MultiArrayUDFObject$`version`
      self$`image_name` <- MultiArrayUDFObject$`image_name`
      self$`resource_class` <- MultiArrayUDFObject$`resource_class`
      self$`exec` <- MultiArrayUDFObject$`exec`
      self$`exec_raw` <- MultiArrayUDFObject$`exec_raw`
      self$`result_format` <- ResultFormat$new()$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$result_format, auto_unbox = TRUE, digits = NA))
      self$`task_name` <- MultiArrayUDFObject$`task_name`
      self$`argument` <- MultiArrayUDFObject$`argument`
      self$`arguments_json` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`arguments_json`, "array[TGUDFArgument]", loadNamespace("tiledbcloud"))
      self$`stored_param_uuids` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`stored_param_uuids`, "array[character]", loadNamespace("tiledbcloud"))
      self$`store_results` <- MultiArrayUDFObject$`store_results`
      self$`dont_download_results` <- MultiArrayUDFObject$`dont_download_results`
      self$`ranges` <- QueryRanges$new()$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$ranges, auto_unbox = TRUE, digits = NA))
      self$`subarray` <- UDFSubarray$new()$fromJSON(jsonlite::toJSON(MultiArrayUDFObject$subarray, auto_unbox = TRUE, digits = NA))
      self$`buffers` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`buffers`, "array[character]", loadNamespace("tiledbcloud"))
      self$`arrays` <- ApiClient$new()$deserializeObj(MultiArrayUDFObject$`arrays`, "array[UDFArrayDetails]", loadNamespace("tiledbcloud"))
      self$`timeout` <- MultiArrayUDFObject$`timeout`
      self$`task_graph_uuid` <- MultiArrayUDFObject$`task_graph_uuid`
      self$`client_node_uuid` <- MultiArrayUDFObject$`client_node_uuid`
      self
    }
  )
)
TileDB-Inc/TileDB-Cloud-R documentation built on July 18, 2024, 3:33 p.m.