hubspot-api-client 6.0.0 → 7.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +41 -0
  4. data/lib/hubspot-api-client.rb +55 -0
  5. data/lib/hubspot/codegen/cms/audit-logs/configuration.rb +0 -7
  6. data/lib/hubspot/codegen/cms/domains/configuration.rb +0 -7
  7. data/lib/hubspot/codegen/cms/performance/configuration.rb +0 -14
  8. data/lib/hubspot/codegen/cms/site-search/configuration.rb +0 -7
  9. data/lib/hubspot/codegen/cms/url-redirects/configuration.rb +0 -7
  10. data/lib/hubspot/codegen/crm/associations/configuration.rb +0 -7
  11. data/lib/hubspot/codegen/crm/companies/configuration.rb +0 -7
  12. data/lib/hubspot/codegen/crm/contacts/configuration.rb +0 -7
  13. data/lib/hubspot/codegen/crm/deals/configuration.rb +0 -7
  14. data/lib/hubspot/codegen/crm/extensions/cards/configuration.rb +0 -14
  15. data/lib/hubspot/codegen/crm/imports/configuration.rb +0 -7
  16. data/lib/hubspot/codegen/crm/line_items/configuration.rb +0 -7
  17. data/lib/hubspot/codegen/crm/objects/api/associations_api.rb +278 -0
  18. data/lib/hubspot/codegen/crm/objects/api/basic_api.rb +405 -0
  19. data/lib/hubspot/codegen/crm/objects/api/batch_api.rb +309 -0
  20. data/lib/hubspot/codegen/crm/objects/api/search_api.rb +96 -0
  21. data/lib/hubspot/codegen/crm/objects/api_client.rb +424 -0
  22. data/lib/hubspot/codegen/crm/objects/api_error.rb +61 -0
  23. data/lib/hubspot/codegen/crm/objects/configuration.rb +258 -0
  24. data/lib/hubspot/codegen/crm/objects/models/associated_id.rb +229 -0
  25. data/lib/hubspot/codegen/crm/objects/models/batch_input_simple_public_object_batch_input.rb +217 -0
  26. data/lib/hubspot/codegen/crm/objects/models/batch_input_simple_public_object_id.rb +217 -0
  27. data/lib/hubspot/codegen/crm/objects/models/batch_input_simple_public_object_input.rb +217 -0
  28. data/lib/hubspot/codegen/crm/objects/models/batch_read_input_simple_public_object_id.rb +242 -0
  29. data/lib/hubspot/codegen/crm/objects/models/batch_response_simple_public_object.rb +313 -0
  30. data/lib/hubspot/codegen/crm/objects/models/batch_response_simple_public_object_with_errors.rb +333 -0
  31. data/lib/hubspot/codegen/crm/objects/models/collection_response_associated_id.rb +226 -0
  32. data/lib/hubspot/codegen/crm/objects/models/collection_response_simple_public_object.rb +226 -0
  33. data/lib/hubspot/codegen/crm/objects/models/collection_response_with_total_simple_public_object.rb +241 -0
  34. data/lib/hubspot/codegen/crm/objects/models/error.rb +292 -0
  35. data/lib/hubspot/codegen/crm/objects/models/error_detail.rb +258 -0
  36. data/lib/hubspot/codegen/crm/objects/models/filter.rb +272 -0
  37. data/lib/hubspot/codegen/crm/objects/models/filter_group.rb +217 -0
  38. data/lib/hubspot/codegen/crm/objects/models/next_page.rb +224 -0
  39. data/lib/hubspot/codegen/crm/objects/models/paging.rb +219 -0
  40. data/lib/hubspot/codegen/crm/objects/models/previous_page.rb +224 -0
  41. data/lib/hubspot/codegen/crm/objects/models/public_object_search_request.rb +286 -0
  42. data/lib/hubspot/codegen/crm/objects/models/simple_public_object.rb +288 -0
  43. data/lib/hubspot/codegen/crm/objects/models/simple_public_object_batch_input.rb +231 -0
  44. data/lib/hubspot/codegen/crm/objects/models/simple_public_object_id.rb +215 -0
  45. data/lib/hubspot/codegen/crm/objects/models/simple_public_object_input.rb +217 -0
  46. data/lib/hubspot/codegen/crm/owners/configuration.rb +0 -7
  47. data/lib/hubspot/codegen/crm/pipelines/configuration.rb +0 -7
  48. data/lib/hubspot/codegen/crm/products/configuration.rb +0 -7
  49. data/lib/hubspot/codegen/crm/properties/configuration.rb +0 -7
  50. data/lib/hubspot/codegen/crm/quotes/configuration.rb +0 -7
  51. data/lib/hubspot/codegen/crm/schemas/api/core_api.rb +478 -0
  52. data/lib/hubspot/codegen/crm/schemas/api/default_api.rb +84 -0
  53. data/lib/hubspot/codegen/crm/schemas/api_client.rb +424 -0
  54. data/lib/hubspot/codegen/crm/schemas/api_error.rb +61 -0
  55. data/lib/hubspot/codegen/crm/schemas/configuration.rb +258 -0
  56. data/lib/hubspot/codegen/crm/schemas/models/association_definition.rb +350 -0
  57. data/lib/hubspot/codegen/crm/schemas/models/association_definition_egg.rb +315 -0
  58. data/lib/hubspot/codegen/crm/schemas/models/collection_response_object_schema.rb +226 -0
  59. data/lib/hubspot/codegen/crm/schemas/models/error.rb +292 -0
  60. data/lib/hubspot/codegen/crm/schemas/models/error_detail.rb +258 -0
  61. data/lib/hubspot/codegen/crm/schemas/models/next_page.rb +224 -0
  62. data/lib/hubspot/codegen/crm/schemas/models/object_schema.rb +389 -0
  63. data/lib/hubspot/codegen/crm/schemas/models/object_schema_egg.rb +325 -0
  64. data/lib/hubspot/codegen/crm/schemas/models/object_type_definition.rb +364 -0
  65. data/lib/hubspot/codegen/crm/schemas/models/object_type_definition_labels.rb +221 -0
  66. data/lib/hubspot/codegen/crm/schemas/models/object_type_definition_patch.rb +265 -0
  67. data/lib/hubspot/codegen/crm/schemas/models/object_type_property_create.rb +356 -0
  68. data/lib/hubspot/codegen/crm/schemas/models/option.rb +266 -0
  69. data/lib/hubspot/codegen/crm/schemas/models/option_input.rb +271 -0
  70. data/lib/hubspot/codegen/crm/schemas/models/paging.rb +219 -0
  71. data/lib/hubspot/codegen/crm/schemas/models/previous_page.rb +224 -0
  72. data/lib/hubspot/codegen/crm/schemas/models/property.rb +465 -0
  73. data/lib/hubspot/codegen/crm/schemas/models/property_modification_metadata.rb +252 -0
  74. data/lib/hubspot/codegen/crm/tickets/configuration.rb +0 -7
  75. data/lib/hubspot/codegen/crm/timeline/configuration.rb +0 -7
  76. data/lib/hubspot/codegen/oauth/configuration.rb +0 -21
  77. data/lib/hubspot/codegen/webhooks/api/subscriptions_api.rb +16 -12
  78. data/lib/hubspot/codegen/webhooks/configuration.rb +0 -14
  79. data/lib/hubspot/codegen/webhooks/models/batch_response_subscription_response.rb +1 -21
  80. data/lib/hubspot/codegen/webhooks/models/batch_response_subscription_response_with_errors.rb +331 -0
  81. data/lib/hubspot/codegen/webhooks/models/settings_response.rb +28 -28
  82. data/lib/hubspot/codegen/webhooks/models/subscription_create_request.rb +16 -13
  83. data/lib/hubspot/codegen/webhooks/models/subscription_patch_request.rb +7 -7
  84. data/lib/hubspot/codegen/webhooks/models/subscription_response.rb +45 -39
  85. data/lib/hubspot/version.rb +1 -1
  86. data/sample-apps/companies-app/Gemfile.lock +2 -2
  87. data/sample-apps/companies-app/app/lib/services/hubspot/associations/create.rb +1 -1
  88. data/sample-apps/companies-app/app/lib/services/hubspot/associations/delete.rb +1 -1
  89. data/sample-apps/companies-app/app/lib/services/hubspot/associations/get_by_id.rb +2 -2
  90. data/sample-apps/companies-app/app/lib/services/hubspot/companies/create.rb +1 -1
  91. data/sample-apps/companies-app/app/lib/services/hubspot/companies/search.rb +1 -1
  92. data/sample-apps/companies-app/app/lib/services/hubspot/companies/update.rb +1 -2
  93. data/sample-apps/companies-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  94. data/sample-apps/contacts-app/Gemfile.lock +2 -2
  95. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/create.rb +1 -1
  96. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  97. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/update.rb +1 -2
  98. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/create.rb +1 -2
  99. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/update.rb +1 -2
  100. data/sample-apps/leaky-bucket-app/app/lib/services/hubspot/contacts/archive_batch.rb +1 -1
  101. data/sample-apps/leaky-bucket-app/app/lib/services/hubspot/contacts/create_batch.rb +1 -1
  102. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/create.rb +1 -1
  103. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  104. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/update.rb +1 -2
  105. data/sample-apps/rate-limits-redis-sample-app/app/lib/services/hubspot/contacts/archive_batch.rb +1 -1
  106. data/sample-apps/rate-limits-redis-sample-app/app/lib/services/hubspot/contacts/create_batch.rb +1 -1
  107. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  108. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/properties/create.rb +1 -2
  109. data/sample-apps/timeline-events-app/.env.template +5 -0
  110. data/sample-apps/timeline-events-app/.gitignore +35 -0
  111. data/sample-apps/timeline-events-app/.rspec +1 -0
  112. data/sample-apps/timeline-events-app/.ruby-version +1 -0
  113. data/sample-apps/timeline-events-app/Dockerfile +22 -0
  114. data/sample-apps/timeline-events-app/Gemfile +33 -0
  115. data/sample-apps/timeline-events-app/Gemfile.lock +271 -0
  116. data/sample-apps/timeline-events-app/README.md +0 -0
  117. data/sample-apps/timeline-events-app/Rakefile +6 -0
  118. data/sample-apps/timeline-events-app/app/assets/config/manifest.js +3 -0
  119. data/sample-apps/timeline-events-app/app/assets/images/.keep +0 -0
  120. data/sample-apps/timeline-events-app/app/assets/javascripts/application.js +15 -0
  121. data/sample-apps/timeline-events-app/app/assets/javascripts/cable.js +13 -0
  122. data/sample-apps/timeline-events-app/app/assets/javascripts/channels/.keep +0 -0
  123. data/sample-apps/timeline-events-app/app/assets/stylesheets/application.css +101 -0
  124. data/sample-apps/timeline-events-app/app/controllers/application_controller.rb +12 -0
  125. data/sample-apps/timeline-events-app/app/controllers/concerns/.keep +0 -0
  126. data/sample-apps/timeline-events-app/app/controllers/concerns/exception_handler.rb +12 -0
  127. data/sample-apps/timeline-events-app/app/controllers/oauth/authorization_controller.rb +19 -0
  128. data/sample-apps/timeline-events-app/app/controllers/timeline_events_controller.rb +37 -0
  129. data/sample-apps/timeline-events-app/app/helpers/application_helper.rb +2 -0
  130. data/sample-apps/timeline-events-app/app/lib/services/authorization/authorize_hubspot.rb +15 -0
  131. data/sample-apps/timeline-events-app/app/lib/services/authorization/get_authorization_uri.rb +33 -0
  132. data/sample-apps/timeline-events-app/app/lib/services/authorization/tokens/base.rb +19 -0
  133. data/sample-apps/timeline-events-app/app/lib/services/authorization/tokens/generate.rb +26 -0
  134. data/sample-apps/timeline-events-app/app/lib/services/authorization/tokens/refresh.rb +33 -0
  135. data/sample-apps/timeline-events-app/app/lib/services/hubspot/contacts/search.rb +37 -0
  136. data/sample-apps/timeline-events-app/app/lib/services/hubspot/timeline/create_event.rb +20 -0
  137. data/sample-apps/timeline-events-app/app/lib/services/hubspot/timeline/create_template.rb +39 -0
  138. data/sample-apps/timeline-events-app/app/models/application_record.rb +3 -0
  139. data/sample-apps/timeline-events-app/app/models/concerns/.keep +0 -0
  140. data/sample-apps/timeline-events-app/app/views/layouts/application.html.erb +23 -0
  141. data/sample-apps/timeline-events-app/app/views/oauth/authorization/login.html.erb +15 -0
  142. data/sample-apps/timeline-events-app/app/views/shared/_header.html.erb +12 -0
  143. data/sample-apps/timeline-events-app/app/views/timeline_events/index.html.erb +55 -0
  144. data/sample-apps/timeline-events-app/bin/bundle +3 -0
  145. data/sample-apps/timeline-events-app/bin/rails +9 -0
  146. data/sample-apps/timeline-events-app/bin/rake +9 -0
  147. data/sample-apps/timeline-events-app/bin/setup +36 -0
  148. data/sample-apps/timeline-events-app/bin/spring +17 -0
  149. data/sample-apps/timeline-events-app/bin/update +31 -0
  150. data/sample-apps/timeline-events-app/bin/yarn +11 -0
  151. data/sample-apps/timeline-events-app/config.ru +5 -0
  152. data/sample-apps/timeline-events-app/config/application.rb +19 -0
  153. data/sample-apps/timeline-events-app/config/boot.rb +3 -0
  154. data/sample-apps/timeline-events-app/config/database.yml +25 -0
  155. data/sample-apps/timeline-events-app/config/environment.rb +5 -0
  156. data/sample-apps/timeline-events-app/config/environments/development.rb +61 -0
  157. data/sample-apps/timeline-events-app/config/environments/production.rb +94 -0
  158. data/sample-apps/timeline-events-app/config/environments/test.rb +46 -0
  159. data/sample-apps/timeline-events-app/config/initializers/assets.rb +14 -0
  160. data/sample-apps/timeline-events-app/config/initializers/filter_parameter_logging.rb +4 -0
  161. data/sample-apps/timeline-events-app/config/initializers/hubspot-api-client.rb +3 -0
  162. data/sample-apps/timeline-events-app/config/initializers/mime_types.rb +1 -0
  163. data/sample-apps/timeline-events-app/config/initializers/wrap_parameters.rb +14 -0
  164. data/sample-apps/timeline-events-app/config/locales/en.yml +33 -0
  165. data/sample-apps/timeline-events-app/config/puma.rb +34 -0
  166. data/sample-apps/timeline-events-app/config/routes.rb +7 -0
  167. data/sample-apps/timeline-events-app/config/spring.rb +6 -0
  168. data/sample-apps/timeline-events-app/db/seeds.rb +7 -0
  169. data/sample-apps/timeline-events-app/docker-compose.yml +11 -0
  170. data/sample-apps/timeline-events-app/docker-entrypoint.sh +8 -0
  171. data/sample-apps/timeline-events-app/lib/assets/.keep +0 -0
  172. data/sample-apps/timeline-events-app/lib/tasks/.keep +0 -0
  173. data/sample-apps/timeline-events-app/log/.keep +0 -0
  174. data/sample-apps/timeline-events-app/package.json +5 -0
  175. data/sample-apps/timeline-events-app/public/404.html +67 -0
  176. data/sample-apps/timeline-events-app/public/422.html +67 -0
  177. data/sample-apps/timeline-events-app/public/500.html +66 -0
  178. data/sample-apps/timeline-events-app/public/apple-touch-icon-precomposed.png +0 -0
  179. data/sample-apps/timeline-events-app/public/apple-touch-icon.png +0 -0
  180. data/sample-apps/timeline-events-app/public/favicon.ico +0 -0
  181. data/sample-apps/timeline-events-app/public/robots.txt +1 -0
  182. data/sample-apps/timeline-events-app/spec/rails_helper.rb +42 -0
  183. data/sample-apps/timeline-events-app/spec/spec_helper.rb +11 -0
  184. data/sample-apps/timeline-events-app/tmp/.keep +0 -0
  185. data/sample-apps/trello-integration-app/.env.template +7 -0
  186. data/sample-apps/trello-integration-app/.gitignore +35 -0
  187. data/sample-apps/trello-integration-app/.rspec +1 -0
  188. data/sample-apps/trello-integration-app/.ruby-version +1 -0
  189. data/sample-apps/trello-integration-app/Dockerfile +22 -0
  190. data/sample-apps/trello-integration-app/Gemfile +38 -0
  191. data/sample-apps/trello-integration-app/Gemfile.lock +314 -0
  192. data/sample-apps/trello-integration-app/README.md +31 -0
  193. data/sample-apps/trello-integration-app/Rakefile +6 -0
  194. data/sample-apps/trello-integration-app/app/assets/config/manifest.js +3 -0
  195. data/sample-apps/trello-integration-app/app/assets/images/.keep +0 -0
  196. data/sample-apps/trello-integration-app/app/assets/images/right-arrow.png +0 -0
  197. data/sample-apps/trello-integration-app/app/assets/javascripts/application.js +22 -0
  198. data/sample-apps/trello-integration-app/app/assets/javascripts/cable.js +13 -0
  199. data/sample-apps/trello-integration-app/app/assets/javascripts/channels/.keep +0 -0
  200. data/sample-apps/trello-integration-app/app/assets/javascripts/jquery-spinner.min.js +11071 -0
  201. data/sample-apps/trello-integration-app/app/assets/javascripts/lodash.js +15972 -0
  202. data/sample-apps/trello-integration-app/app/assets/javascripts/mappings.js +78 -0
  203. data/sample-apps/trello-integration-app/app/assets/javascripts/typeahead.bundle.min.js +8 -0
  204. data/sample-apps/trello-integration-app/app/assets/stylesheets/application.css +46 -0
  205. data/sample-apps/trello-integration-app/app/assets/stylesheets/authorization.scss +34 -0
  206. data/sample-apps/trello-integration-app/app/assets/stylesheets/jquery-spinner.css +33 -0
  207. data/sample-apps/trello-integration-app/app/assets/stylesheets/mappings.scss +55 -0
  208. data/sample-apps/trello-integration-app/app/assets/stylesheets/navigation.scss +43 -0
  209. data/sample-apps/trello-integration-app/app/assets/stylesheets/search_frame.scss +81 -0
  210. data/sample-apps/trello-integration-app/app/controllers/application_controller.rb +38 -0
  211. data/sample-apps/trello-integration-app/app/controllers/concerns/.keep +0 -0
  212. data/sample-apps/trello-integration-app/app/controllers/concerns/exception_handler.rb +12 -0
  213. data/sample-apps/trello-integration-app/app/controllers/home_controller.rb +20 -0
  214. data/sample-apps/trello-integration-app/app/controllers/mappings_controller.rb +64 -0
  215. data/sample-apps/trello-integration-app/app/controllers/oauth/authorization_controller.rb +28 -0
  216. data/sample-apps/trello-integration-app/app/controllers/trello/cards_controller.rb +94 -0
  217. data/sample-apps/trello-integration-app/app/controllers/trello/webhooks_controller.rb +30 -0
  218. data/sample-apps/trello-integration-app/app/helpers/application_helper.rb +2 -0
  219. data/sample-apps/trello-integration-app/app/helpers/oauth/authorization_helper.rb +11 -0
  220. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/authorize.rb +17 -0
  221. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/get_authorization_uri.rb +35 -0
  222. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/base.rb +21 -0
  223. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/generate.rb +28 -0
  224. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/refresh.rb +35 -0
  225. data/sample-apps/trello-integration-app/app/lib/services/hubspot/deals/get_by_id.rb +15 -0
  226. data/sample-apps/trello-integration-app/app/lib/services/hubspot/deals/update.rb +17 -0
  227. data/sample-apps/trello-integration-app/app/lib/services/hubspot/extensions_cards/create.rb +82 -0
  228. data/sample-apps/trello-integration-app/app/lib/services/hubspot/pipelines/get_all.rb +11 -0
  229. data/sample-apps/trello-integration-app/app/lib/services/hubspot/pipelines/get_by_id.rb +15 -0
  230. data/sample-apps/trello-integration-app/app/lib/services/trello/authorization/authorize.rb +20 -0
  231. data/sample-apps/trello-integration-app/app/lib/services/trello/boards/get_all.rb +11 -0
  232. data/sample-apps/trello-integration-app/app/lib/services/trello/boards/get_by_id.rb +19 -0
  233. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/format.rb +78 -0
  234. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/get_by_id.rb +15 -0
  235. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/search.rb +15 -0
  236. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/create.rb +31 -0
  237. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/delete.rb +17 -0
  238. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/update.rb +19 -0
  239. data/sample-apps/trello-integration-app/app/models/application_record.rb +3 -0
  240. data/sample-apps/trello-integration-app/app/models/concerns/.keep +0 -0
  241. data/sample-apps/trello-integration-app/app/models/deal_association.rb +2 -0
  242. data/sample-apps/trello-integration-app/app/models/extension_card.rb +4 -0
  243. data/sample-apps/trello-integration-app/app/models/hubspot_token.rb +19 -0
  244. data/sample-apps/trello-integration-app/app/models/mapping.rb +2 -0
  245. data/sample-apps/trello-integration-app/app/models/trello_token.rb +19 -0
  246. data/sample-apps/trello-integration-app/app/models/webhook.rb +2 -0
  247. data/sample-apps/trello-integration-app/app/views/home/index.html.erb +23 -0
  248. data/sample-apps/trello-integration-app/app/views/home/success.html.erb +11 -0
  249. data/sample-apps/trello-integration-app/app/views/layouts/application.html.erb +23 -0
  250. data/sample-apps/trello-integration-app/app/views/mappings/_mapping.html.erb +13 -0
  251. data/sample-apps/trello-integration-app/app/views/mappings/index.html.erb +44 -0
  252. data/sample-apps/trello-integration-app/app/views/oauth/authorization/login.html.erb +42 -0
  253. data/sample-apps/trello-integration-app/app/views/shared/_header.html.erb +15 -0
  254. data/sample-apps/trello-integration-app/app/views/trello/cards/search_frame.html.erb +69 -0
  255. data/sample-apps/trello-integration-app/app/views/trello/cards/search_frame_success.html.erb +7 -0
  256. data/sample-apps/trello-integration-app/bin/bundle +3 -0
  257. data/sample-apps/trello-integration-app/bin/rails +9 -0
  258. data/sample-apps/trello-integration-app/bin/rake +9 -0
  259. data/sample-apps/trello-integration-app/bin/setup +36 -0
  260. data/sample-apps/trello-integration-app/bin/spring +17 -0
  261. data/sample-apps/trello-integration-app/bin/update +31 -0
  262. data/sample-apps/trello-integration-app/bin/yarn +11 -0
  263. data/sample-apps/trello-integration-app/config.ru +5 -0
  264. data/sample-apps/trello-integration-app/config/application.rb +20 -0
  265. data/sample-apps/trello-integration-app/config/boot.rb +3 -0
  266. data/sample-apps/trello-integration-app/config/cable.yml +10 -0
  267. data/sample-apps/trello-integration-app/config/database.yml +16 -0
  268. data/sample-apps/trello-integration-app/config/environment.rb +5 -0
  269. data/sample-apps/trello-integration-app/config/environments/development.rb +61 -0
  270. data/sample-apps/trello-integration-app/config/environments/production.rb +94 -0
  271. data/sample-apps/trello-integration-app/config/environments/test.rb +46 -0
  272. data/sample-apps/trello-integration-app/config/initializers/assets.rb +14 -0
  273. data/sample-apps/trello-integration-app/config/initializers/filter_parameter_logging.rb +4 -0
  274. data/sample-apps/trello-integration-app/config/initializers/hubspot-api-client.rb +3 -0
  275. data/sample-apps/trello-integration-app/config/initializers/mime_types.rb +1 -0
  276. data/sample-apps/trello-integration-app/config/initializers/omniauth.rb +11 -0
  277. data/sample-apps/trello-integration-app/config/initializers/trello.rb +1 -0
  278. data/sample-apps/trello-integration-app/config/initializers/wrap_parameters.rb +14 -0
  279. data/sample-apps/trello-integration-app/config/locales/en.yml +33 -0
  280. data/sample-apps/trello-integration-app/config/puma.rb +34 -0
  281. data/sample-apps/trello-integration-app/config/routes.rb +29 -0
  282. data/sample-apps/trello-integration-app/config/spring.rb +6 -0
  283. data/sample-apps/trello-integration-app/config/storage.yml +34 -0
  284. data/sample-apps/trello-integration-app/db/migrate/20200624132327_create_hubspot_tokens.rb +10 -0
  285. data/sample-apps/trello-integration-app/db/migrate/20200624132336_create_trello_tokens.rb +8 -0
  286. data/sample-apps/trello-integration-app/db/migrate/20200624132337_create_deal_associations.rb +8 -0
  287. data/sample-apps/trello-integration-app/db/migrate/20200702130530_create_extension_cards.rb +8 -0
  288. data/sample-apps/trello-integration-app/db/migrate/20200715143913_create_mappings.rb +12 -0
  289. data/sample-apps/trello-integration-app/db/migrate/20200727083656_create_webhooks.rb +9 -0
  290. data/sample-apps/trello-integration-app/db/schema.rb +52 -0
  291. data/sample-apps/trello-integration-app/db/seeds.rb +7 -0
  292. data/sample-apps/trello-integration-app/docker-compose.yml +41 -0
  293. data/sample-apps/trello-integration-app/docker-entrypoint.sh +8 -0
  294. data/sample-apps/trello-integration-app/lib/assets/.keep +0 -0
  295. data/sample-apps/trello-integration-app/lib/middlewares/trello_payload_params_handler.rb +18 -0
  296. data/sample-apps/trello-integration-app/lib/tasks/.keep +0 -0
  297. data/sample-apps/trello-integration-app/log/.keep +0 -0
  298. data/sample-apps/trello-integration-app/package.json +5 -0
  299. data/sample-apps/trello-integration-app/public/404.html +67 -0
  300. data/sample-apps/trello-integration-app/public/422.html +67 -0
  301. data/sample-apps/trello-integration-app/public/500.html +66 -0
  302. data/sample-apps/trello-integration-app/public/favicon.ico +0 -0
  303. data/sample-apps/trello-integration-app/public/robots.txt +1 -0
  304. data/sample-apps/trello-integration-app/tmp/.keep +0 -0
  305. data/sample-apps/webhooks-contacts-app/app/lib/services/hubspot/contacts/get_batch.rb +1 -4
  306. metadata +466 -2
