hubspot-api-client 7.3.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/hubspot-api-client.rb +55 -24
  4. data/lib/hubspot/codegen/cms/hubdb/api/default_api.rb +2090 -0
  5. data/lib/hubspot/codegen/cms/hubdb/api_client.rb +422 -0
  6. data/lib/hubspot/codegen/cms/hubdb/api_error.rb +61 -0
  7. data/lib/hubspot/codegen/cms/hubdb/configuration.rb +251 -0
  8. data/lib/hubspot/codegen/cms/hubdb/models/batch_input_hub_db_table_row_v3.rb +217 -0
  9. data/lib/hubspot/codegen/cms/hubdb/models/batch_input_json_node.rb +215 -0
  10. data/lib/hubspot/codegen/cms/hubdb/models/batch_input_string.rb +217 -0
  11. data/lib/hubspot/codegen/cms/hubdb/models/batch_response_hub_db_table_row_v3_with_errors.rb +333 -0
  12. data/lib/hubspot/codegen/cms/hubdb/models/collection_response_with_total_hub_db_table_row_v3.rb +240 -0
  13. data/lib/hubspot/codegen/cms/hubdb/models/collection_response_with_total_hub_db_table_v3.rb +240 -0
  14. data/lib/hubspot/codegen/cms/hubdb/models/column.rb +388 -0
  15. data/lib/hubspot/codegen/cms/hubdb/models/column_input.rb +288 -0
  16. data/lib/hubspot/codegen/cms/hubdb/models/error.rb +292 -0
  17. data/lib/hubspot/codegen/cms/hubdb/models/error_detail.rb +258 -0
  18. data/lib/hubspot/codegen/cms/hubdb/models/foreign_id.rb +243 -0
  19. data/lib/hubspot/codegen/cms/hubdb/models/hub_db_table_clone_request.rb +241 -0
  20. data/lib/hubspot/codegen/cms/hubdb/models/hub_db_table_row_v3.rb +291 -0
  21. data/lib/hubspot/codegen/cms/hubdb/models/hub_db_table_row_v3_input.rb +243 -0
  22. data/lib/hubspot/codegen/cms/hubdb/models/hub_db_table_v3.rb +383 -0
  23. data/lib/hubspot/codegen/cms/hubdb/models/hub_db_table_v3_input.rb +295 -0
  24. data/lib/hubspot/codegen/cms/hubdb/models/hub_db_table_v3_live_input.rb +241 -0
  25. data/lib/hubspot/codegen/cms/hubdb/models/import_result.rb +263 -0
  26. data/lib/hubspot/codegen/cms/hubdb/models/next_page.rb +224 -0
  27. data/lib/hubspot/codegen/cms/hubdb/models/option.rb +257 -0
  28. data/lib/hubspot/codegen/cms/hubdb/models/paging.rb +219 -0
  29. data/lib/hubspot/codegen/cms/hubdb/models/previous_page.rb +224 -0
  30. data/lib/hubspot/codegen/cms/hubdb/models/simple_user.rb +257 -0
  31. data/lib/hubspot/version.rb +1 -1
  32. data/sample-apps/timeline-events-app/.env.template +1 -1
  33. data/sample-apps/timeline-events-app/Gemfile.lock +1 -1
  34. data/sample-apps/timeline-events-app/README.md +30 -0
  35. data/sample-apps/timeline-events-app/app/assets/stylesheets/application.css +78 -8
  36. data/sample-apps/timeline-events-app/app/controllers/timeline_events_controller.rb +1 -1
  37. data/sample-apps/timeline-events-app/app/views/timeline_events/index.html.erb +17 -19
  38. metadata +46 -12
