=begin #HubDB endpoints #HubDB is a relational data store that presents data as rows, columns, and cells in a table, much like a spreadsheet. HubDB tables can be added or modified [in the HubSpot CMS](https://knowledge.hubspot.com/cos-general/how-to-edit-hubdb-tables), but you can also use the API endpoints documented here. For more information on HubDB tables and using their data on a HubSpot site, see the [CMS developers site](https://designers.hubspot.com/docs/tools/hubdb). You can also see the [documentation for dynamic pages](https://designers.hubspot.com/docs/tutorials/how-to-build-dynamic-pages-with-hubdb) for more details about the `useForPages` field. HubDB tables support `draft` and `published` versions. This allows you to update data in the table, either for testing or to allow for a manual approval process, without affecting any live pages using the existing data. Draft data can be reviewed, and published by a user working in HubSpot or published via the API. Draft data can also be discarded, allowing users to go back to the published version of the data without disrupting it. If a table is set to be `allowed for public access`, you can access the published version of the table and rows without any authentication by specifying the portal id via the query parameter `portalId`. The version of the OpenAPI document: v3 Generated by: https://openapi-generator.tech OpenAPI Generator version: 4.3.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[:body] # return_type return_type = opts[:return_type] # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `body` parameter. 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] JSON object with the properties newName and newLabel. You can set copyRows to false to clone the table with copying rows and default is true. # @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 `newName` and `newLabel` of the new table can be sent as JSON in the `body` parameter. 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] JSON object with the properties newName and newLabel. You can set copyRows to false to clone the table with copying rows and default is true. # @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' header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:body] || @api_client.object_to_http_body(hub_db_table_clone_request) # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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] The JSON schema for the table being created. # @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] The JSON schema for the table being created. # @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' header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:body] || @api_client.object_to_http_body(hub_db_table_v3_request) # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `CSV`, `XLSX`, and `XLS`. # @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 `CSV`, `XLSX`, and `XLS`. # @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[:body] # return_type return_type = opts[:return_type] || 'File' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 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 `CSV`, `XLSX`, and `XLS`. # @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 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 `CSV`, `XLSX`, and `XLS`. # @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[:body] # return_type return_type = opts[:return_type] || 'File' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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] :sort Specifies which fields to use for sorting results. Valid fields are `name`, `createdAt`, `updatedAt`, `createdBy`, `updatedBy`. `createdAt` 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 `paging.next.after` 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 [DateTime] :created_at Only return tables created at exactly the specified time. # @option opts [DateTime] :created_after Only return tables created after the specified time. # @option opts [DateTime] :created_before Only return tables created before the specified time. # @option opts [DateTime] :updated_at Only return tables last updated at exactly the specified time. # @option opts [DateTime] :updated_after Only return tables last updated after the specified time. # @option opts [DateTime] :updated_before Only return tables last updated before the specified time. # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to `false`. # @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] :sort Specifies which fields to use for sorting results. Valid fields are `name`, `createdAt`, `updatedAt`, `createdBy`, `updatedBy`. `createdAt` 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 `paging.next.after` 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 [DateTime] :created_at Only return tables created at exactly the specified time. # @option opts [DateTime] :created_after Only return tables created after the specified time. # @option opts [DateTime] :created_before Only return tables created before the specified time. # @option opts [DateTime] :updated_at Only return tables last updated at exactly the specified time. # @option opts [DateTime] :updated_after Only return tables last updated after the specified time. # @option opts [DateTime] :updated_before Only return tables last updated before the specified time. # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to `false`. # @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[:'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[:body] # return_type return_type = opts[:return_type] || 'CollectionResponseWithTotalHubDbTableV3ForwardPaging' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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] :sort Specifies which fields to use for sorting results. Valid fields are `name`, `createdAt`, `updatedAt`, `createdBy`, `updatedBy`. `createdAt` 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 `paging.next.after` 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 [DateTime] :created_at Only return tables created at exactly the specified time. # @option opts [DateTime] :created_after Only return tables created after the specified time. # @option opts [DateTime] :created_before Only return tables created before the specified time. # @option opts [DateTime] :updated_at Only return tables last updated at exactly the specified time. # @option opts [DateTime] :updated_after Only return tables last updated after the specified time. # @option opts [DateTime] :updated_before Only return tables last updated before the specified time. # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to `false`. # @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] :sort Specifies which fields to use for sorting results. Valid fields are `name`, `createdAt`, `updatedAt`, `createdBy`, `updatedBy`. `createdAt` 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 `paging.next.after` 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 [DateTime] :created_at Only return tables created at exactly the specified time. # @option opts [DateTime] :created_after Only return tables created after the specified time. # @option opts [DateTime] :created_before Only return tables created before the specified time. # @option opts [DateTime] :updated_at Only return tables last updated at exactly the specified time. # @option opts [DateTime] :updated_after Only return tables last updated after the specified time. # @option opts [DateTime] :updated_before Only return tables last updated before the specified time. # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to `false`. # @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[:'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[:body] # return_type return_type = opts[:return_type] || 'CollectionResponseWithTotalHubDbTableV3ForwardPaging' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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] :archived Set this to `true` to return an archived table. Defaults to `false`. # @option opts [Boolean] :include_foreign_ids Set this to `true` 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] :archived Set this to `true` to return an archived table. Defaults to `false`. # @option opts [Boolean] :include_foreign_ids Set this to `true` 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[:'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[:body] # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 for 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. # @param table_id_or_name [String] The ID or name of the table to return. # @param [Hash] opts the optional parameters # @option opts [Boolean] :archived Set this to `true` to return details for an archived table. Defaults to `false`. # @option opts [Boolean] :include_foreign_ids Set this to `true` 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 for 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. # @param table_id_or_name [String] The ID or name of the table to return. # @param [Hash] opts the optional parameters # @option opts [Boolean] :archived Set this to `true` to return details for an archived table. Defaults to `false`. # @option opts [Boolean] :include_foreign_ids Set this to `true` 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[:'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[:body] # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `/publish` endpoint to push these changes to `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 Configuration for the import in JSON format as described above. # @option opts [File] :file The source CSV file to be imported. # @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 `/publish` endpoint to push these changes to `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 Configuration for the import in JSON format as described above. # @option opts [File] :file The source CSV file to be imported. # @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' header_params['Content-Type'] = @api_client.select_header_content_type(['multipart/form-data']) # 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[:body] # return_type return_type = opts[:return_type] || 'ImportResult' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `true` 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 `true` 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[:body] # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `true` 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 `true` 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[:body] # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `true` 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 `true` 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[:body] # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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 `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] The JSON schema for the table being updated. # @param [Hash] opts the optional parameters # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to `false`. # @option opts [Boolean] :include_foreign_ids Set this to `true` 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 `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] The JSON schema for the table being updated. # @param [Hash] opts the optional parameters # @option opts [Boolean] :archived Specifies whether to return archived tables. Defaults to `false`. # @option opts [Boolean] :include_foreign_ids Set this to `true` 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[:'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' header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:body] || @api_client.object_to_http_body(hub_db_table_v3_request) # return_type return_type = opts[:return_type] || 'HubDbTableV3' # auth_names auth_names = opts[:auth_names] || ['hapikey', 'oauth2'] new_options = opts.merge( :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