@@ -0,0 +1,224 @@
1
+ =begin
2
+ #Schemas
3
+
4
+ #The CRM uses schemas to define how custom objects should store and represent information in the HubSpot CRM. Schemas define details about an object's type, properties, and associations. The schema can be uniquely identified by its **object type ID**.
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 Crm
17
+ module Schemas
18
+ class PreviousPage
19
+ attr_accessor :before
20
+
21
+ attr_accessor :link
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'before' => :'before',
27
+ :'link' => :'link'
28
+ }
29
+ end
30
+
31
+ # Attribute type mapping.
32
+ def self.openapi_types
33
+ {
34
+ :'before' => :'String',
35
+ :'link' => :'String'
36
+ }
37
+ end
38
+
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new([
42
+ ])
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param [Hash] attributes Model attributes in the form of hash
47
+ def initialize(attributes = {})
48
+ if (!attributes.is_a?(Hash))
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Hubspot::Crm::Schemas::PreviousPage` initialize method"
50
+ end
51
+
52
+ # check to see if the attribute exists and convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}) { |(k, v), h|
54
+ if (!self.class.attribute_map.key?(k.to_sym))
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Hubspot::Crm::Schemas::PreviousPage`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ end
57
+ h[k.to_sym] = v
58
+ }
59
+
60
+ if attributes.key?(:'before')
61
+ self.before = attributes[:'before']
62
+ end
63
+
64
+ if attributes.key?(:'link')
65
+ self.link = attributes[:'link']
66
+ end
67
+ end
68
+
69
+ # Show invalid properties with the reasons. Usually used together with valid?
70
+ # @return Array for valid properties with the reasons
71
+ def list_invalid_properties
72
+ invalid_properties = Array.new
73
+ if @before.nil?
74
+ invalid_properties.push('invalid value for "before", before cannot be nil.')
75
+ end
76
+
77
+ invalid_properties
78
+ end
79
+
80
+ # Check to see if the all the properties in the model are valid
81
+ # @return true if the model is valid
82
+ def valid?
83
+ return false if @before.nil?
84
+ true
85
+ end
86
+
87
+ # Checks equality by comparing each attribute.
88
+ # @param [Object] Object to be compared
89
+ def ==(o)
90
+ return true if self.equal?(o)
91
+ self.class == o.class &&
92
+ before == o.before &&
93
+ link == o.link
94
+ end
95
+
96
+ # @see the `==` method
97
+ # @param [Object] Object to be compared
98
+ def eql?(o)
99
+ self == o
100
+ end
101
+
102
+ # Calculates hash code according to all attributes.
103
+ # @return [Integer] Hash code
104
+ def hash
105
+ [before, link].hash
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def self.build_from_hash(attributes)
112
+ new.build_from_hash(attributes)
113
+ end
114
+
115
+ # Builds the object from hash
116
+ # @param [Hash] attributes Model attributes in the form of hash
117
+ # @return [Object] Returns the model itself
118
+ def build_from_hash(attributes)
119
+ return nil unless attributes.is_a?(Hash)
120
+ self.class.openapi_types.each_pair do |key, type|
121
+ if type =~ /\AArray<(.*)>/i
122
+ # check to ensure the input is an array given that the attribute
123
+ # is documented as an array but the input is not
124
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
125
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
126
+ end
127
+ elsif !attributes[self.class.attribute_map[key]].nil?
128
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
129
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
130
+ end
131
+
132
+ self
133
+ end
134
+
135
+ # Deserializes the data based on type
136
+ # @param string type Data type
137
+ # @param string value Value to be deserialized
138
+ # @return [Object] Deserialized data
139
+ def _deserialize(type, value)
140
+ case type.to_sym
141
+ when :DateTime
142
+ DateTime.parse(value)
143
+ when :Date
144
+ Date.parse(value)
145
+ when :String
146
+ value.to_s
147
+ when :Integer
148
+ value.to_i
149
+ when :Float
150
+ value.to_f
151
+ when :Boolean
152
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
153
+ true
154
+ else
155
+ false
156
+ end
157
+ when :Object
158
+ # generic object (usually a Hash), return directly
159
+ value
160
+ when /\AArray<(?<inner_type>.+)>\z/
161
+ inner_type = Regexp.last_match[:inner_type]
162
+ value.map { |v| _deserialize(inner_type, v) }
163
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
164
+ k_type = Regexp.last_match[:k_type]
165
+ v_type = Regexp.last_match[:v_type]
166
+ {}.tap do |hash|
167
+ value.each do |k, v|
168
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
169
+ end
170
+ end
171
+ else # model
172
+ Hubspot::Crm::Schemas.const_get(type).build_from_hash(value)
173
+ end
174
+ end
175
+
176
+ # Returns the string representation of the object
177
+ # @return [String] String presentation of the object
178
+ def to_s
179
+ to_hash.to_s
180
+ end
181
+
182
+ # to_body is an alias to to_hash (backward compatibility)
183
+ # @return [Hash] Returns the object in the form of hash
184
+ def to_body
185
+ to_hash
186
+ end
187
+
188
+ # Returns the object in the form of hash
189
+ # @return [Hash] Returns the object in the form of hash
190
+ def to_hash
191
+ hash = {}
192
+ self.class.attribute_map.each_pair do |attr, param|
193
+ value = self.send(attr)
194
+ if value.nil?
195
+ is_nullable = self.class.openapi_nullable.include?(attr)
196
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
197
+ end
198
+
199
+ hash[param] = _to_hash(value)
200
+ end
201
+ hash
202
+ end
203
+
204
+ # Outputs non-array value in the form of hash
205
+ # For object, use to_hash. Otherwise, just return the value
206
+ # @param [Object] value Any valid value
207
+ # @return [Hash] Returns the value in the form of hash
208
+ def _to_hash(value)
209
+ if value.is_a?(Array)
210
+ value.compact.map { |v| _to_hash(v) }
211
+ elsif value.is_a?(Hash)
212
+ {}.tap do |hash|
213
+ value.each { |k, v| hash[k] = _to_hash(v) }
214
+ end
215
+ elsif value.respond_to? :to_hash
216
+ value.to_hash
217
+ else
218
+ value
219
+ end
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
@@ -0,0 +1,465 @@
1
+ =begin
2
+ #Schemas
3
+
4
+ #The CRM uses schemas to define how custom objects should store and represent information in the HubSpot CRM. Schemas define details about an object's type, properties, and associations. The schema can be uniquely identified by its **object type ID**.
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 Crm
17
+ module Schemas
18
+ class Property
19
+ attr_accessor :updated_at
20
+
21
+ # When the property was created
22
+ attr_accessor :created_at
23
+
24
+ # When the property was archived.
25
+ attr_accessor :archived_at
26
+
27
+ # The internal property name, which must be used when referencing the property via the API.
28
+ attr_accessor :name
29
+
30
+ # A human-readable property label that will be shown in HubSpot.
31
+ attr_accessor :label
32
+
33
+ # The property data type.
34
+ attr_accessor :type
35
+
36
+ # Controls how the property appears in HubSpot.
37
+ attr_accessor :field_type
38
+
39
+ # A description of the property that will be shown as help text in HubSpot.
40
+ attr_accessor :description
41
+
42
+ # The name of the property group the property belongs to.
43
+ attr_accessor :group_name
44
+
45
+ # A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.
46
+ attr_accessor :options
47
+
48
+ # The internal ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot.
49
+ attr_accessor :created_user_id
50
+
51
+ # The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot.
52
+ attr_accessor :updated_user_id
53
+
54
+ # If this property is related to other object(s), they'll be listed here.
55
+ attr_accessor :referenced_object_type
56
+
57
+ # The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.
58
+ attr_accessor :display_order
59
+
60
+ # For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties.
61
+ attr_accessor :calculated
62
+
63
+ # For default properties, true indicates that the options are stored externally to the property settings.
64
+ attr_accessor :external_options
65
+
66
+ # Whether or not the property is archived.
67
+ attr_accessor :archived
68
+
69
+ # Whether or not the property's value must be unique. Once set, this can't be changed.
70
+ attr_accessor :has_unique_value
71
+
72
+ attr_accessor :hidden
73
+
74
+ # This will be true for default object properties built into HubSpot.
75
+ attr_accessor :hubspot_defined
76
+
77
+ # Whether the property will display the currency symbol set in the account settings.
78
+ attr_accessor :show_currency_symbol
79
+
80
+ attr_accessor :modification_metadata
81
+
82
+ # Whether or not the property can be used in a HubSpot form.
83
+ attr_accessor :form_field
84
+
85
+ # Attribute mapping from ruby-style variable name to JSON key.
86
+ def self.attribute_map
87
+ {
88
+ :'updated_at' => :'updatedAt',
89
+ :'created_at' => :'createdAt',
90
+ :'archived_at' => :'archivedAt',
91
+ :'name' => :'name',
92
+ :'label' => :'label',
93
+ :'type' => :'type',
94
+ :'field_type' => :'fieldType',
95
+ :'description' => :'description',
96
+ :'group_name' => :'groupName',
97
+ :'options' => :'options',
98
+ :'created_user_id' => :'createdUserId',
99
+ :'updated_user_id' => :'updatedUserId',
100
+ :'referenced_object_type' => :'referencedObjectType',
101
+ :'display_order' => :'displayOrder',
102
+ :'calculated' => :'calculated',
103
+ :'external_options' => :'externalOptions',
104
+ :'archived' => :'archived',
105
+ :'has_unique_value' => :'hasUniqueValue',
106
+ :'hidden' => :'hidden',
107
+ :'hubspot_defined' => :'hubspotDefined',
108
+ :'show_currency_symbol' => :'showCurrencySymbol',
109
+ :'modification_metadata' => :'modificationMetadata',
110
+ :'form_field' => :'formField'
111
+ }
112
+ end
113
+
114
+ # Attribute type mapping.
115
+ def self.openapi_types
116
+ {
117
+ :'updated_at' => :'DateTime',
118
+ :'created_at' => :'DateTime',
119
+ :'archived_at' => :'DateTime',
120
+ :'name' => :'String',
121
+ :'label' => :'String',
122
+ :'type' => :'String',
123
+ :'field_type' => :'String',
124
+ :'description' => :'String',
125
+ :'group_name' => :'String',
126
+ :'options' => :'Array<Option>',
127
+ :'created_user_id' => :'String',
128
+ :'updated_user_id' => :'String',
129
+ :'referenced_object_type' => :'String',
130
+ :'display_order' => :'Integer',
131
+ :'calculated' => :'Boolean',
132
+ :'external_options' => :'Boolean',
133
+ :'archived' => :'Boolean',
134
+ :'has_unique_value' => :'Boolean',
135
+ :'hidden' => :'Boolean',
136
+ :'hubspot_defined' => :'Boolean',
137
+ :'show_currency_symbol' => :'Boolean',
138
+ :'modification_metadata' => :'PropertyModificationMetadata',
139
+ :'form_field' => :'Boolean'
140
+ }
141
+ end
142
+
143
+ # List of attributes with nullable: true
144
+ def self.openapi_nullable
145
+ Set.new([
146
+ ])
147
+ end
148
+
149
+ # Initializes the object
150
+ # @param [Hash] attributes Model attributes in the form of hash
151
+ def initialize(attributes = {})
152
+ if (!attributes.is_a?(Hash))
153
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Hubspot::Crm::Schemas::Property` initialize method"
154
+ end
155
+
156
+ # check to see if the attribute exists and convert string to symbol for hash key
157
+ attributes = attributes.each_with_object({}) { |(k, v), h|
158
+ if (!self.class.attribute_map.key?(k.to_sym))
159
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Hubspot::Crm::Schemas::Property`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
160
+ end
161
+ h[k.to_sym] = v
162
+ }
163
+
164
+ if attributes.key?(:'updated_at')
165
+ self.updated_at = attributes[:'updated_at']
166
+ end
167
+
168
+ if attributes.key?(:'created_at')
169
+ self.created_at = attributes[:'created_at']
170
+ end
171
+
172
+ if attributes.key?(:'archived_at')
173
+ self.archived_at = attributes[:'archived_at']
174
+ end
175
+
176
+ if attributes.key?(:'name')
177
+ self.name = attributes[:'name']
178
+ end
179
+
180
+ if attributes.key?(:'label')
181
+ self.label = attributes[:'label']
182
+ end
183
+
184
+ if attributes.key?(:'type')
185
+ self.type = attributes[:'type']
186
+ end
187
+
188
+ if attributes.key?(:'field_type')
189
+ self.field_type = attributes[:'field_type']
190
+ end
191
+
192
+ if attributes.key?(:'description')
193
+ self.description = attributes[:'description']
194
+ end
195
+
196
+ if attributes.key?(:'group_name')
197
+ self.group_name = attributes[:'group_name']
198
+ end
199
+
200
+ if attributes.key?(:'options')
201
+ if (value = attributes[:'options']).is_a?(Array)
202
+ self.options = value
203
+ end
204
+ end
205
+
206
+ if attributes.key?(:'created_user_id')
207
+ self.created_user_id = attributes[:'created_user_id']
208
+ end
209
+
210
+ if attributes.key?(:'updated_user_id')
211
+ self.updated_user_id = attributes[:'updated_user_id']
212
+ end
213
+
214
+ if attributes.key?(:'referenced_object_type')
215
+ self.referenced_object_type = attributes[:'referenced_object_type']
216
+ end
217
+
218
+ if attributes.key?(:'display_order')
219
+ self.display_order = attributes[:'display_order']
220
+ end
221
+
222
+ if attributes.key?(:'calculated')
223
+ self.calculated = attributes[:'calculated']
224
+ end
225
+
226
+ if attributes.key?(:'external_options')
227
+ self.external_options = attributes[:'external_options']
228
+ end
229
+
230
+ if attributes.key?(:'archived')
231
+ self.archived = attributes[:'archived']
232
+ end
233
+
234
+ if attributes.key?(:'has_unique_value')
235
+ self.has_unique_value = attributes[:'has_unique_value']
236
+ end
237
+
238
+ if attributes.key?(:'hidden')
239
+ self.hidden = attributes[:'hidden']
240
+ end
241
+
242
+ if attributes.key?(:'hubspot_defined')
243
+ self.hubspot_defined = attributes[:'hubspot_defined']
244
+ end
245
+
246
+ if attributes.key?(:'show_currency_symbol')
247
+ self.show_currency_symbol = attributes[:'show_currency_symbol']
248
+ end
249
+
250
+ if attributes.key?(:'modification_metadata')
251
+ self.modification_metadata = attributes[:'modification_metadata']
252
+ end
253
+
254
+ if attributes.key?(:'form_field')
255
+ self.form_field = attributes[:'form_field']
256
+ end
257
+ end
258
+
259
+ # Show invalid properties with the reasons. Usually used together with valid?
260
+ # @return Array for valid properties with the reasons
261
+ def list_invalid_properties
262
+ invalid_properties = Array.new
263
+ if @name.nil?
264
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
265
+ end
266
+
267
+ if @label.nil?
268
+ invalid_properties.push('invalid value for "label", label cannot be nil.')
269
+ end
270
+
271
+ if @type.nil?
272
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
273
+ end
274
+
275
+ if @field_type.nil?
276
+ invalid_properties.push('invalid value for "field_type", field_type cannot be nil.')
277
+ end
278
+
279
+ if @description.nil?
280
+ invalid_properties.push('invalid value for "description", description cannot be nil.')
281
+ end
282
+
283
+ if @group_name.nil?
284
+ invalid_properties.push('invalid value for "group_name", group_name cannot be nil.')
285
+ end
286
+
287
+ if @options.nil?
288
+ invalid_properties.push('invalid value for "options", options cannot be nil.')
289
+ end
290
+
291
+ invalid_properties
292
+ end
293
+
294
+ # Check to see if the all the properties in the model are valid
295
+ # @return true if the model is valid
296
+ def valid?
297
+ return false if @name.nil?
298
+ return false if @label.nil?
299
+ return false if @type.nil?
300
+ return false if @field_type.nil?
301
+ return false if @description.nil?
302
+ return false if @group_name.nil?
303
+ return false if @options.nil?
304
+ true
305
+ end
306
+
307
+ # Checks equality by comparing each attribute.
308
+ # @param [Object] Object to be compared
309
+ def ==(o)
310
+ return true if self.equal?(o)
311
+ self.class == o.class &&
312
+ updated_at == o.updated_at &&
313
+ created_at == o.created_at &&
314
+ archived_at == o.archived_at &&
315
+ name == o.name &&
316
+ label == o.label &&
317
+ type == o.type &&
318
+ field_type == o.field_type &&
319
+ description == o.description &&
320
+ group_name == o.group_name &&
321
+ options == o.options &&
322
+ created_user_id == o.created_user_id &&
323
+ updated_user_id == o.updated_user_id &&
324
+ referenced_object_type == o.referenced_object_type &&
325
+ display_order == o.display_order &&
326
+ calculated == o.calculated &&
327
+ external_options == o.external_options &&
328
+ archived == o.archived &&
329
+ has_unique_value == o.has_unique_value &&
330
+ hidden == o.hidden &&
331
+ hubspot_defined == o.hubspot_defined &&
332
+ show_currency_symbol == o.show_currency_symbol &&
333
+ modification_metadata == o.modification_metadata &&
334
+ form_field == o.form_field
335
+ end
336
+
337
+ # @see the `==` method
338
+ # @param [Object] Object to be compared
339
+ def eql?(o)
340
+ self == o
341
+ end
342
+
343
+ # Calculates hash code according to all attributes.
344
+ # @return [Integer] Hash code
345
+ def hash
346
+ [updated_at, created_at, archived_at, name, label, type, field_type, description, group_name, options, created_user_id, updated_user_id, referenced_object_type, display_order, calculated, external_options, archived, has_unique_value, hidden, hubspot_defined, show_currency_symbol, modification_metadata, form_field].hash
347
+ end
348
+
349
+ # Builds the object from hash
350
+ # @param [Hash] attributes Model attributes in the form of hash
351
+ # @return [Object] Returns the model itself
352
+ def self.build_from_hash(attributes)
353
+ new.build_from_hash(attributes)
354
+ end
355
+
356
+ # Builds the object from hash
357
+ # @param [Hash] attributes Model attributes in the form of hash
358
+ # @return [Object] Returns the model itself
359
+ def build_from_hash(attributes)
360
+ return nil unless attributes.is_a?(Hash)
361
+ self.class.openapi_types.each_pair do |key, type|
362
+ if type =~ /\AArray<(.*)>/i
363
+ # check to ensure the input is an array given that the attribute
364
+ # is documented as an array but the input is not
365
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
366
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
367
+ end
368
+ elsif !attributes[self.class.attribute_map[key]].nil?
369
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
370
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
371
+ end
372
+
373
+ self
374
+ end
375
+
376
+ # Deserializes the data based on type
377
+ # @param string type Data type
378
+ # @param string value Value to be deserialized
379
+ # @return [Object] Deserialized data
380
+ def _deserialize(type, value)
381
+ case type.to_sym
382
+ when :DateTime
383
+ DateTime.parse(value)
384
+ when :Date
385
+ Date.parse(value)
386
+ when :String
387
+ value.to_s
388
+ when :Integer
389
+ value.to_i
390
+ when :Float
391
+ value.to_f
392
+ when :Boolean
393
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
394
+ true
395
+ else
396
+ false
397
+ end
398
+ when :Object
399
+ # generic object (usually a Hash), return directly
400
+ value
401
+ when /\AArray<(?<inner_type>.+)>\z/
402
+ inner_type = Regexp.last_match[:inner_type]
403
+ value.map { |v| _deserialize(inner_type, v) }
404
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
405
+ k_type = Regexp.last_match[:k_type]
406
+ v_type = Regexp.last_match[:v_type]
407
+ {}.tap do |hash|
408
+ value.each do |k, v|
409
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
410
+ end
411
+ end
412
+ else # model
413
+ Hubspot::Crm::Schemas.const_get(type).build_from_hash(value)
414
+ end
415
+ end
416
+
417
+ # Returns the string representation of the object
418
+ # @return [String] String presentation of the object
419
+ def to_s
420
+ to_hash.to_s
421
+ end
422
+
423
+ # to_body is an alias to to_hash (backward compatibility)
424
+ # @return [Hash] Returns the object in the form of hash
425
+ def to_body
426
+ to_hash
427
+ end
428
+
429
+ # Returns the object in the form of hash
430
+ # @return [Hash] Returns the object in the form of hash
431
+ def to_hash
432
+ hash = {}
433
+ self.class.attribute_map.each_pair do |attr, param|
434
+ value = self.send(attr)
435
+ if value.nil?
436
+ is_nullable = self.class.openapi_nullable.include?(attr)
437
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
438
+ end
439
+
440
+ hash[param] = _to_hash(value)
441
+ end
442
+ hash
443
+ end
444
+
445
+ # Outputs non-array value in the form of hash
446
+ # For object, use to_hash. Otherwise, just return the value
447
+ # @param [Object] value Any valid value
448
+ # @return [Hash] Returns the value in the form of hash
449
+ def _to_hash(value)
450
+ if value.is_a?(Array)
451
+ value.compact.map { |v| _to_hash(v) }
452
+ elsif value.is_a?(Hash)
453
+ {}.tap do |hash|
454
+ value.each { |k, v| hash[k] = _to_hash(v) }
455
+ end
456
+ elsif value.respond_to? :to_hash
457
+ value.to_hash
458
+ else
459
+ value
460
+ end
461
+ end
462
+ end
463
+ end
464
+ end
465
+ end