=begin
#Hubdb

#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

The version of the OpenAPI document: v3

Generated by: https://openapi-generator.tech
OpenAPI Generator version: 6.2.1

=end

require 'cgi'

module Hubspot
  module Cms
    module Hubdb
      class TablesApi
        attr_accessor :api_client

        def initialize(api_client = ApiClient.default)
          @api_client = api_client
        end
        # Archive a table
        # Archive (soft delete) an existing HubDB table. This archives both the published and draft versions.
        # @param table_id_or_name [String] The ID or name of the table to archive.
        # @param [Hash] opts the optional parameters
        # @return [nil]
        def archive_table(table_id_or_name, opts = {})
          archive_table_with_http_info(table_id_or_name, opts)
          nil
        end

        # Archive a table
        # Archive (soft delete) an existing HubDB table. This archives both the published and draft versions.
        # @param table_id_or_name [String] The ID or name of the table to archive.
        # @param [Hash] opts the optional parameters
        # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
        def archive_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.archive_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.archive_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type]

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.archive_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#archive_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Clone a table
        # Clone an existing HubDB table. The `newName` and `newLabel` of the new table can be sent as JSON in the request body. This will create the cloned table as a draft.
        # @param table_id_or_name [String] The ID or name of the table to clone.
        # @param hub_db_table_clone_request [HubDbTableCloneRequest] 
        # @param [Hash] opts the optional parameters
        # @return [HubDbTableV3]
        def clone_draft_table(table_id_or_name, hub_db_table_clone_request, opts = {})
          data, _status_code, _headers = clone_draft_table_with_http_info(table_id_or_name, hub_db_table_clone_request, opts)
          data
        end

        # Clone a table
        # Clone an existing HubDB table. The &#x60;newName&#x60; and &#x60;newLabel&#x60; of the new table can be sent as JSON in the request body. This will create the cloned table as a draft.
        # @param table_id_or_name [String] The ID or name of the table to clone.
        # @param hub_db_table_clone_request [HubDbTableCloneRequest] 
        # @param [Hash] opts the optional parameters
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def clone_draft_table_with_http_info(table_id_or_name, hub_db_table_clone_request, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.clone_draft_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.clone_draft_table"
          end
          # verify the required parameter 'hub_db_table_clone_request' is set
          if @api_client.config.client_side_validation && hub_db_table_clone_request.nil?
            fail ArgumentError, "Missing the required parameter 'hub_db_table_clone_request' when calling TablesApi.clone_draft_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft/clone'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])
          # HTTP header 'Content-Type'
          content_type = @api_client.select_header_content_type(['application/json'])
          if !content_type.nil?
              header_params['Content-Type'] = content_type
          end

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body] || @api_client.object_to_http_body(hub_db_table_clone_request)

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.clone_draft_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#clone_draft_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Create a new table
        # Creates a new draft HubDB table given a JSON schema. The table name and label should be unique for each account.
        # @param hub_db_table_v3_request [HubDbTableV3Request] 
        # @param [Hash] opts the optional parameters
        # @return [HubDbTableV3]
        def create_table(hub_db_table_v3_request, opts = {})
          data, _status_code, _headers = create_table_with_http_info(hub_db_table_v3_request, opts)
          data
        end

        # Create a new table
        # Creates a new draft HubDB table given a JSON schema. The table name and label should be unique for each account.
        # @param hub_db_table_v3_request [HubDbTableV3Request] 
        # @param [Hash] opts the optional parameters
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def create_table_with_http_info(hub_db_table_v3_request, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.create_table ...'
          end
          # verify the required parameter 'hub_db_table_v3_request' is set
          if @api_client.config.client_side_validation && hub_db_table_v3_request.nil?
            fail ArgumentError, "Missing the required parameter 'hub_db_table_v3_request' when calling TablesApi.create_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables'

          # query parameters
          query_params = opts[:query_params] || {}

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])
          # HTTP header 'Content-Type'
          content_type = @api_client.select_header_content_type(['application/json'])
          if !content_type.nil?
              header_params['Content-Type'] = content_type
          end

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body] || @api_client.object_to_http_body(hub_db_table_v3_request)

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.create_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#create_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Export a draft table
        # Exports the draft version of a table to CSV / EXCEL format.
        # @param table_id_or_name [String] The ID or name of the table to export.
        # @param [Hash] opts the optional parameters
        # @option opts [String] :format The file format to export. Possible values include &#x60;CSV&#x60;, &#x60;XLSX&#x60;, and &#x60;XLS&#x60;.
        # @return [File]
        def export_draft_table(table_id_or_name, opts = {})
          data, _status_code, _headers = export_draft_table_with_http_info(table_id_or_name, opts)
          data
        end

        # Export a draft table
        # Exports the draft version of a table to CSV / EXCEL format.
        # @param table_id_or_name [String] The ID or name of the table to export.
        # @param [Hash] opts the optional parameters
        # @option opts [String] :format The file format to export. Possible values include &#x60;CSV&#x60;, &#x60;XLSX&#x60;, and &#x60;XLS&#x60;.
        # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
        def export_draft_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.export_draft_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.export_draft_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft/export'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'format'] = opts[:'format'] if !opts[:'format'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/vnd.ms-excel', 'text/csv', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'File'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.export_draft_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#export_draft_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Export a published version of a table
        # Exports the published version of a table in a specified format.
        # @param table_id_or_name [String] The ID or name of the table to export.
        # @param [Hash] opts the optional parameters
        # @option opts [String] :format The file format to export. Possible values include &#x60;CSV&#x60;, &#x60;XLSX&#x60;, and &#x60;XLS&#x60;.
        # @return [File]
        def export_table(table_id_or_name, opts = {})
          data, _status_code, _headers = export_table_with_http_info(table_id_or_name, opts)
          data
        end

        # Export a published version of a table
        # Exports the published version of a table in a specified format.
        # @param table_id_or_name [String] The ID or name of the table to export.
        # @param [Hash] opts the optional parameters
        # @option opts [String] :format The file format to export. Possible values include &#x60;CSV&#x60;, &#x60;XLSX&#x60;, and &#x60;XLS&#x60;.
        # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
        def export_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.export_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.export_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/export'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'format'] = opts[:'format'] if !opts[:'format'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/vnd.ms-excel', 'text/csv', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'File'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.export_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#export_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Return all draft tables
        # Returns the details for each draft table defined in the specified account, including column definitions.
        # @param [Hash] opts the optional parameters
        # @option opts [Array<String>] :sort Specifies which fields to use for sorting results. Valid fields are &#x60;name&#x60;, &#x60;createdAt&#x60;, &#x60;updatedAt&#x60;, &#x60;createdBy&#x60;, &#x60;updatedBy&#x60;. &#x60;createdAt&#x60; will be used by default.
        # @option opts [String] :after The cursor token value to get the next set of results. You can get this from the &#x60;paging.next.after&#x60; JSON property of a paged response containing more results.
        # @option opts [Integer] :limit The maximum number of results to return. Default is 1000.
        # @option opts [Time] :created_at Only return tables created at exactly the specified time.
        # @option opts [Time] :created_after Only return tables created after the specified time.
        # @option opts [Time] :created_before Only return tables created before the specified time.
        # @option opts [Time] :updated_at Only return tables last updated at exactly the specified time.
        # @option opts [Time] :updated_after Only return tables last updated after the specified time.
        # @option opts [Time] :updated_before Only return tables last updated before the specified time.
        # @option opts [String] :content_type 
        # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to &#x60;false&#x60;.
        # @return [CollectionResponseWithTotalHubDbTableV3ForwardPaging]
        def get_all_draft_tables(opts = {})
          data, _status_code, _headers = get_all_draft_tables_with_http_info(opts)
          data
        end

        # Return all draft tables
        # Returns the details for each draft table defined in the specified account, including column definitions.
        # @param [Hash] opts the optional parameters
        # @option opts [Array<String>] :sort Specifies which fields to use for sorting results. Valid fields are &#x60;name&#x60;, &#x60;createdAt&#x60;, &#x60;updatedAt&#x60;, &#x60;createdBy&#x60;, &#x60;updatedBy&#x60;. &#x60;createdAt&#x60; will be used by default.
        # @option opts [String] :after The cursor token value to get the next set of results. You can get this from the &#x60;paging.next.after&#x60; JSON property of a paged response containing more results.
        # @option opts [Integer] :limit The maximum number of results to return. Default is 1000.
        # @option opts [Time] :created_at Only return tables created at exactly the specified time.
        # @option opts [Time] :created_after Only return tables created after the specified time.
        # @option opts [Time] :created_before Only return tables created before the specified time.
        # @option opts [Time] :updated_at Only return tables last updated at exactly the specified time.
        # @option opts [Time] :updated_after Only return tables last updated after the specified time.
        # @option opts [Time] :updated_before Only return tables last updated before the specified time.
        # @option opts [String] :content_type 
        # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to &#x60;false&#x60;.
        # @return [Array<(CollectionResponseWithTotalHubDbTableV3ForwardPaging, Integer, Hash)>] CollectionResponseWithTotalHubDbTableV3ForwardPaging data, response status code and response headers
        def get_all_draft_tables_with_http_info(opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.get_all_draft_tables ...'
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/draft'

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :multi) if !opts[:'sort'].nil?
          query_params[:'after'] = opts[:'after'] if !opts[:'after'].nil?
          query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
          query_params[:'createdAt'] = opts[:'created_at'] if !opts[:'created_at'].nil?
          query_params[:'createdAfter'] = opts[:'created_after'] if !opts[:'created_after'].nil?
          query_params[:'createdBefore'] = opts[:'created_before'] if !opts[:'created_before'].nil?
          query_params[:'updatedAt'] = opts[:'updated_at'] if !opts[:'updated_at'].nil?
          query_params[:'updatedAfter'] = opts[:'updated_after'] if !opts[:'updated_after'].nil?
          query_params[:'updatedBefore'] = opts[:'updated_before'] if !opts[:'updated_before'].nil?
          query_params[:'contentType'] = opts[:'content_type'] if !opts[:'content_type'].nil?
          query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'CollectionResponseWithTotalHubDbTableV3ForwardPaging'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.get_all_draft_tables",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#get_all_draft_tables\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Get all published tables
        # Returns the details for the published version of each table defined in an account, including column definitions.
        # @param [Hash] opts the optional parameters
        # @option opts [Array<String>] :sort Specifies which fields to use for sorting results. Valid fields are &#x60;name&#x60;, &#x60;createdAt&#x60;, &#x60;updatedAt&#x60;, &#x60;createdBy&#x60;, &#x60;updatedBy&#x60;. &#x60;createdAt&#x60; will be used by default.
        # @option opts [String] :after The cursor token value to get the next set of results. You can get this from the &#x60;paging.next.after&#x60; JSON property of a paged response containing more results.
        # @option opts [Integer] :limit The maximum number of results to return. Default is 1000.
        # @option opts [Time] :created_at Only return tables created at exactly the specified time.
        # @option opts [Time] :created_after Only return tables created after the specified time.
        # @option opts [Time] :created_before Only return tables created before the specified time.
        # @option opts [Time] :updated_at Only return tables last updated at exactly the specified time.
        # @option opts [Time] :updated_after Only return tables last updated after the specified time.
        # @option opts [Time] :updated_before Only return tables last updated before the specified time.
        # @option opts [String] :content_type 
        # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to &#x60;false&#x60;.
        # @return [CollectionResponseWithTotalHubDbTableV3ForwardPaging]
        def get_all_tables(opts = {})
          data, _status_code, _headers = get_all_tables_with_http_info(opts)
          data
        end

        # Get all published tables
        # Returns the details for the published version of each table defined in an account, including column definitions.
        # @param [Hash] opts the optional parameters
        # @option opts [Array<String>] :sort Specifies which fields to use for sorting results. Valid fields are &#x60;name&#x60;, &#x60;createdAt&#x60;, &#x60;updatedAt&#x60;, &#x60;createdBy&#x60;, &#x60;updatedBy&#x60;. &#x60;createdAt&#x60; will be used by default.
        # @option opts [String] :after The cursor token value to get the next set of results. You can get this from the &#x60;paging.next.after&#x60; JSON property of a paged response containing more results.
        # @option opts [Integer] :limit The maximum number of results to return. Default is 1000.
        # @option opts [Time] :created_at Only return tables created at exactly the specified time.
        # @option opts [Time] :created_after Only return tables created after the specified time.
        # @option opts [Time] :created_before Only return tables created before the specified time.
        # @option opts [Time] :updated_at Only return tables last updated at exactly the specified time.
        # @option opts [Time] :updated_after Only return tables last updated after the specified time.
        # @option opts [Time] :updated_before Only return tables last updated before the specified time.
        # @option opts [String] :content_type 
        # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to &#x60;false&#x60;.
        # @return [Array<(CollectionResponseWithTotalHubDbTableV3ForwardPaging, Integer, Hash)>] CollectionResponseWithTotalHubDbTableV3ForwardPaging data, response status code and response headers
        def get_all_tables_with_http_info(opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.get_all_tables ...'
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables'

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :multi) if !opts[:'sort'].nil?
          query_params[:'after'] = opts[:'after'] if !opts[:'after'].nil?
          query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
          query_params[:'createdAt'] = opts[:'created_at'] if !opts[:'created_at'].nil?
          query_params[:'createdAfter'] = opts[:'created_after'] if !opts[:'created_after'].nil?
          query_params[:'createdBefore'] = opts[:'created_before'] if !opts[:'created_before'].nil?
          query_params[:'updatedAt'] = opts[:'updated_at'] if !opts[:'updated_at'].nil?
          query_params[:'updatedAfter'] = opts[:'updated_after'] if !opts[:'updated_after'].nil?
          query_params[:'updatedBefore'] = opts[:'updated_before'] if !opts[:'updated_before'].nil?
          query_params[:'contentType'] = opts[:'content_type'] if !opts[:'content_type'].nil?
          query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'CollectionResponseWithTotalHubDbTableV3ForwardPaging'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.get_all_tables",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#get_all_tables\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Get details for a draft table
        # Get the details for the draft version of a specific HubDB table. This will include the definitions for the columns in the table and the number of rows in the table.
        # @param table_id_or_name [String] The ID or name of the table to return.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :is_get_localized_schema 
        # @option opts [Boolean] :archived Set this to &#x60;true&#x60; to return an archived table. Defaults to &#x60;false&#x60;.
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the result.
        # @return [HubDbTableV3]
        def get_draft_table_details_by_id(table_id_or_name, opts = {})
          data, _status_code, _headers = get_draft_table_details_by_id_with_http_info(table_id_or_name, opts)
          data
        end

        # Get details for a draft table
        # Get the details for the draft version of a specific HubDB table. This will include the definitions for the columns in the table and the number of rows in the table.
        # @param table_id_or_name [String] The ID or name of the table to return.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :is_get_localized_schema 
        # @option opts [Boolean] :archived Set this to &#x60;true&#x60; to return an archived table. Defaults to &#x60;false&#x60;.
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the result.
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def get_draft_table_details_by_id_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.get_draft_table_details_by_id ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.get_draft_table_details_by_id"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'isGetLocalizedSchema'] = opts[:'is_get_localized_schema'] if !opts[:'is_get_localized_schema'].nil?
          query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?
          query_params[:'includeForeignIds'] = opts[:'include_foreign_ids'] if !opts[:'include_foreign_ids'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.get_draft_table_details_by_id",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#get_draft_table_details_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Get details of a published table
        # Returns the details for the published version of the specified table. This will include the definitions for the columns in the table and the number of rows in the table.  **Note:** This endpoint can be accessed without any authentication if the table is set to be allowed for public access. To do so, you'll need to include the HubSpot account ID in a `portalId` query parameter.
        # @param table_id_or_name [String] The ID or name of the table to return.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :is_get_localized_schema 
        # @option opts [Boolean] :archived Set this to &#x60;true&#x60; to return details for an archived table. Defaults to &#x60;false&#x60;.
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the result.
        # @return [HubDbTableV3]
        def get_table_details(table_id_or_name, opts = {})
          data, _status_code, _headers = get_table_details_with_http_info(table_id_or_name, opts)
          data
        end

        # Get details of a published table
        # Returns the details for the published version of the specified table. This will include the definitions for the columns in the table and the number of rows in the table.  **Note:** This endpoint can be accessed without any authentication if the table is set to be allowed for public access. To do so, you&#39;ll need to include the HubSpot account ID in a &#x60;portalId&#x60; query parameter.
        # @param table_id_or_name [String] The ID or name of the table to return.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :is_get_localized_schema 
        # @option opts [Boolean] :archived Set this to &#x60;true&#x60; to return details for an archived table. Defaults to &#x60;false&#x60;.
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the result.
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def get_table_details_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.get_table_details ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.get_table_details"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'isGetLocalizedSchema'] = opts[:'is_get_localized_schema'] if !opts[:'is_get_localized_schema'].nil?
          query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?
          query_params[:'includeForeignIds'] = opts[:'include_foreign_ids'] if !opts[:'include_foreign_ids'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.get_table_details",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#get_table_details\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Import data into draft table
        # Import the contents of a CSV file into an existing HubDB table. The data will always be imported into the draft version of the table. Use the `/publish` endpoint to push these changes to the published version. This endpoint takes a multi-part POST request. The first part will be a set of JSON-formatted options for the import and you can specify this with the name as `config`.  The second part will be the CSV file you want to import and you can specify this with the name as `file`. Refer the [overview section](https://developers.hubspot.com/docs/api/cms/hubdb#importing-tables) to check the details and format of the JSON-formatted options for the import.
        # @param table_id_or_name [String] The ID of the destination table where data will be imported.
        # @param [Hash] opts the optional parameters
        # @option opts [String] :config 
        # @option opts [File] :file 
        # @return [ImportResult]
        def import_draft_table(table_id_or_name, opts = {})
          data, _status_code, _headers = import_draft_table_with_http_info(table_id_or_name, opts)
          data
        end

        # Import data into draft table
        # Import the contents of a CSV file into an existing HubDB table. The data will always be imported into the draft version of the table. Use the &#x60;/publish&#x60; endpoint to push these changes to the published version. This endpoint takes a multi-part POST request. The first part will be a set of JSON-formatted options for the import and you can specify this with the name as &#x60;config&#x60;.  The second part will be the CSV file you want to import and you can specify this with the name as &#x60;file&#x60;. Refer the [overview section](https://developers.hubspot.com/docs/api/cms/hubdb#importing-tables) to check the details and format of the JSON-formatted options for the import.
        # @param table_id_or_name [String] The ID of the destination table where data will be imported.
        # @param [Hash] opts the optional parameters
        # @option opts [String] :config 
        # @option opts [File] :file 
        # @return [Array<(ImportResult, Integer, Hash)>] ImportResult data, response status code and response headers
        def import_draft_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.import_draft_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.import_draft_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft/import'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])
          # HTTP header 'Content-Type'
          content_type = @api_client.select_header_content_type(['multipart/form-data'])
          if !content_type.nil?
              header_params['Content-Type'] = content_type
          end

          # form parameters
          form_params = opts[:form_params] || {}
          form_params['config'] = opts[:'config'] if !opts[:'config'].nil?
          form_params['file'] = opts[:'file'] if !opts[:'file'].nil?

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'ImportResult'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.import_draft_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#import_draft_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Publish a table from draft
        # Publishes the table by copying the data and table schema changes from draft version to the published version, meaning any website pages using data from the table will be updated.
        # @param table_id_or_name [String] The ID or name of the table to publish.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the response.
        # @return [HubDbTableV3]
        def publish_draft_table(table_id_or_name, opts = {})
          data, _status_code, _headers = publish_draft_table_with_http_info(table_id_or_name, opts)
          data
        end

        # Publish a table from draft
        # Publishes the table by copying the data and table schema changes from draft version to the published version, meaning any website pages using data from the table will be updated.
        # @param table_id_or_name [String] The ID or name of the table to publish.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the response.
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def publish_draft_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.publish_draft_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.publish_draft_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft/publish'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'includeForeignIds'] = opts[:'include_foreign_ids'] if !opts[:'include_foreign_ids'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.publish_draft_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#publish_draft_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Reset a draft table
        # Replaces the data in the draft version of the table with values from the published version. Any unpublished changes in the draft will be lost after this call is made.
        # @param table_id_or_name [String] The ID or name of the table to reset.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the response.
        # @return [HubDbTableV3]
        def reset_draft_table(table_id_or_name, opts = {})
          data, _status_code, _headers = reset_draft_table_with_http_info(table_id_or_name, opts)
          data
        end

        # Reset a draft table
        # Replaces the data in the draft version of the table with values from the published version. Any unpublished changes in the draft will be lost after this call is made.
        # @param table_id_or_name [String] The ID or name of the table to reset.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the response.
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def reset_draft_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.reset_draft_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.reset_draft_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft/reset'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'includeForeignIds'] = opts[:'include_foreign_ids'] if !opts[:'include_foreign_ids'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.reset_draft_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#reset_draft_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Unpublish a table
        # Unpublishes the table, meaning any website pages using data from the table will not render any data.
        # @param table_id_or_name [String] The ID or name of the table to publish.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the response.
        # @return [HubDbTableV3]
        def unpublish_table(table_id_or_name, opts = {})
          data, _status_code, _headers = unpublish_table_with_http_info(table_id_or_name, opts)
          data
        end

        # Unpublish a table
        # Unpublishes the table, meaning any website pages using data from the table will not render any data.
        # @param table_id_or_name [String] The ID or name of the table to publish.
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the response.
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def unpublish_table_with_http_info(table_id_or_name, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.unpublish_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.unpublish_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/unpublish'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'includeForeignIds'] = opts[:'include_foreign_ids'] if !opts[:'include_foreign_ids'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body]

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.unpublish_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#unpublish_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end

        # Update an existing table
        # Update an existing HubDB table. You can use this endpoint to add or remove columns to the table as well as restore an archived table. Tables updated using the endpoint will only modify the draft verion of the table. Use the `/publish` endpoint to push all the changes to the published version. To restore a table, include the query parameter `archived=true` and `\"archived\": false` in the json body. **Note:** You need to include all the columns in the input when you are adding/removing/updating a column. If you do not include an already existing column in the request, it will be deleted.
        # @param table_id_or_name [String] The ID or name of the table to update.
        # @param hub_db_table_v3_request [HubDbTableV3Request] 
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :is_get_localized_schema 
        # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to &#x60;false&#x60;.
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the result.
        # @return [HubDbTableV3]
        def update_draft_table(table_id_or_name, hub_db_table_v3_request, opts = {})
          data, _status_code, _headers = update_draft_table_with_http_info(table_id_or_name, hub_db_table_v3_request, opts)
          data
        end

        # Update an existing table
        # Update an existing HubDB table. You can use this endpoint to add or remove columns to the table as well as restore an archived table. Tables updated using the endpoint will only modify the draft verion of the table. Use the &#x60;/publish&#x60; endpoint to push all the changes to the published version. To restore a table, include the query parameter &#x60;archived&#x3D;true&#x60; and &#x60;\&quot;archived\&quot;: false&#x60; in the json body. **Note:** You need to include all the columns in the input when you are adding/removing/updating a column. If you do not include an already existing column in the request, it will be deleted.
        # @param table_id_or_name [String] The ID or name of the table to update.
        # @param hub_db_table_v3_request [HubDbTableV3Request] 
        # @param [Hash] opts the optional parameters
        # @option opts [Boolean] :is_get_localized_schema 
        # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to &#x60;false&#x60;.
        # @option opts [Boolean] :include_foreign_ids Set this to &#x60;true&#x60; to populate foreign ID values in the result.
        # @return [Array<(HubDbTableV3, Integer, Hash)>] HubDbTableV3 data, response status code and response headers
        def update_draft_table_with_http_info(table_id_or_name, hub_db_table_v3_request, opts = {})
          if @api_client.config.debugging
            @api_client.config.logger.debug 'Calling API: TablesApi.update_draft_table ...'
          end
          # verify the required parameter 'table_id_or_name' is set
          if @api_client.config.client_side_validation && table_id_or_name.nil?
            fail ArgumentError, "Missing the required parameter 'table_id_or_name' when calling TablesApi.update_draft_table"
          end
          # verify the required parameter 'hub_db_table_v3_request' is set
          if @api_client.config.client_side_validation && hub_db_table_v3_request.nil?
            fail ArgumentError, "Missing the required parameter 'hub_db_table_v3_request' when calling TablesApi.update_draft_table"
          end
          # resource path
          local_var_path = '/cms/v3/hubdb/tables/{tableIdOrName}/draft'.sub('{' + 'tableIdOrName' + '}', CGI.escape(table_id_or_name.to_s))

          # query parameters
          query_params = opts[:query_params] || {}
          query_params[:'isGetLocalizedSchema'] = opts[:'is_get_localized_schema'] if !opts[:'is_get_localized_schema'].nil?
          query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?
          query_params[:'includeForeignIds'] = opts[:'include_foreign_ids'] if !opts[:'include_foreign_ids'].nil?

          # header parameters
          header_params = opts[:header_params] || {}
          # HTTP header 'Accept' (if needed)
          header_params['Accept'] = @api_client.select_header_accept(['application/json', '*/*'])
          # HTTP header 'Content-Type'
          content_type = @api_client.select_header_content_type(['application/json'])
          if !content_type.nil?
              header_params['Content-Type'] = content_type
          end

          # form parameters
          form_params = opts[:form_params] || {}

          # http body (model)
          post_body = opts[:debug_body] || @api_client.object_to_http_body(hub_db_table_v3_request)

          # return_type
          return_type = opts[:debug_return_type] || 'HubDbTableV3'

          # auth_names
          auth_names = opts[:debug_auth_names] || ['oauth2']

          new_options = opts.merge(
            :operation => :"TablesApi.update_draft_table",
            :header_params => header_params,
            :query_params => query_params,
            :form_params => form_params,
            :body => post_body,
            :auth_names => auth_names,
            :return_type => return_type
          )

          data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
          if @api_client.config.debugging
            @api_client.config.logger.debug "API called: TablesApi#update_draft_table\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
          end
          return data, status_code, headers
        end
      end
    end
  end
end