@@ -0,0 +1,383 @@
1
+ =begin
2
+ #HubDB endpoints
3
+
4
+ #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.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Hubspot
16
+ module Cms
17
+ module Hubdb
18
+ class HubDbTableV3
19
+ # Id of the table
20
+ attr_accessor :id
21
+
22
+ # Name of the table
23
+ attr_accessor :name
24
+
25
+ # Label of the table
26
+ attr_accessor :label
27
+
28
+ # List of columns in the table
29
+ attr_accessor :columns
30
+
31
+ # Number of rows in the table
32
+ attr_accessor :row_count
33
+
34
+ attr_accessor :created_by
35
+
36
+ attr_accessor :updated_by
37
+
38
+ # Timestamp at which the table is published recently
39
+ attr_accessor :published_at
40
+
41
+ # Specifies the key value pairs of the metadata fields with the associated column ids
42
+ attr_accessor :dynamic_meta_tags
43
+
44
+ # Timestamp at which the table is created
45
+ attr_accessor :created_at
46
+
47
+ # Specifies whether table is archived or not
48
+ attr_accessor :archived
49
+
50
+ # Specifies whether the table can be read by public without authorization
51
+ attr_accessor :allow_public_api_access
52
+
53
+ # Specifies whether the table can be used for creation of dynamic pages
54
+ attr_accessor :use_for_pages
55
+
56
+ # Specifies creation of multi-level dynamic pages using child tables
57
+ attr_accessor :enable_child_table_pages
58
+
59
+ # Number of columns including deleted
60
+ attr_accessor :column_count
61
+
62
+ # Specifies whether child tables can be created
63
+ attr_accessor :allow_child_tables
64
+
65
+ # Timestamp at which the table is updated recently
66
+ attr_accessor :updated_at
67
+
68
+ # Attribute mapping from ruby-style variable name to JSON key.
69
+ def self.attribute_map
70
+ {
71
+ :'id' => :'id',
72
+ :'name' => :'name',
73
+ :'label' => :'label',
74
+ :'columns' => :'columns',
75
+ :'row_count' => :'rowCount',
76
+ :'created_by' => :'createdBy',
77
+ :'updated_by' => :'updatedBy',
78
+ :'published_at' => :'publishedAt',
79
+ :'dynamic_meta_tags' => :'dynamicMetaTags',
80
+ :'created_at' => :'createdAt',
81
+ :'archived' => :'archived',
82
+ :'allow_public_api_access' => :'allowPublicApiAccess',
83
+ :'use_for_pages' => :'useForPages',
84
+ :'enable_child_table_pages' => :'enableChildTablePages',
85
+ :'column_count' => :'columnCount',
86
+ :'allow_child_tables' => :'allowChildTables',
87
+ :'updated_at' => :'updatedAt'
88
+ }
89
+ end
90
+
91
+ # Attribute type mapping.
92
+ def self.openapi_types
93
+ {
94
+ :'id' => :'String',
95
+ :'name' => :'String',
96
+ :'label' => :'String',
97
+ :'columns' => :'Array<Column>',
98
+ :'row_count' => :'Integer',
99
+ :'created_by' => :'SimpleUser',
100
+ :'updated_by' => :'SimpleUser',
101
+ :'published_at' => :'DateTime',
102
+ :'dynamic_meta_tags' => :'Hash<String, Integer>',
103
+ :'created_at' => :'DateTime',
104
+ :'archived' => :'Boolean',
105
+ :'allow_public_api_access' => :'Boolean',
106
+ :'use_for_pages' => :'Boolean',
107
+ :'enable_child_table_pages' => :'Boolean',
108
+ :'column_count' => :'Integer',
109
+ :'allow_child_tables' => :'Boolean',
110
+ :'updated_at' => :'DateTime'
111
+ }
112
+ end
113
+
114
+ # List of attributes with nullable: true
115
+ def self.openapi_nullable
116
+ Set.new([
117
+ ])
118
+ end
119
+
120
+ # Initializes the object
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ def initialize(attributes = {})
123
+ if (!attributes.is_a?(Hash))
124
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Hubspot::Cms::Hubdb::HubDbTableV3` initialize method"
125
+ end
126
+
127
+ # check to see if the attribute exists and convert string to symbol for hash key
128
+ attributes = attributes.each_with_object({}) { |(k, v), h|
129
+ if (!self.class.attribute_map.key?(k.to_sym))
130
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Hubspot::Cms::Hubdb::HubDbTableV3`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
131
+ end
132
+ h[k.to_sym] = v
133
+ }
134
+
135
+ if attributes.key?(:'id')
136
+ self.id = attributes[:'id']
137
+ end
138
+
139
+ if attributes.key?(:'name')
140
+ self.name = attributes[:'name']
141
+ end
142
+
143
+ if attributes.key?(:'label')
144
+ self.label = attributes[:'label']
145
+ end
146
+
147
+ if attributes.key?(:'columns')
148
+ if (value = attributes[:'columns']).is_a?(Array)
149
+ self.columns = value
150
+ end
151
+ end
152
+
153
+ if attributes.key?(:'row_count')
154
+ self.row_count = attributes[:'row_count']
155
+ end
156
+
157
+ if attributes.key?(:'created_by')
158
+ self.created_by = attributes[:'created_by']
159
+ end
160
+
161
+ if attributes.key?(:'updated_by')
162
+ self.updated_by = attributes[:'updated_by']
163
+ end
164
+
165
+ if attributes.key?(:'published_at')
166
+ self.published_at = attributes[:'published_at']
167
+ end
168
+
169
+ if attributes.key?(:'dynamic_meta_tags')
170
+ if (value = attributes[:'dynamic_meta_tags']).is_a?(Hash)
171
+ self.dynamic_meta_tags = value
172
+ end
173
+ end
174
+
175
+ if attributes.key?(:'created_at')
176
+ self.created_at = attributes[:'created_at']
177
+ end
178
+
179
+ if attributes.key?(:'archived')
180
+ self.archived = attributes[:'archived']
181
+ end
182
+
183
+ if attributes.key?(:'allow_public_api_access')
184
+ self.allow_public_api_access = attributes[:'allow_public_api_access']
185
+ end
186
+
187
+ if attributes.key?(:'use_for_pages')
188
+ self.use_for_pages = attributes[:'use_for_pages']
189
+ end
190
+
191
+ if attributes.key?(:'enable_child_table_pages')
192
+ self.enable_child_table_pages = attributes[:'enable_child_table_pages']
193
+ end
194
+
195
+ if attributes.key?(:'column_count')
196
+ self.column_count = attributes[:'column_count']
197
+ end
198
+
199
+ if attributes.key?(:'allow_child_tables')
200
+ self.allow_child_tables = attributes[:'allow_child_tables']
201
+ end
202
+
203
+ if attributes.key?(:'updated_at')
204
+ self.updated_at = attributes[:'updated_at']
205
+ end
206
+ end
207
+
208
+ # Show invalid properties with the reasons. Usually used together with valid?
209
+ # @return Array for valid properties with the reasons
210
+ def list_invalid_properties
211
+ invalid_properties = Array.new
212
+ if @name.nil?
213
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
214
+ end
215
+
216
+ if @label.nil?
217
+ invalid_properties.push('invalid value for "label", label cannot be nil.')
218
+ end
219
+
220
+ invalid_properties
221
+ end
222
+
223
+ # Check to see if the all the properties in the model are valid
224
+ # @return true if the model is valid
225
+ def valid?
226
+ return false if @name.nil?
227
+ return false if @label.nil?
228
+ true
229
+ end
230
+
231
+ # Checks equality by comparing each attribute.
232
+ # @param [Object] Object to be compared
233
+ def ==(o)
234
+ return true if self.equal?(o)
235
+ self.class == o.class &&
236
+ id == o.id &&
237
+ name == o.name &&
238
+ label == o.label &&
239
+ columns == o.columns &&
240
+ row_count == o.row_count &&
241
+ created_by == o.created_by &&
242
+ updated_by == o.updated_by &&
243
+ published_at == o.published_at &&
244
+ dynamic_meta_tags == o.dynamic_meta_tags &&
245
+ created_at == o.created_at &&
246
+ archived == o.archived &&
247
+ allow_public_api_access == o.allow_public_api_access &&
248
+ use_for_pages == o.use_for_pages &&
249
+ enable_child_table_pages == o.enable_child_table_pages &&
250
+ column_count == o.column_count &&
251
+ allow_child_tables == o.allow_child_tables &&
252
+ updated_at == o.updated_at
253
+ end
254
+
255
+ # @see the `==` method
256
+ # @param [Object] Object to be compared
257
+ def eql?(o)
258
+ self == o
259
+ end
260
+
261
+ # Calculates hash code according to all attributes.
262
+ # @return [Integer] Hash code
263
+ def hash
264
+ [id, name, label, columns, row_count, created_by, updated_by, published_at, dynamic_meta_tags, created_at, archived, allow_public_api_access, use_for_pages, enable_child_table_pages, column_count, allow_child_tables, updated_at].hash
265
+ end
266
+
267
+ # Builds the object from hash
268
+ # @param [Hash] attributes Model attributes in the form of hash
269
+ # @return [Object] Returns the model itself
270
+ def self.build_from_hash(attributes)
271
+ new.build_from_hash(attributes)
272
+ end
273
+
274
+ # Builds the object from hash
275
+ # @param [Hash] attributes Model attributes in the form of hash
276
+ # @return [Object] Returns the model itself
277
+ def build_from_hash(attributes)
278
+ return nil unless attributes.is_a?(Hash)
279
+ self.class.openapi_types.each_pair do |key, type|
280
+ if type =~ /\AArray<(.*)>/i
281
+ # check to ensure the input is an array given that the attribute
282
+ # is documented as an array but the input is not
283
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
284
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
285
+ end
286
+ elsif !attributes[self.class.attribute_map[key]].nil?
287
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
288
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
289
+ end
290
+
291
+ self
292
+ end
293
+
294
+ # Deserializes the data based on type
295
+ # @param string type Data type
296
+ # @param string value Value to be deserialized
297
+ # @return [Object] Deserialized data
298
+ def _deserialize(type, value)
299
+ case type.to_sym
300
+ when :DateTime
301
+ DateTime.parse(value)
302
+ when :Date
303
+ Date.parse(value)
304
+ when :String
305
+ value.to_s
306
+ when :Integer
307
+ value.to_i
308
+ when :Float
309
+ value.to_f
310
+ when :Boolean
311
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
312
+ true
313
+ else
314
+ false
315
+ end
316
+ when :Object
317
+ # generic object (usually a Hash), return directly
318
+ value
319
+ when /\AArray<(?<inner_type>.+)>\z/
320
+ inner_type = Regexp.last_match[:inner_type]
321
+ value.map { |v| _deserialize(inner_type, v) }
322
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
323
+ k_type = Regexp.last_match[:k_type]
324
+ v_type = Regexp.last_match[:v_type]
325
+ {}.tap do |hash|
326
+ value.each do |k, v|
327
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
328
+ end
329
+ end
330
+ else # model
331
+ Hubspot::Cms::Hubdb.const_get(type).build_from_hash(value)
332
+ end
333
+ end
334
+
335
+ # Returns the string representation of the object
336
+ # @return [String] String presentation of the object
337
+ def to_s
338
+ to_hash.to_s
339
+ end
340
+
341
+ # to_body is an alias to to_hash (backward compatibility)
342
+ # @return [Hash] Returns the object in the form of hash
343
+ def to_body
344
+ to_hash
345
+ end
346
+
347
+ # Returns the object in the form of hash
348
+ # @return [Hash] Returns the object in the form of hash
349
+ def to_hash
350
+ hash = {}
351
+ self.class.attribute_map.each_pair do |attr, param|
352
+ value = self.send(attr)
353
+ if value.nil?
354
+ is_nullable = self.class.openapi_nullable.include?(attr)
355
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
356
+ end
357
+
358
+ hash[param] = _to_hash(value)
359
+ end
360
+ hash
361
+ end
362
+
363
+ # Outputs non-array value in the form of hash
364
+ # For object, use to_hash. Otherwise, just return the value
365
+ # @param [Object] value Any valid value
366
+ # @return [Hash] Returns the value in the form of hash
367
+ def _to_hash(value)
368
+ if value.is_a?(Array)
369
+ value.compact.map { |v| _to_hash(v) }
370
+ elsif value.is_a?(Hash)
371
+ {}.tap do |hash|
372
+ value.each { |k, v| hash[k] = _to_hash(v) }
373
+ end
374
+ elsif value.respond_to? :to_hash
375
+ value.to_hash
376
+ else
377
+ value
378
+ end
379
+ end
380
+ end
381
+ end
382
+ end
383
+ end
@@ -0,0 +1,295 @@
1
+ =begin
2
+ #HubDB endpoints
3
+
4
+ #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.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Hubspot
16
+ module Cms
17
+ module Hubdb
18
+ class HubDbTableV3Input
19
+ # Specifies the key value pairs of the metadata fields with the associated column ids input
20
+ attr_accessor :dynamic_meta_tags
21
+
22
+ # Specifies whether the table can be read by public without authorization input
23
+ attr_accessor :allow_public_api_access
24
+
25
+ # Specifies whether the table can be used for creation of dynamic pages input
26
+ attr_accessor :use_for_pages
27
+
28
+ # List of columns in the table input
29
+ attr_accessor :columns
30
+
31
+ # Name of the table input
32
+ attr_accessor :name
33
+
34
+ # Specifies creation of multi-level dynamic pages using child tables input
35
+ attr_accessor :enable_child_table_pages
36
+
37
+ # Label of the table input
38
+ attr_accessor :label
39
+
40
+ # Specifies whether child tables can be created input
41
+ attr_accessor :allow_child_tables
42
+
43
+ # Attribute mapping from ruby-style variable name to JSON key.
44
+ def self.attribute_map
45
+ {
46
+ :'dynamic_meta_tags' => :'dynamicMetaTags',
47
+ :'allow_public_api_access' => :'allowPublicApiAccess',
48
+ :'use_for_pages' => :'useForPages',
49
+ :'columns' => :'columns',
50
+ :'name' => :'name',
51
+ :'enable_child_table_pages' => :'enableChildTablePages',
52
+ :'label' => :'label',
53
+ :'allow_child_tables' => :'allowChildTables'
54
+ }
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.openapi_types
59
+ {
60
+ :'dynamic_meta_tags' => :'Hash<String, Integer>',
61
+ :'allow_public_api_access' => :'Boolean',
62
+ :'use_for_pages' => :'Boolean',
63
+ :'columns' => :'Array<ColumnInput>',
64
+ :'name' => :'String',
65
+ :'enable_child_table_pages' => :'Boolean',
66
+ :'label' => :'String',
67
+ :'allow_child_tables' => :'Boolean'
68
+ }
69
+ end
70
+
71
+ # List of attributes with nullable: true
72
+ def self.openapi_nullable
73
+ Set.new([
74
+ ])
75
+ end
76
+
77
+ # Initializes the object
78
+ # @param [Hash] attributes Model attributes in the form of hash
79
+ def initialize(attributes = {})
80
+ if (!attributes.is_a?(Hash))
81
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Hubspot::Cms::Hubdb::HubDbTableV3Input` initialize method"
82
+ end
83
+
84
+ # check to see if the attribute exists and convert string to symbol for hash key
85
+ attributes = attributes.each_with_object({}) { |(k, v), h|
86
+ if (!self.class.attribute_map.key?(k.to_sym))
87
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Hubspot::Cms::Hubdb::HubDbTableV3Input`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
88
+ end
89
+ h[k.to_sym] = v
90
+ }
91
+
92
+ if attributes.key?(:'dynamic_meta_tags')
93
+ if (value = attributes[:'dynamic_meta_tags']).is_a?(Hash)
94
+ self.dynamic_meta_tags = value
95
+ end
96
+ end
97
+
98
+ if attributes.key?(:'allow_public_api_access')
99
+ self.allow_public_api_access = attributes[:'allow_public_api_access']
100
+ end
101
+
102
+ if attributes.key?(:'use_for_pages')
103
+ self.use_for_pages = attributes[:'use_for_pages']
104
+ end
105
+
106
+ if attributes.key?(:'columns')
107
+ if (value = attributes[:'columns']).is_a?(Array)
108
+ self.columns = value
109
+ end
110
+ end
111
+
112
+ if attributes.key?(:'name')
113
+ self.name = attributes[:'name']
114
+ end
115
+
116
+ if attributes.key?(:'enable_child_table_pages')
117
+ self.enable_child_table_pages = attributes[:'enable_child_table_pages']
118
+ end
119
+
120
+ if attributes.key?(:'label')
121
+ self.label = attributes[:'label']
122
+ end
123
+
124
+ if attributes.key?(:'allow_child_tables')
125
+ self.allow_child_tables = attributes[:'allow_child_tables']
126
+ end
127
+ end
128
+
129
+ # Show invalid properties with the reasons. Usually used together with valid?
130
+ # @return Array for valid properties with the reasons
131
+ def list_invalid_properties
132
+ invalid_properties = Array.new
133
+ if @name.nil?
134
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
135
+ end
136
+
137
+ if @label.nil?
138
+ invalid_properties.push('invalid value for "label", label cannot be nil.')
139
+ end
140
+
141
+ invalid_properties
142
+ end
143
+
144
+ # Check to see if the all the properties in the model are valid
145
+ # @return true if the model is valid
146
+ def valid?
147
+ return false if @name.nil?
148
+ return false if @label.nil?
149
+ true
150
+ end
151
+
152
+ # Checks equality by comparing each attribute.
153
+ # @param [Object] Object to be compared
154
+ def ==(o)
155
+ return true if self.equal?(o)
156
+ self.class == o.class &&
157
+ dynamic_meta_tags == o.dynamic_meta_tags &&
158
+ allow_public_api_access == o.allow_public_api_access &&
159
+ use_for_pages == o.use_for_pages &&
160
+ columns == o.columns &&
161
+ name == o.name &&
162
+ enable_child_table_pages == o.enable_child_table_pages &&
163
+ label == o.label &&
164
+ allow_child_tables == o.allow_child_tables
165
+ end
166
+
167
+ # @see the `==` method
168
+ # @param [Object] Object to be compared
169
+ def eql?(o)
170
+ self == o
171
+ end
172
+
173
+ # Calculates hash code according to all attributes.
174
+ # @return [Integer] Hash code
175
+ def hash
176
+ [dynamic_meta_tags, allow_public_api_access, use_for_pages, columns, name, enable_child_table_pages, label, allow_child_tables].hash
177
+ end
178
+
179
+ # Builds the object from hash
180
+ # @param [Hash] attributes Model attributes in the form of hash
181
+ # @return [Object] Returns the model itself
182
+ def self.build_from_hash(attributes)
183
+ new.build_from_hash(attributes)
184
+ end
185
+
186
+ # Builds the object from hash
187
+ # @param [Hash] attributes Model attributes in the form of hash
188
+ # @return [Object] Returns the model itself
189
+ def build_from_hash(attributes)
190
+ return nil unless attributes.is_a?(Hash)
191
+ self.class.openapi_types.each_pair do |key, type|
192
+ if type =~ /\AArray<(.*)>/i
193
+ # check to ensure the input is an array given that the attribute
194
+ # is documented as an array but the input is not
195
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
196
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
197
+ end
198
+ elsif !attributes[self.class.attribute_map[key]].nil?
199
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
200
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
201
+ end
202
+
203
+ self
204
+ end
205
+
206
+ # Deserializes the data based on type
207
+ # @param string type Data type
208
+ # @param string value Value to be deserialized
209
+ # @return [Object] Deserialized data
210
+ def _deserialize(type, value)
211
+ case type.to_sym
212
+ when :DateTime
213
+ DateTime.parse(value)
214
+ when :Date
215
+ Date.parse(value)
216
+ when :String
217
+ value.to_s
218
+ when :Integer
219
+ value.to_i
220
+ when :Float
221
+ value.to_f
222
+ when :Boolean
223
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
224
+ true
225
+ else
226
+ false
227
+ end
228
+ when :Object
229
+ # generic object (usually a Hash), return directly
230
+ value
231
+ when /\AArray<(?<inner_type>.+)>\z/
232
+ inner_type = Regexp.last_match[:inner_type]
233
+ value.map { |v| _deserialize(inner_type, v) }
234
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
235
+ k_type = Regexp.last_match[:k_type]
236
+ v_type = Regexp.last_match[:v_type]
237
+ {}.tap do |hash|
238
+ value.each do |k, v|
239
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
240
+ end
241
+ end
242
+ else # model
243
+ Hubspot::Cms::Hubdb.const_get(type).build_from_hash(value)
244
+ end
245
+ end
246
+
247
+ # Returns the string representation of the object
248
+ # @return [String] String presentation of the object
249
+ def to_s
250
+ to_hash.to_s
251
+ end
252
+
253
+ # to_body is an alias to to_hash (backward compatibility)
254
+ # @return [Hash] Returns the object in the form of hash
255
+ def to_body
256
+ to_hash
257
+ end
258
+
259
+ # Returns the object in the form of hash
260
+ # @return [Hash] Returns the object in the form of hash
261
+ def to_hash
262
+ hash = {}
263
+ self.class.attribute_map.each_pair do |attr, param|
264
+ value = self.send(attr)
265
+ if value.nil?
266
+ is_nullable = self.class.openapi_nullable.include?(attr)
267
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
268
+ end
269
+
270
+ hash[param] = _to_hash(value)
271
+ end
272
+ hash
273
+ end
274
+
275
+ # Outputs non-array value in the form of hash
276
+ # For object, use to_hash. Otherwise, just return the value
277
+ # @param [Object] value Any valid value
278
+ # @return [Hash] Returns the value in the form of hash
279
+ def _to_hash(value)
280
+ if value.is_a?(Array)
281
+ value.compact.map { |v| _to_hash(v) }
282
+ elsif value.is_a?(Hash)
283
+ {}.tap do |hash|
284
+ value.each { |k, v| hash[k] = _to_hash(v) }
285
+ end
286
+ elsif value.respond_to? :to_hash
287
+ value.to_hash
288
+ else
289
+ value
290
+ end
291
+ end
292
+ end
293
+ end
294
+ end
295
+ end