#' OpenAPI Petstore
#'
#' This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
#'
#' The version of the OpenAPI document: 1.0.0
#' Generated by: https://openapi-generator.tech
#'
#' petstore API Class
#'
#' A single point of access to the petstore API.
#'
#' NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
#' Ref: https://openapi-generator.tech
#' Do not edit the class manually.
#'
#' @docType class
#' @title ApiClient
#' @description ApiClient Class
#' @format An \code{R6Class} generator object
#' @field api_client API client
#' @field fake_api an instance of FakeApi
#' @field pet_api an instance of PetApi
#' @field store_api an instance of StoreApi
#' @field user_api an instance of UserApi
#' @importFrom rlang abort
#' @export
petstore_api <- R6::R6Class(
  "petstore_api",
  public = list(
    api_client = NULL,
    fake_api = NULL,
    pet_api = NULL,
    store_api = NULL,
    user_api = NULL,
    #' Initialize a new petstore API Class.
    #'
    #' @description
    #' Initialize a new petstore API Class.
    #'
    #' @param api_client An instance of API client (optional).
    #' @export
    initialize = function(api_client) {
      if (missing(api_client)) {
        self$api_client <- ApiClient$new()
      } else {
        self$api_client <- api_client
      } 

      self$fake_api <- FakeApi$new(self$api_client)

      self$pet_api <- PetApi$new(self$api_client)

      self$store_api <- StoreApi$new(self$api_client)

      self$user_api <- UserApi$new(self$api_client)

    }
  )
)
