=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 now 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 live version of the data without disrupting it. The version of the OpenAPI document: v3 Generated by: https://openapi-generator.tech OpenAPI Generator version: 4.3.1 =end require 'date' module Hubspot module Cms module Hubdb class Column # Name of the column attr_accessor :name # Label of the column attr_accessor :label # Column Id attr_accessor :id # Column width for HubDb UI attr_accessor :width # Foreign table id referenced attr_accessor :foreign_table_id # Foreign Column id attr_accessor :foreign_column_id # Foreign Ids attr_accessor :foreign_ids # Foreign ids by name attr_accessor :foreign_ids_by_name # Foreign ids attr_accessor :foreign_ids_by_id # Type of the column attr_accessor :type # Number of options available attr_accessor :option_count # Specifies whether the column is archived attr_accessor :archived # Options to choose for select and multi-select columns attr_accessor :options class EnumAttributeValidator attr_reader :datatype attr_reader :allowable_values def initialize(datatype, allowable_values) @allowable_values = allowable_values.map do |value| case datatype.to_s when /Integer/i value.to_i when /Float/i value.to_f else value end end end def valid?(value) !value || allowable_values.include?(value) end end # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'name' => :'name', :'label' => :'label', :'id' => :'id', :'width' => :'width', :'foreign_table_id' => :'foreignTableId', :'foreign_column_id' => :'foreignColumnId', :'foreign_ids' => :'foreignIds', :'foreign_ids_by_name' => :'foreignIdsByName', :'foreign_ids_by_id' => :'foreignIdsById', :'type' => :'type', :'option_count' => :'optionCount', :'archived' => :'archived', :'options' => :'options' } end # Attribute type mapping. def self.openapi_types { :'name' => :'String', :'label' => :'String', :'id' => :'String', :'width' => :'Integer', :'foreign_table_id' => :'Integer', :'foreign_column_id' => :'Integer', :'foreign_ids' => :'Array', :'foreign_ids_by_name' => :'Hash', :'foreign_ids_by_id' => :'Hash', :'type' => :'String', :'option_count' => :'Integer', :'archived' => :'Boolean', :'options' => :'Array