hubspot-api-client 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (841) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +68 -0
  4. data/README.md +109 -0
  5. data/Rakefile +8 -0
  6. data/git_push.sh +55 -0
  7. data/hubspot-api-client.gemspec +31 -0
  8. data/lib/hubspot-api-client.rb +49 -0
  9. data/lib/hubspot/codegen/crm/associations/api/batch_api.rb +246 -0
  10. data/lib/hubspot/codegen/crm/associations/api_client.rb +423 -0
  11. data/lib/hubspot/codegen/crm/associations/api_error.rb +63 -0
  12. data/lib/hubspot/codegen/crm/associations/configuration.rb +260 -0
  13. data/lib/hubspot/codegen/crm/associations/models/batch_input_public_association.rb +221 -0
  14. data/lib/hubspot/codegen/crm/associations/models/batch_input_public_object_id.rb +221 -0
  15. data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association.rb +331 -0
  16. data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi.rb +331 -0
  17. data/lib/hubspot/codegen/crm/associations/models/error.rb +286 -0
  18. data/lib/hubspot/codegen/crm/associations/models/error_detail.rb +265 -0
  19. data/lib/hubspot/codegen/crm/associations/models/public_association.rb +233 -0
  20. data/lib/hubspot/codegen/crm/associations/models/public_association_multi.rb +236 -0
  21. data/lib/hubspot/codegen/crm/associations/models/public_object_id.rb +220 -0
  22. data/lib/hubspot/codegen/crm/companies/api/associations_api.rb +240 -0
  23. data/lib/hubspot/codegen/crm/companies/api/basic_api.rb +360 -0
  24. data/lib/hubspot/codegen/crm/companies/api/batch_api.rb +273 -0
  25. data/lib/hubspot/codegen/crm/companies/api/search_api.rb +90 -0
  26. data/lib/hubspot/codegen/crm/companies/api_client.rb +423 -0
  27. data/lib/hubspot/codegen/crm/companies/api_error.rb +63 -0
  28. data/lib/hubspot/codegen/crm/companies/configuration.rb +260 -0
  29. data/lib/hubspot/codegen/crm/companies/models/batch_input_simple_public_object_batch_input.rb +221 -0
  30. data/lib/hubspot/codegen/crm/companies/models/batch_input_simple_public_object_id.rb +221 -0
  31. data/lib/hubspot/codegen/crm/companies/models/batch_input_simple_public_object_input.rb +221 -0
  32. data/lib/hubspot/codegen/crm/companies/models/batch_read_input_simple_public_object_id.rb +237 -0
  33. data/lib/hubspot/codegen/crm/companies/models/batch_response_simple_public_object.rb +331 -0
  34. data/lib/hubspot/codegen/crm/companies/models/collection_response_simple_public_object.rb +230 -0
  35. data/lib/hubspot/codegen/crm/companies/models/collection_response_simple_public_object_id.rb +230 -0
  36. data/lib/hubspot/codegen/crm/companies/models/collection_response_with_total_simple_public_object.rb +245 -0
  37. data/lib/hubspot/codegen/crm/companies/models/error.rb +286 -0
  38. data/lib/hubspot/codegen/crm/companies/models/error_detail.rb +265 -0
  39. data/lib/hubspot/codegen/crm/companies/models/filter.rb +276 -0
  40. data/lib/hubspot/codegen/crm/companies/models/filter_group.rb +221 -0
  41. data/lib/hubspot/codegen/crm/companies/models/next_page.rb +228 -0
  42. data/lib/hubspot/codegen/crm/companies/models/paging.rb +214 -0
  43. data/lib/hubspot/codegen/crm/companies/models/public_object_search_request.rb +290 -0
  44. data/lib/hubspot/codegen/crm/companies/models/simple_public_object.rb +302 -0
  45. data/lib/hubspot/codegen/crm/companies/models/simple_public_object_batch_input.rb +235 -0
  46. data/lib/hubspot/codegen/crm/companies/models/simple_public_object_id.rb +219 -0
  47. data/lib/hubspot/codegen/crm/companies/models/simple_public_object_input.rb +221 -0
  48. data/lib/hubspot/codegen/crm/contacts/api/associations_api.rb +240 -0
  49. data/lib/hubspot/codegen/crm/contacts/api/basic_api.rb +360 -0
  50. data/lib/hubspot/codegen/crm/contacts/api/batch_api.rb +273 -0
  51. data/lib/hubspot/codegen/crm/contacts/api/search_api.rb +90 -0
  52. data/lib/hubspot/codegen/crm/contacts/api_client.rb +423 -0
  53. data/lib/hubspot/codegen/crm/contacts/api_error.rb +63 -0
  54. data/lib/hubspot/codegen/crm/contacts/configuration.rb +260 -0
  55. data/lib/hubspot/codegen/crm/contacts/models/batch_input_simple_public_object_batch_input.rb +221 -0
  56. data/lib/hubspot/codegen/crm/contacts/models/batch_input_simple_public_object_id.rb +221 -0
  57. data/lib/hubspot/codegen/crm/contacts/models/batch_input_simple_public_object_input.rb +221 -0
  58. data/lib/hubspot/codegen/crm/contacts/models/batch_read_input_simple_public_object_id.rb +237 -0
  59. data/lib/hubspot/codegen/crm/contacts/models/batch_response_simple_public_object.rb +331 -0
  60. data/lib/hubspot/codegen/crm/contacts/models/collection_response_simple_public_object.rb +230 -0
  61. data/lib/hubspot/codegen/crm/contacts/models/collection_response_simple_public_object_id.rb +230 -0
  62. data/lib/hubspot/codegen/crm/contacts/models/collection_response_with_total_simple_public_object.rb +245 -0
  63. data/lib/hubspot/codegen/crm/contacts/models/error.rb +286 -0
  64. data/lib/hubspot/codegen/crm/contacts/models/error_detail.rb +265 -0
  65. data/lib/hubspot/codegen/crm/contacts/models/filter.rb +276 -0
  66. data/lib/hubspot/codegen/crm/contacts/models/filter_group.rb +221 -0
  67. data/lib/hubspot/codegen/crm/contacts/models/next_page.rb +228 -0
  68. data/lib/hubspot/codegen/crm/contacts/models/paging.rb +214 -0
  69. data/lib/hubspot/codegen/crm/contacts/models/public_object_search_request.rb +290 -0
  70. data/lib/hubspot/codegen/crm/contacts/models/simple_public_object.rb +302 -0
  71. data/lib/hubspot/codegen/crm/contacts/models/simple_public_object_batch_input.rb +235 -0
  72. data/lib/hubspot/codegen/crm/contacts/models/simple_public_object_id.rb +219 -0
  73. data/lib/hubspot/codegen/crm/contacts/models/simple_public_object_input.rb +221 -0
  74. data/lib/hubspot/codegen/crm/deals/api/associations_api.rb +240 -0
  75. data/lib/hubspot/codegen/crm/deals/api/basic_api.rb +360 -0
  76. data/lib/hubspot/codegen/crm/deals/api/batch_api.rb +273 -0
  77. data/lib/hubspot/codegen/crm/deals/api/search_api.rb +90 -0
  78. data/lib/hubspot/codegen/crm/deals/api_client.rb +423 -0
  79. data/lib/hubspot/codegen/crm/deals/api_error.rb +63 -0
  80. data/lib/hubspot/codegen/crm/deals/configuration.rb +260 -0
  81. data/lib/hubspot/codegen/crm/deals/models/batch_input_simple_public_object_batch_input.rb +221 -0
  82. data/lib/hubspot/codegen/crm/deals/models/batch_input_simple_public_object_id.rb +221 -0
  83. data/lib/hubspot/codegen/crm/deals/models/batch_input_simple_public_object_input.rb +221 -0
  84. data/lib/hubspot/codegen/crm/deals/models/batch_read_input_simple_public_object_id.rb +237 -0
  85. data/lib/hubspot/codegen/crm/deals/models/batch_response_simple_public_object.rb +331 -0
  86. data/lib/hubspot/codegen/crm/deals/models/collection_response_simple_public_object.rb +230 -0
  87. data/lib/hubspot/codegen/crm/deals/models/collection_response_simple_public_object_id.rb +230 -0
  88. data/lib/hubspot/codegen/crm/deals/models/collection_response_with_total_simple_public_object.rb +245 -0
  89. data/lib/hubspot/codegen/crm/deals/models/error.rb +286 -0
  90. data/lib/hubspot/codegen/crm/deals/models/error_detail.rb +265 -0
  91. data/lib/hubspot/codegen/crm/deals/models/filter.rb +276 -0
  92. data/lib/hubspot/codegen/crm/deals/models/filter_group.rb +221 -0
  93. data/lib/hubspot/codegen/crm/deals/models/next_page.rb +228 -0
  94. data/lib/hubspot/codegen/crm/deals/models/paging.rb +214 -0
  95. data/lib/hubspot/codegen/crm/deals/models/public_object_search_request.rb +290 -0
  96. data/lib/hubspot/codegen/crm/deals/models/simple_public_object.rb +302 -0
  97. data/lib/hubspot/codegen/crm/deals/models/simple_public_object_batch_input.rb +235 -0
  98. data/lib/hubspot/codegen/crm/deals/models/simple_public_object_id.rb +219 -0
  99. data/lib/hubspot/codegen/crm/deals/models/simple_public_object_input.rb +221 -0
  100. data/lib/hubspot/codegen/crm/extensions/cards/api/cards_api.rb +338 -0
  101. data/lib/hubspot/codegen/crm/extensions/cards/api/default_api.rb +318 -0
  102. data/lib/hubspot/codegen/crm/extensions/cards/api_client.rb +425 -0
  103. data/lib/hubspot/codegen/crm/extensions/cards/api_error.rb +65 -0
  104. data/lib/hubspot/codegen/crm/extensions/cards/configuration.rb +262 -0
  105. data/lib/hubspot/codegen/crm/extensions/cards/models/card_actions.rb +223 -0
  106. data/lib/hubspot/codegen/crm/extensions/cards/models/card_create_request.rb +263 -0
  107. data/lib/hubspot/codegen/crm/extensions/cards/models/card_display_body.rb +223 -0
  108. data/lib/hubspot/codegen/crm/extensions/cards/models/card_display_property.rb +299 -0
  109. data/lib/hubspot/codegen/crm/extensions/cards/models/card_fetch_body.rb +237 -0
  110. data/lib/hubspot/codegen/crm/extensions/cards/models/card_fetch_body_patch.rb +232 -0
  111. data/lib/hubspot/codegen/crm/extensions/cards/models/card_list_response.rb +223 -0
  112. data/lib/hubspot/codegen/crm/extensions/cards/models/card_object_type_body.rb +271 -0
  113. data/lib/hubspot/codegen/crm/extensions/cards/models/card_patch_request.rb +243 -0
  114. data/lib/hubspot/codegen/crm/extensions/cards/models/card_response.rb +295 -0
  115. data/lib/hubspot/codegen/crm/extensions/cards/models/display_option.rb +283 -0
  116. data/lib/hubspot/codegen/crm/extensions/cards/models/error.rb +288 -0
  117. data/lib/hubspot/codegen/crm/extensions/cards/models/error_detail.rb +244 -0
  118. data/lib/hubspot/codegen/crm/line_items/api/associations_api.rb +240 -0
  119. data/lib/hubspot/codegen/crm/line_items/api/basic_api.rb +360 -0
  120. data/lib/hubspot/codegen/crm/line_items/api/batch_api.rb +273 -0
  121. data/lib/hubspot/codegen/crm/line_items/api/search_api.rb +90 -0
  122. data/lib/hubspot/codegen/crm/line_items/api_client.rb +423 -0
  123. data/lib/hubspot/codegen/crm/line_items/api_error.rb +63 -0
  124. data/lib/hubspot/codegen/crm/line_items/configuration.rb +260 -0
  125. data/lib/hubspot/codegen/crm/line_items/models/batch_input_simple_public_object_batch_input.rb +221 -0
  126. data/lib/hubspot/codegen/crm/line_items/models/batch_input_simple_public_object_id.rb +221 -0
  127. data/lib/hubspot/codegen/crm/line_items/models/batch_input_simple_public_object_input.rb +221 -0
  128. data/lib/hubspot/codegen/crm/line_items/models/batch_read_input_simple_public_object_id.rb +237 -0
  129. data/lib/hubspot/codegen/crm/line_items/models/batch_response_simple_public_object.rb +331 -0
  130. data/lib/hubspot/codegen/crm/line_items/models/collection_response_simple_public_object.rb +230 -0
  131. data/lib/hubspot/codegen/crm/line_items/models/collection_response_simple_public_object_id.rb +230 -0
  132. data/lib/hubspot/codegen/crm/line_items/models/collection_response_with_total_simple_public_object.rb +245 -0
  133. data/lib/hubspot/codegen/crm/line_items/models/error.rb +286 -0
  134. data/lib/hubspot/codegen/crm/line_items/models/error_detail.rb +265 -0
  135. data/lib/hubspot/codegen/crm/line_items/models/filter.rb +276 -0
  136. data/lib/hubspot/codegen/crm/line_items/models/filter_group.rb +221 -0
  137. data/lib/hubspot/codegen/crm/line_items/models/next_page.rb +228 -0
  138. data/lib/hubspot/codegen/crm/line_items/models/paging.rb +214 -0
  139. data/lib/hubspot/codegen/crm/line_items/models/public_object_search_request.rb +290 -0
  140. data/lib/hubspot/codegen/crm/line_items/models/simple_public_object.rb +302 -0
  141. data/lib/hubspot/codegen/crm/line_items/models/simple_public_object_batch_input.rb +235 -0
  142. data/lib/hubspot/codegen/crm/line_items/models/simple_public_object_id.rb +219 -0
  143. data/lib/hubspot/codegen/crm/line_items/models/simple_public_object_input.rb +221 -0
  144. data/lib/hubspot/codegen/crm/objects/api/associations_api.rb +258 -0
  145. data/lib/hubspot/codegen/crm/objects/api/basic_api.rb +390 -0
  146. data/lib/hubspot/codegen/crm/objects/api/batch_api.rb +297 -0
  147. data/lib/hubspot/codegen/crm/objects/api/search_api.rb +96 -0
  148. data/lib/hubspot/codegen/crm/objects/api_client.rb +423 -0
  149. data/lib/hubspot/codegen/crm/objects/api_error.rb +63 -0
  150. data/lib/hubspot/codegen/crm/objects/configuration.rb +260 -0
  151. data/lib/hubspot/codegen/crm/objects/models/batch_input_simple_public_object_batch_input.rb +221 -0
  152. data/lib/hubspot/codegen/crm/objects/models/batch_input_simple_public_object_id.rb +221 -0
  153. data/lib/hubspot/codegen/crm/objects/models/batch_input_simple_public_object_input.rb +221 -0
  154. data/lib/hubspot/codegen/crm/objects/models/batch_read_input_simple_public_object_id.rb +237 -0
  155. data/lib/hubspot/codegen/crm/objects/models/batch_response_simple_public_object.rb +331 -0
  156. data/lib/hubspot/codegen/crm/objects/models/collection_response_simple_public_object.rb +230 -0
  157. data/lib/hubspot/codegen/crm/objects/models/collection_response_simple_public_object_id.rb +230 -0
  158. data/lib/hubspot/codegen/crm/objects/models/collection_response_with_total_simple_public_object.rb +245 -0
  159. data/lib/hubspot/codegen/crm/objects/models/error.rb +286 -0
  160. data/lib/hubspot/codegen/crm/objects/models/error_detail.rb +265 -0
  161. data/lib/hubspot/codegen/crm/objects/models/filter.rb +276 -0
  162. data/lib/hubspot/codegen/crm/objects/models/filter_group.rb +221 -0
  163. data/lib/hubspot/codegen/crm/objects/models/next_page.rb +228 -0
  164. data/lib/hubspot/codegen/crm/objects/models/paging.rb +214 -0
  165. data/lib/hubspot/codegen/crm/objects/models/public_object_search_request.rb +290 -0
  166. data/lib/hubspot/codegen/crm/objects/models/simple_public_object.rb +302 -0
  167. data/lib/hubspot/codegen/crm/objects/models/simple_public_object_batch_input.rb +235 -0
  168. data/lib/hubspot/codegen/crm/objects/models/simple_public_object_id.rb +219 -0
  169. data/lib/hubspot/codegen/crm/objects/models/simple_public_object_input.rb +221 -0
  170. data/lib/hubspot/codegen/crm/owners/api/default_api.rb +160 -0
  171. data/lib/hubspot/codegen/crm/owners/api_client.rb +423 -0
  172. data/lib/hubspot/codegen/crm/owners/api_error.rb +63 -0
  173. data/lib/hubspot/codegen/crm/owners/configuration.rb +260 -0
  174. data/lib/hubspot/codegen/crm/owners/models/collection_response_public_owner.rb +230 -0
  175. data/lib/hubspot/codegen/crm/owners/models/error.rb +286 -0
  176. data/lib/hubspot/codegen/crm/owners/models/error_detail.rb +242 -0
  177. data/lib/hubspot/codegen/crm/owners/models/next_page.rb +228 -0
  178. data/lib/hubspot/codegen/crm/owners/models/paging.rb +214 -0
  179. data/lib/hubspot/codegen/crm/owners/models/public_owner.rb +313 -0
  180. data/lib/hubspot/codegen/crm/owners/models/public_team.rb +276 -0
  181. data/lib/hubspot/codegen/crm/pipelines/api/pipeline_stages_api.rb +483 -0
  182. data/lib/hubspot/codegen/crm/pipelines/api/pipelines_api.rb +447 -0
  183. data/lib/hubspot/codegen/crm/pipelines/api_client.rb +423 -0
  184. data/lib/hubspot/codegen/crm/pipelines/api_error.rb +63 -0
  185. data/lib/hubspot/codegen/crm/pipelines/configuration.rb +260 -0
  186. data/lib/hubspot/codegen/crm/pipelines/models/collection_response_pipeline.rb +230 -0
  187. data/lib/hubspot/codegen/crm/pipelines/models/collection_response_pipeline_stage.rb +230 -0
  188. data/lib/hubspot/codegen/crm/pipelines/models/error.rb +307 -0
  189. data/lib/hubspot/codegen/crm/pipelines/models/error_detail.rb +242 -0
  190. data/lib/hubspot/codegen/crm/pipelines/models/next_page.rb +228 -0
  191. data/lib/hubspot/codegen/crm/pipelines/models/paging.rb +214 -0
  192. data/lib/hubspot/codegen/crm/pipelines/models/pipeline.rb +323 -0
  193. data/lib/hubspot/codegen/crm/pipelines/models/pipeline_input.rb +253 -0
  194. data/lib/hubspot/codegen/crm/pipelines/models/pipeline_patch_input.rb +236 -0
  195. data/lib/hubspot/codegen/crm/pipelines/models/pipeline_stage.rb +323 -0
  196. data/lib/hubspot/codegen/crm/pipelines/models/pipeline_stage_input.rb +253 -0
  197. data/lib/hubspot/codegen/crm/pipelines/models/pipeline_stage_patch_input.rb +253 -0
  198. data/lib/hubspot/codegen/crm/products/api/associations_api.rb +240 -0
  199. data/lib/hubspot/codegen/crm/products/api/basic_api.rb +360 -0
  200. data/lib/hubspot/codegen/crm/products/api/batch_api.rb +273 -0
  201. data/lib/hubspot/codegen/crm/products/api/search_api.rb +90 -0
  202. data/lib/hubspot/codegen/crm/products/api_client.rb +423 -0
  203. data/lib/hubspot/codegen/crm/products/api_error.rb +63 -0
  204. data/lib/hubspot/codegen/crm/products/configuration.rb +260 -0
  205. data/lib/hubspot/codegen/crm/products/models/batch_input_simple_public_object_batch_input.rb +221 -0
  206. data/lib/hubspot/codegen/crm/products/models/batch_input_simple_public_object_id.rb +221 -0
  207. data/lib/hubspot/codegen/crm/products/models/batch_input_simple_public_object_input.rb +221 -0
  208. data/lib/hubspot/codegen/crm/products/models/batch_read_input_simple_public_object_id.rb +237 -0
  209. data/lib/hubspot/codegen/crm/products/models/batch_response_simple_public_object.rb +331 -0
  210. data/lib/hubspot/codegen/crm/products/models/collection_response_simple_public_object.rb +230 -0
  211. data/lib/hubspot/codegen/crm/products/models/collection_response_simple_public_object_id.rb +230 -0
  212. data/lib/hubspot/codegen/crm/products/models/collection_response_with_total_simple_public_object.rb +245 -0
  213. data/lib/hubspot/codegen/crm/products/models/error.rb +286 -0
  214. data/lib/hubspot/codegen/crm/products/models/error_detail.rb +265 -0
  215. data/lib/hubspot/codegen/crm/products/models/filter.rb +276 -0
  216. data/lib/hubspot/codegen/crm/products/models/filter_group.rb +221 -0
  217. data/lib/hubspot/codegen/crm/products/models/next_page.rb +228 -0
  218. data/lib/hubspot/codegen/crm/products/models/paging.rb +214 -0
  219. data/lib/hubspot/codegen/crm/products/models/public_object_search_request.rb +290 -0
  220. data/lib/hubspot/codegen/crm/products/models/simple_public_object.rb +302 -0
  221. data/lib/hubspot/codegen/crm/products/models/simple_public_object_batch_input.rb +235 -0
  222. data/lib/hubspot/codegen/crm/products/models/simple_public_object_id.rb +219 -0
  223. data/lib/hubspot/codegen/crm/products/models/simple_public_object_input.rb +221 -0
  224. data/lib/hubspot/codegen/crm/properties/api/batch_api.rb +228 -0
  225. data/lib/hubspot/codegen/crm/properties/api/core_api.rb +372 -0
  226. data/lib/hubspot/codegen/crm/properties/api/groups_api.rb +366 -0
  227. data/lib/hubspot/codegen/crm/properties/api_client.rb +423 -0
  228. data/lib/hubspot/codegen/crm/properties/api_error.rb +63 -0
  229. data/lib/hubspot/codegen/crm/properties/configuration.rb +260 -0
  230. data/lib/hubspot/codegen/crm/properties/models/batch_input_property_create.rb +221 -0
  231. data/lib/hubspot/codegen/crm/properties/models/batch_input_property_name.rb +221 -0
  232. data/lib/hubspot/codegen/crm/properties/models/batch_read_input_property_name.rb +235 -0
  233. data/lib/hubspot/codegen/crm/properties/models/batch_response_property.rb +331 -0
  234. data/lib/hubspot/codegen/crm/properties/models/collection_response_property.rb +230 -0
  235. data/lib/hubspot/codegen/crm/properties/models/collection_response_property_group.rb +230 -0
  236. data/lib/hubspot/codegen/crm/properties/models/error.rb +286 -0
  237. data/lib/hubspot/codegen/crm/properties/models/error_detail.rb +265 -0
  238. data/lib/hubspot/codegen/crm/properties/models/next_page.rb +228 -0
  239. data/lib/hubspot/codegen/crm/properties/models/option.rb +270 -0
  240. data/lib/hubspot/codegen/crm/properties/models/option_input.rb +270 -0
  241. data/lib/hubspot/codegen/crm/properties/models/paging.rb +214 -0
  242. data/lib/hubspot/codegen/crm/properties/models/property.rb +469 -0
  243. data/lib/hubspot/codegen/crm/properties/models/property_create.rb +378 -0
  244. data/lib/hubspot/codegen/crm/properties/models/property_group.rb +265 -0
  245. data/lib/hubspot/codegen/crm/properties/models/property_group_create.rb +245 -0
  246. data/lib/hubspot/codegen/crm/properties/models/property_group_update.rb +225 -0
  247. data/lib/hubspot/codegen/crm/properties/models/property_modification_metadata.rb +256 -0
  248. data/lib/hubspot/codegen/crm/properties/models/property_name.rb +220 -0
  249. data/lib/hubspot/codegen/crm/properties/models/property_update.rb +333 -0
  250. data/lib/hubspot/codegen/crm/quotes/api/associations_api.rb +240 -0
  251. data/lib/hubspot/codegen/crm/quotes/api/basic_api.rb +360 -0
  252. data/lib/hubspot/codegen/crm/quotes/api/batch_api.rb +273 -0
  253. data/lib/hubspot/codegen/crm/quotes/api/search_api.rb +90 -0
  254. data/lib/hubspot/codegen/crm/quotes/api_client.rb +423 -0
  255. data/lib/hubspot/codegen/crm/quotes/api_error.rb +63 -0
  256. data/lib/hubspot/codegen/crm/quotes/configuration.rb +260 -0
  257. data/lib/hubspot/codegen/crm/quotes/models/batch_input_simple_public_object_batch_input.rb +221 -0
  258. data/lib/hubspot/codegen/crm/quotes/models/batch_input_simple_public_object_id.rb +221 -0
  259. data/lib/hubspot/codegen/crm/quotes/models/batch_input_simple_public_object_input.rb +221 -0
  260. data/lib/hubspot/codegen/crm/quotes/models/batch_read_input_simple_public_object_id.rb +237 -0
  261. data/lib/hubspot/codegen/crm/quotes/models/batch_response_simple_public_object.rb +331 -0
  262. data/lib/hubspot/codegen/crm/quotes/models/collection_response_simple_public_object.rb +230 -0
  263. data/lib/hubspot/codegen/crm/quotes/models/collection_response_simple_public_object_id.rb +230 -0
  264. data/lib/hubspot/codegen/crm/quotes/models/collection_response_with_total_simple_public_object.rb +245 -0
  265. data/lib/hubspot/codegen/crm/quotes/models/error.rb +286 -0
  266. data/lib/hubspot/codegen/crm/quotes/models/error_detail.rb +265 -0
  267. data/lib/hubspot/codegen/crm/quotes/models/filter.rb +276 -0
  268. data/lib/hubspot/codegen/crm/quotes/models/filter_group.rb +221 -0
  269. data/lib/hubspot/codegen/crm/quotes/models/next_page.rb +228 -0
  270. data/lib/hubspot/codegen/crm/quotes/models/paging.rb +214 -0
  271. data/lib/hubspot/codegen/crm/quotes/models/public_object_search_request.rb +290 -0
  272. data/lib/hubspot/codegen/crm/quotes/models/simple_public_object.rb +302 -0
  273. data/lib/hubspot/codegen/crm/quotes/models/simple_public_object_batch_input.rb +235 -0
  274. data/lib/hubspot/codegen/crm/quotes/models/simple_public_object_id.rb +219 -0
  275. data/lib/hubspot/codegen/crm/quotes/models/simple_public_object_input.rb +221 -0
  276. data/lib/hubspot/codegen/crm/tickets/api/associations_api.rb +240 -0
  277. data/lib/hubspot/codegen/crm/tickets/api/basic_api.rb +360 -0
  278. data/lib/hubspot/codegen/crm/tickets/api/batch_api.rb +273 -0
  279. data/lib/hubspot/codegen/crm/tickets/api/search_api.rb +90 -0
  280. data/lib/hubspot/codegen/crm/tickets/api_client.rb +423 -0
  281. data/lib/hubspot/codegen/crm/tickets/api_error.rb +63 -0
  282. data/lib/hubspot/codegen/crm/tickets/configuration.rb +260 -0
  283. data/lib/hubspot/codegen/crm/tickets/models/batch_input_simple_public_object_batch_input.rb +221 -0
  284. data/lib/hubspot/codegen/crm/tickets/models/batch_input_simple_public_object_id.rb +221 -0
  285. data/lib/hubspot/codegen/crm/tickets/models/batch_input_simple_public_object_input.rb +221 -0
  286. data/lib/hubspot/codegen/crm/tickets/models/batch_read_input_simple_public_object_id.rb +237 -0
  287. data/lib/hubspot/codegen/crm/tickets/models/batch_response_simple_public_object.rb +331 -0
  288. data/lib/hubspot/codegen/crm/tickets/models/collection_response_simple_public_object.rb +230 -0
  289. data/lib/hubspot/codegen/crm/tickets/models/collection_response_simple_public_object_id.rb +230 -0
  290. data/lib/hubspot/codegen/crm/tickets/models/collection_response_with_total_simple_public_object.rb +245 -0
  291. data/lib/hubspot/codegen/crm/tickets/models/error.rb +286 -0
  292. data/lib/hubspot/codegen/crm/tickets/models/error_detail.rb +265 -0
  293. data/lib/hubspot/codegen/crm/tickets/models/filter.rb +276 -0
  294. data/lib/hubspot/codegen/crm/tickets/models/filter_group.rb +221 -0
  295. data/lib/hubspot/codegen/crm/tickets/models/next_page.rb +228 -0
  296. data/lib/hubspot/codegen/crm/tickets/models/paging.rb +214 -0
  297. data/lib/hubspot/codegen/crm/tickets/models/public_object_search_request.rb +290 -0
  298. data/lib/hubspot/codegen/crm/tickets/models/simple_public_object.rb +302 -0
  299. data/lib/hubspot/codegen/crm/tickets/models/simple_public_object_batch_input.rb +235 -0
  300. data/lib/hubspot/codegen/crm/tickets/models/simple_public_object_id.rb +219 -0
  301. data/lib/hubspot/codegen/crm/tickets/models/simple_public_object_input.rb +221 -0
  302. data/lib/hubspot/codegen/oauth/api/access_tokens_api.rb +88 -0
  303. data/lib/hubspot/codegen/oauth/api/refresh_tokens_api.rb +340 -0
  304. data/lib/hubspot/codegen/oauth/api/tokens_api.rb +102 -0
  305. data/lib/hubspot/codegen/oauth/api_client.rb +423 -0
  306. data/lib/hubspot/codegen/oauth/api_error.rb +61 -0
  307. data/lib/hubspot/codegen/oauth/configuration.rb +258 -0
  308. data/lib/hubspot/codegen/oauth/models/access_token_info_response.rb +321 -0
  309. data/lib/hubspot/codegen/oauth/models/error.rb +305 -0
  310. data/lib/hubspot/codegen/oauth/models/error_detail.rb +240 -0
  311. data/lib/hubspot/codegen/oauth/models/json_node.rb +426 -0
  312. data/lib/hubspot/codegen/oauth/models/refresh_token.rb +259 -0
  313. data/lib/hubspot/codegen/oauth/models/refresh_token_info_response.rb +307 -0
  314. data/lib/hubspot/configuration.rb +207 -0
  315. data/lib/hubspot/exceptions.rb +3 -0
  316. data/lib/hubspot/oauth.rb +17 -0
  317. data/lib/hubspot/version.rb +3 -0
  318. data/sample-apps/companies-app/.env.template +2 -0
  319. data/sample-apps/companies-app/.env.test.template +3 -0
  320. data/sample-apps/companies-app/.gitignore +35 -0
  321. data/sample-apps/companies-app/.rspec +1 -0
  322. data/sample-apps/companies-app/.ruby-version +1 -0
  323. data/sample-apps/companies-app/Dockerfile +22 -0
  324. data/sample-apps/companies-app/Gemfile +33 -0
  325. data/sample-apps/companies-app/Gemfile.lock +270 -0
  326. data/sample-apps/companies-app/README.md +31 -0
  327. data/sample-apps/companies-app/Rakefile +6 -0
  328. data/sample-apps/companies-app/app/assets/config/manifest.js +3 -0
  329. data/sample-apps/companies-app/app/assets/images/.keep +0 -0
  330. data/sample-apps/companies-app/app/assets/javascripts/application.js +15 -0
  331. data/sample-apps/companies-app/app/assets/javascripts/cable.js +13 -0
  332. data/sample-apps/companies-app/app/assets/javascripts/channels/.keep +0 -0
  333. data/sample-apps/companies-app/app/assets/stylesheets/application.css +117 -0
  334. data/sample-apps/companies-app/app/controllers/application_controller.rb +12 -0
  335. data/sample-apps/companies-app/app/controllers/companies_controller.rb +67 -0
  336. data/sample-apps/companies-app/app/controllers/concerns/.keep +0 -0
  337. data/sample-apps/companies-app/app/controllers/concerns/exception_handler.rb +12 -0
  338. data/sample-apps/companies-app/app/controllers/contacts_controller.rb +28 -0
  339. data/sample-apps/companies-app/app/controllers/oauth/authorization_controller.rb +19 -0
  340. data/sample-apps/companies-app/app/helpers/application_helper.rb +2 -0
  341. data/sample-apps/companies-app/app/lib/services/authorization/authorize_hubspot.rb +15 -0
  342. data/sample-apps/companies-app/app/lib/services/authorization/get_authorization_uri.rb +33 -0
  343. data/sample-apps/companies-app/app/lib/services/authorization/tokens/base.rb +19 -0
  344. data/sample-apps/companies-app/app/lib/services/authorization/tokens/generate.rb +26 -0
  345. data/sample-apps/companies-app/app/lib/services/authorization/tokens/refresh.rb +33 -0
  346. data/sample-apps/companies-app/app/lib/services/hubspot/associations/create.rb +38 -0
  347. data/sample-apps/companies-app/app/lib/services/hubspot/associations/delete.rb +38 -0
  348. data/sample-apps/companies-app/app/lib/services/hubspot/associations/get_by_id.rb +39 -0
  349. data/sample-apps/companies-app/app/lib/services/hubspot/companies/create.rb +24 -0
  350. data/sample-apps/companies-app/app/lib/services/hubspot/companies/destroy.rb +16 -0
  351. data/sample-apps/companies-app/app/lib/services/hubspot/companies/export.rb +48 -0
  352. data/sample-apps/companies-app/app/lib/services/hubspot/companies/get_all.rb +16 -0
  353. data/sample-apps/companies-app/app/lib/services/hubspot/companies/get_by_id.rb +16 -0
  354. data/sample-apps/companies-app/app/lib/services/hubspot/companies/search.rb +28 -0
  355. data/sample-apps/companies-app/app/lib/services/hubspot/companies/update.rb +26 -0
  356. data/sample-apps/companies-app/app/lib/services/hubspot/contacts/get_all.rb +26 -0
  357. data/sample-apps/companies-app/app/lib/services/hubspot/contacts/search.rb +28 -0
  358. data/sample-apps/companies-app/app/models/application_record.rb +3 -0
  359. data/sample-apps/companies-app/app/models/concerns/.keep +0 -0
  360. data/sample-apps/companies-app/app/views/companies/index.html.erb +74 -0
  361. data/sample-apps/companies-app/app/views/companies/new.html.erb +24 -0
  362. data/sample-apps/companies-app/app/views/companies/show.html.erb +50 -0
  363. data/sample-apps/companies-app/app/views/contacts/index.html.erb +49 -0
  364. data/sample-apps/companies-app/app/views/layouts/application.html.erb +23 -0
  365. data/sample-apps/companies-app/app/views/oauth/authorization/login.html.erb +15 -0
  366. data/sample-apps/companies-app/app/views/shared/_header.html.erb +15 -0
  367. data/sample-apps/companies-app/bin/bundle +3 -0
  368. data/sample-apps/companies-app/bin/rails +9 -0
  369. data/sample-apps/companies-app/bin/rake +9 -0
  370. data/sample-apps/companies-app/bin/setup +36 -0
  371. data/sample-apps/companies-app/bin/spring +17 -0
  372. data/sample-apps/companies-app/bin/update +31 -0
  373. data/sample-apps/companies-app/bin/yarn +11 -0
  374. data/sample-apps/companies-app/config.ru +5 -0
  375. data/sample-apps/companies-app/config/application.rb +19 -0
  376. data/sample-apps/companies-app/config/boot.rb +3 -0
  377. data/sample-apps/companies-app/config/cable.yml +10 -0
  378. data/sample-apps/companies-app/config/database.yml +25 -0
  379. data/sample-apps/companies-app/config/environment.rb +5 -0
  380. data/sample-apps/companies-app/config/environments/development.rb +61 -0
  381. data/sample-apps/companies-app/config/environments/production.rb +94 -0
  382. data/sample-apps/companies-app/config/environments/test.rb +46 -0
  383. data/sample-apps/companies-app/config/initializers/assets.rb +14 -0
  384. data/sample-apps/companies-app/config/initializers/filter_parameter_logging.rb +4 -0
  385. data/sample-apps/companies-app/config/initializers/hubspot-api-client.rb +3 -0
  386. data/sample-apps/companies-app/config/initializers/mime_types.rb +1 -0
  387. data/sample-apps/companies-app/config/initializers/wrap_parameters.rb +14 -0
  388. data/sample-apps/companies-app/config/locales/en.yml +33 -0
  389. data/sample-apps/companies-app/config/puma.rb +34 -0
  390. data/sample-apps/companies-app/config/routes.rb +17 -0
  391. data/sample-apps/companies-app/config/spring.rb +6 -0
  392. data/sample-apps/companies-app/db/seeds.rb +7 -0
  393. data/sample-apps/companies-app/docker-compose.yml +11 -0
  394. data/sample-apps/companies-app/docker-entrypoint.sh +8 -0
  395. data/sample-apps/companies-app/lib/assets/.keep +0 -0
  396. data/sample-apps/companies-app/lib/tasks/.keep +0 -0
  397. data/sample-apps/companies-app/log/.keep +0 -0
  398. data/sample-apps/companies-app/package.json +5 -0
  399. data/sample-apps/companies-app/public/404.html +67 -0
  400. data/sample-apps/companies-app/public/422.html +67 -0
  401. data/sample-apps/companies-app/public/500.html +66 -0
  402. data/sample-apps/companies-app/public/apple-touch-icon-precomposed.png +0 -0
  403. data/sample-apps/companies-app/public/apple-touch-icon.png +0 -0
  404. data/sample-apps/companies-app/public/favicon.ico +0 -0
  405. data/sample-apps/companies-app/public/robots.txt +1 -0
  406. data/sample-apps/companies-app/tmp/.keep +0 -0
  407. data/sample-apps/contacts-app/.env.template +2 -0
  408. data/sample-apps/contacts-app/.env.test.template +3 -0
  409. data/sample-apps/contacts-app/.gitignore +35 -0
  410. data/sample-apps/contacts-app/.rspec +1 -0
  411. data/sample-apps/contacts-app/.ruby-version +1 -0
  412. data/sample-apps/contacts-app/Dockerfile +22 -0
  413. data/sample-apps/contacts-app/Gemfile +33 -0
  414. data/sample-apps/contacts-app/Gemfile.lock +270 -0
  415. data/sample-apps/contacts-app/README.md +41 -0
  416. data/sample-apps/contacts-app/Rakefile +6 -0
  417. data/sample-apps/contacts-app/app/assets/config/manifest.js +3 -0
  418. data/sample-apps/contacts-app/app/assets/images/.keep +0 -0
  419. data/sample-apps/contacts-app/app/assets/javascripts/application.js +15 -0
  420. data/sample-apps/contacts-app/app/assets/javascripts/cable.js +13 -0
  421. data/sample-apps/contacts-app/app/assets/javascripts/channels/.keep +0 -0
  422. data/sample-apps/contacts-app/app/assets/stylesheets/application.css +117 -0
  423. data/sample-apps/contacts-app/app/controllers/application_controller.rb +12 -0
  424. data/sample-apps/contacts-app/app/controllers/concerns/.keep +0 -0
  425. data/sample-apps/contacts-app/app/controllers/concerns/exception_handler.rb +12 -0
  426. data/sample-apps/contacts-app/app/controllers/contacts_controller.rb +68 -0
  427. data/sample-apps/contacts-app/app/controllers/oauth/authorization_controller.rb +19 -0
  428. data/sample-apps/contacts-app/app/controllers/properties_controller.rb +52 -0
  429. data/sample-apps/contacts-app/app/helpers/application_helper.rb +2 -0
  430. data/sample-apps/contacts-app/app/lib/services/authorization/authorize_hubspot.rb +15 -0
  431. data/sample-apps/contacts-app/app/lib/services/authorization/get_authorization_uri.rb +33 -0
  432. data/sample-apps/contacts-app/app/lib/services/authorization/tokens/base.rb +19 -0
  433. data/sample-apps/contacts-app/app/lib/services/authorization/tokens/generate.rb +26 -0
  434. data/sample-apps/contacts-app/app/lib/services/authorization/tokens/refresh.rb +33 -0
  435. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/create.rb +22 -0
  436. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/destroy.rb +16 -0
  437. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/export.rb +48 -0
  438. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/get_all.rb +26 -0
  439. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/get_by_id.rb +28 -0
  440. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/search.rb +37 -0
  441. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/update.rb +24 -0
  442. data/sample-apps/contacts-app/app/lib/services/hubspot/owners/get_all.rb +12 -0
  443. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/create.rb +23 -0
  444. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/destroy.rb +16 -0
  445. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/get_all.rb +12 -0
  446. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/get_by_name.rb +20 -0
  447. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/update.rb +27 -0
  448. data/sample-apps/contacts-app/app/models/application_record.rb +3 -0
  449. data/sample-apps/contacts-app/app/models/concerns/.keep +0 -0
  450. data/sample-apps/contacts-app/app/views/contacts/index.html.erb +78 -0
  451. data/sample-apps/contacts-app/app/views/contacts/new.html.erb +18 -0
  452. data/sample-apps/contacts-app/app/views/contacts/show.html.erb +38 -0
  453. data/sample-apps/contacts-app/app/views/layouts/application.html.erb +23 -0
  454. data/sample-apps/contacts-app/app/views/oauth/authorization/login.html.erb +15 -0
  455. data/sample-apps/contacts-app/app/views/properties/index.html.erb +68 -0
  456. data/sample-apps/contacts-app/app/views/properties/new.html.erb +29 -0
  457. data/sample-apps/contacts-app/app/views/properties/show.html.erb +29 -0
  458. data/sample-apps/contacts-app/app/views/shared/_header.html.erb +18 -0
  459. data/sample-apps/contacts-app/bin/bundle +3 -0
  460. data/sample-apps/contacts-app/bin/rails +9 -0
  461. data/sample-apps/contacts-app/bin/rake +9 -0
  462. data/sample-apps/contacts-app/bin/setup +36 -0
  463. data/sample-apps/contacts-app/bin/spring +17 -0
  464. data/sample-apps/contacts-app/bin/update +31 -0
  465. data/sample-apps/contacts-app/bin/yarn +11 -0
  466. data/sample-apps/contacts-app/config.ru +5 -0
  467. data/sample-apps/contacts-app/config/application.rb +19 -0
  468. data/sample-apps/contacts-app/config/boot.rb +3 -0
  469. data/sample-apps/contacts-app/config/cable.yml +10 -0
  470. data/sample-apps/contacts-app/config/database.yml +25 -0
  471. data/sample-apps/contacts-app/config/environment.rb +5 -0
  472. data/sample-apps/contacts-app/config/environments/development.rb +61 -0
  473. data/sample-apps/contacts-app/config/environments/production.rb +94 -0
  474. data/sample-apps/contacts-app/config/environments/test.rb +46 -0
  475. data/sample-apps/contacts-app/config/initializers/assets.rb +14 -0
  476. data/sample-apps/contacts-app/config/initializers/filter_parameter_logging.rb +4 -0
  477. data/sample-apps/contacts-app/config/initializers/hubspot-api-client.rb +3 -0
  478. data/sample-apps/contacts-app/config/initializers/mime_types.rb +1 -0
  479. data/sample-apps/contacts-app/config/initializers/wrap_parameters.rb +14 -0
  480. data/sample-apps/contacts-app/config/locales/en.yml +33 -0
  481. data/sample-apps/contacts-app/config/puma.rb +34 -0
  482. data/sample-apps/contacts-app/config/routes.rb +14 -0
  483. data/sample-apps/contacts-app/config/spring.rb +6 -0
  484. data/sample-apps/contacts-app/db/seeds.rb +7 -0
  485. data/sample-apps/contacts-app/docker-compose.yml +11 -0
  486. data/sample-apps/contacts-app/docker-entrypoint.sh +8 -0
  487. data/sample-apps/contacts-app/lib/assets/.keep +0 -0
  488. data/sample-apps/contacts-app/lib/tasks/.keep +0 -0
  489. data/sample-apps/contacts-app/log/.keep +0 -0
  490. data/sample-apps/contacts-app/package.json +5 -0
  491. data/sample-apps/contacts-app/public/404.html +67 -0
  492. data/sample-apps/contacts-app/public/422.html +67 -0
  493. data/sample-apps/contacts-app/public/500.html +66 -0
  494. data/sample-apps/contacts-app/public/apple-touch-icon-precomposed.png +0 -0
  495. data/sample-apps/contacts-app/public/apple-touch-icon.png +0 -0
  496. data/sample-apps/contacts-app/public/favicon.ico +0 -0
  497. data/sample-apps/contacts-app/public/robots.txt +1 -0
  498. data/sample-apps/contacts-app/spec/features/visitor_creates_new_contact_spec.rb +27 -0
  499. data/sample-apps/contacts-app/spec/features/visitor_deletes_contact_spec.rb +18 -0
  500. data/sample-apps/contacts-app/spec/features/visitor_downloads_contacts_spec.rb +21 -0
  501. data/sample-apps/contacts-app/spec/features/visitor_edits_contact_spec.rb +35 -0
  502. data/sample-apps/contacts-app/spec/features/visitor_lists_contacts_spec.rb +10 -0
  503. data/sample-apps/contacts-app/spec/features/visitor_logs_in_spec.rb +22 -0
  504. data/sample-apps/contacts-app/spec/features/visitor_searches_contacts_spec.rb +33 -0
  505. data/sample-apps/contacts-app/spec/rails_helper.rb +42 -0
  506. data/sample-apps/contacts-app/spec/spec_helper.rb +11 -0
  507. data/sample-apps/contacts-app/spec/support/application_helper.rb +29 -0
  508. data/sample-apps/contacts-app/spec/support/download_helper.rb +37 -0
  509. data/sample-apps/contacts-app/tmp/.keep +0 -0
  510. data/sample-apps/oauth-app/.env.template +2 -0
  511. data/sample-apps/oauth-app/.env.test.template +3 -0
  512. data/sample-apps/oauth-app/.gitignore +35 -0
  513. data/sample-apps/oauth-app/.rspec +1 -0
  514. data/sample-apps/oauth-app/.ruby-version +1 -0
  515. data/sample-apps/oauth-app/Dockerfile +22 -0
  516. data/sample-apps/oauth-app/Gemfile +33 -0
  517. data/sample-apps/oauth-app/Gemfile.lock +270 -0
  518. data/sample-apps/oauth-app/README.md +33 -0
  519. data/sample-apps/oauth-app/Rakefile +6 -0
  520. data/sample-apps/oauth-app/app/assets/config/manifest.js +3 -0
  521. data/sample-apps/oauth-app/app/assets/images/.keep +0 -0
  522. data/sample-apps/oauth-app/app/assets/javascripts/application.js +15 -0
  523. data/sample-apps/oauth-app/app/assets/javascripts/cable.js +13 -0
  524. data/sample-apps/oauth-app/app/assets/javascripts/channels/.keep +0 -0
  525. data/sample-apps/oauth-app/app/assets/stylesheets/application.css +117 -0
  526. data/sample-apps/oauth-app/app/controllers/application_controller.rb +12 -0
  527. data/sample-apps/oauth-app/app/controllers/concerns/.keep +0 -0
  528. data/sample-apps/oauth-app/app/controllers/concerns/exception_handler.rb +12 -0
  529. data/sample-apps/oauth-app/app/controllers/contacts_controller.rb +67 -0
  530. data/sample-apps/oauth-app/app/controllers/oauth/authorization_controller.rb +19 -0
  531. data/sample-apps/oauth-app/app/helpers/application_helper.rb +2 -0
  532. data/sample-apps/oauth-app/app/lib/services/authorization/authorize_hubspot.rb +15 -0
  533. data/sample-apps/oauth-app/app/lib/services/authorization/get_authorization_uri.rb +33 -0
  534. data/sample-apps/oauth-app/app/lib/services/authorization/tokens/base.rb +19 -0
  535. data/sample-apps/oauth-app/app/lib/services/authorization/tokens/generate.rb +26 -0
  536. data/sample-apps/oauth-app/app/lib/services/authorization/tokens/refresh.rb +33 -0
  537. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/create.rb +22 -0
  538. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/destroy.rb +16 -0
  539. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/export.rb +48 -0
  540. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/get_all.rb +26 -0
  541. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/get_by_id.rb +20 -0
  542. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/search.rb +37 -0
  543. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/update.rb +24 -0
  544. data/sample-apps/oauth-app/app/lib/services/hubspot/owners/get_all.rb +12 -0
  545. data/sample-apps/oauth-app/app/models/application_record.rb +3 -0
  546. data/sample-apps/oauth-app/app/models/concerns/.keep +0 -0
  547. data/sample-apps/oauth-app/app/views/contacts/index.html.erb +78 -0
  548. data/sample-apps/oauth-app/app/views/contacts/new.html.erb +18 -0
  549. data/sample-apps/oauth-app/app/views/contacts/show.html.erb +38 -0
  550. data/sample-apps/oauth-app/app/views/layouts/application.html.erb +23 -0
  551. data/sample-apps/oauth-app/app/views/oauth/authorization/login.html.erb +15 -0
  552. data/sample-apps/oauth-app/app/views/shared/_header.html.erb +15 -0
  553. data/sample-apps/oauth-app/bin/bundle +3 -0
  554. data/sample-apps/oauth-app/bin/rails +9 -0
  555. data/sample-apps/oauth-app/bin/rake +9 -0
  556. data/sample-apps/oauth-app/bin/setup +36 -0
  557. data/sample-apps/oauth-app/bin/spring +17 -0
  558. data/sample-apps/oauth-app/bin/update +31 -0
  559. data/sample-apps/oauth-app/bin/yarn +11 -0
  560. data/sample-apps/oauth-app/config.ru +5 -0
  561. data/sample-apps/oauth-app/config/application.rb +19 -0
  562. data/sample-apps/oauth-app/config/boot.rb +3 -0
  563. data/sample-apps/oauth-app/config/cable.yml +10 -0
  564. data/sample-apps/oauth-app/config/database.yml +25 -0
  565. data/sample-apps/oauth-app/config/environment.rb +5 -0
  566. data/sample-apps/oauth-app/config/environments/development.rb +61 -0
  567. data/sample-apps/oauth-app/config/environments/production.rb +94 -0
  568. data/sample-apps/oauth-app/config/environments/test.rb +46 -0
  569. data/sample-apps/oauth-app/config/initializers/assets.rb +14 -0
  570. data/sample-apps/oauth-app/config/initializers/filter_parameter_logging.rb +4 -0
  571. data/sample-apps/oauth-app/config/initializers/hubspot-api-client.rb +3 -0
  572. data/sample-apps/oauth-app/config/initializers/mime_types.rb +1 -0
  573. data/sample-apps/oauth-app/config/initializers/wrap_parameters.rb +14 -0
  574. data/sample-apps/oauth-app/config/locales/en.yml +33 -0
  575. data/sample-apps/oauth-app/config/puma.rb +34 -0
  576. data/sample-apps/oauth-app/config/routes.rb +14 -0
  577. data/sample-apps/oauth-app/config/spring.rb +6 -0
  578. data/sample-apps/oauth-app/db/seeds.rb +7 -0
  579. data/sample-apps/oauth-app/docker-compose.yml +11 -0
  580. data/sample-apps/oauth-app/docker-entrypoint.sh +8 -0
  581. data/sample-apps/oauth-app/lib/assets/.keep +0 -0
  582. data/sample-apps/oauth-app/lib/tasks/.keep +0 -0
  583. data/sample-apps/oauth-app/log/.keep +0 -0
  584. data/sample-apps/oauth-app/package.json +5 -0
  585. data/sample-apps/oauth-app/public/404.html +67 -0
  586. data/sample-apps/oauth-app/public/422.html +67 -0
  587. data/sample-apps/oauth-app/public/500.html +66 -0
  588. data/sample-apps/oauth-app/public/apple-touch-icon-precomposed.png +0 -0
  589. data/sample-apps/oauth-app/public/apple-touch-icon.png +0 -0
  590. data/sample-apps/oauth-app/public/favicon.ico +0 -0
  591. data/sample-apps/oauth-app/public/robots.txt +1 -0
  592. data/sample-apps/oauth-app/spec/features/visitor_creates_new_contact_spec.rb +27 -0
  593. data/sample-apps/oauth-app/spec/features/visitor_deletes_contact_spec.rb +18 -0
  594. data/sample-apps/oauth-app/spec/features/visitor_downloads_contacts_spec.rb +21 -0
  595. data/sample-apps/oauth-app/spec/features/visitor_edits_contact_spec.rb +35 -0
  596. data/sample-apps/oauth-app/spec/features/visitor_lists_contacts_spec.rb +10 -0
  597. data/sample-apps/oauth-app/spec/features/visitor_logs_in_spec.rb +22 -0
  598. data/sample-apps/oauth-app/spec/features/visitor_searches_contacts_spec.rb +33 -0
  599. data/sample-apps/oauth-app/spec/rails_helper.rb +42 -0
  600. data/sample-apps/oauth-app/spec/spec_helper.rb +11 -0
  601. data/sample-apps/oauth-app/spec/support/application_helper.rb +29 -0
  602. data/sample-apps/oauth-app/spec/support/download_helper.rb +37 -0
  603. data/sample-apps/oauth-app/tmp/.keep +0 -0
  604. data/sample-apps/retry-middleware-sample-app/.env.template +2 -0
  605. data/sample-apps/retry-middleware-sample-app/.gitignore +35 -0
  606. data/sample-apps/retry-middleware-sample-app/.ruby-version +1 -0
  607. data/sample-apps/retry-middleware-sample-app/Dockerfile +22 -0
  608. data/sample-apps/retry-middleware-sample-app/Gemfile +37 -0
  609. data/sample-apps/retry-middleware-sample-app/Gemfile.lock +282 -0
  610. data/sample-apps/retry-middleware-sample-app/README.md +33 -0
  611. data/sample-apps/retry-middleware-sample-app/Rakefile +6 -0
  612. data/sample-apps/retry-middleware-sample-app/app/assets/config/manifest.js +3 -0
  613. data/sample-apps/retry-middleware-sample-app/app/assets/images/.keep +0 -0
  614. data/sample-apps/retry-middleware-sample-app/app/assets/javascripts/application.js +25 -0
  615. data/sample-apps/retry-middleware-sample-app/app/assets/javascripts/cable.js +13 -0
  616. data/sample-apps/retry-middleware-sample-app/app/assets/javascripts/channels/.keep +0 -0
  617. data/sample-apps/retry-middleware-sample-app/app/assets/stylesheets/application.css +90 -0
  618. data/sample-apps/retry-middleware-sample-app/app/controllers/application_controller.rb +12 -0
  619. data/sample-apps/retry-middleware-sample-app/app/controllers/concerns/.keep +0 -0
  620. data/sample-apps/retry-middleware-sample-app/app/controllers/concerns/exception_handler.rb +12 -0
  621. data/sample-apps/retry-middleware-sample-app/app/controllers/home_controller.rb +15 -0
  622. data/sample-apps/retry-middleware-sample-app/app/controllers/oauth/authorization_controller.rb +19 -0
  623. data/sample-apps/retry-middleware-sample-app/app/helpers/application_helper.rb +2 -0
  624. data/sample-apps/retry-middleware-sample-app/app/lib/services/authorization/authorize_hubspot.rb +15 -0
  625. data/sample-apps/retry-middleware-sample-app/app/lib/services/authorization/get_authorization_uri.rb +33 -0
  626. data/sample-apps/retry-middleware-sample-app/app/lib/services/authorization/tokens/base.rb +19 -0
  627. data/sample-apps/retry-middleware-sample-app/app/lib/services/authorization/tokens/generate.rb +26 -0
  628. data/sample-apps/retry-middleware-sample-app/app/lib/services/authorization/tokens/refresh.rb +33 -0
  629. data/sample-apps/retry-middleware-sample-app/app/models/application_record.rb +3 -0
  630. data/sample-apps/retry-middleware-sample-app/app/models/concerns/.keep +0 -0
  631. data/sample-apps/retry-middleware-sample-app/app/views/home/index.html.erb +13 -0
  632. data/sample-apps/retry-middleware-sample-app/app/views/layouts/application.html.erb +23 -0
  633. data/sample-apps/retry-middleware-sample-app/app/views/oauth/authorization/login.html.erb +15 -0
  634. data/sample-apps/retry-middleware-sample-app/app/views/shared/_header.html.erb +12 -0
  635. data/sample-apps/retry-middleware-sample-app/bin/bundle +3 -0
  636. data/sample-apps/retry-middleware-sample-app/bin/rails +9 -0
  637. data/sample-apps/retry-middleware-sample-app/bin/rake +9 -0
  638. data/sample-apps/retry-middleware-sample-app/bin/setup +36 -0
  639. data/sample-apps/retry-middleware-sample-app/bin/spring +17 -0
  640. data/sample-apps/retry-middleware-sample-app/bin/update +31 -0
  641. data/sample-apps/retry-middleware-sample-app/bin/yarn +11 -0
  642. data/sample-apps/retry-middleware-sample-app/config.ru +5 -0
  643. data/sample-apps/retry-middleware-sample-app/config/application.rb +19 -0
  644. data/sample-apps/retry-middleware-sample-app/config/boot.rb +3 -0
  645. data/sample-apps/retry-middleware-sample-app/config/cable.yml +10 -0
  646. data/sample-apps/retry-middleware-sample-app/config/database.yml +25 -0
  647. data/sample-apps/retry-middleware-sample-app/config/environment.rb +5 -0
  648. data/sample-apps/retry-middleware-sample-app/config/environments/development.rb +61 -0
  649. data/sample-apps/retry-middleware-sample-app/config/environments/production.rb +94 -0
  650. data/sample-apps/retry-middleware-sample-app/config/environments/test.rb +46 -0
  651. data/sample-apps/retry-middleware-sample-app/config/initializers/assets.rb +14 -0
  652. data/sample-apps/retry-middleware-sample-app/config/initializers/filter_parameter_logging.rb +4 -0
  653. data/sample-apps/retry-middleware-sample-app/config/initializers/hubspot-api-client.rb +3 -0
  654. data/sample-apps/retry-middleware-sample-app/config/initializers/mime_types.rb +1 -0
  655. data/sample-apps/retry-middleware-sample-app/config/initializers/wrap_parameters.rb +14 -0
  656. data/sample-apps/retry-middleware-sample-app/config/locales/en.yml +33 -0
  657. data/sample-apps/retry-middleware-sample-app/config/puma.rb +34 -0
  658. data/sample-apps/retry-middleware-sample-app/config/routes.rb +6 -0
  659. data/sample-apps/retry-middleware-sample-app/config/spring.rb +6 -0
  660. data/sample-apps/retry-middleware-sample-app/db/seeds.rb +7 -0
  661. data/sample-apps/retry-middleware-sample-app/docker-compose.yml +11 -0
  662. data/sample-apps/retry-middleware-sample-app/docker-entrypoint.sh +8 -0
  663. data/sample-apps/retry-middleware-sample-app/lib/assets/.keep +0 -0
  664. data/sample-apps/retry-middleware-sample-app/lib/tasks/.keep +0 -0
  665. data/sample-apps/retry-middleware-sample-app/lib/tasks/retry_middleware.rake +37 -0
  666. data/sample-apps/retry-middleware-sample-app/log/.keep +0 -0
  667. data/sample-apps/retry-middleware-sample-app/package.json +5 -0
  668. data/sample-apps/retry-middleware-sample-app/public/404.html +67 -0
  669. data/sample-apps/retry-middleware-sample-app/public/422.html +67 -0
  670. data/sample-apps/retry-middleware-sample-app/public/500.html +66 -0
  671. data/sample-apps/retry-middleware-sample-app/public/apple-touch-icon-precomposed.png +0 -0
  672. data/sample-apps/retry-middleware-sample-app/public/apple-touch-icon.png +0 -0
  673. data/sample-apps/retry-middleware-sample-app/public/favicon.ico +0 -0
  674. data/sample-apps/retry-middleware-sample-app/public/robots.txt +1 -0
  675. data/sample-apps/retry-middleware-sample-app/tmp/.keep +0 -0
  676. data/sample-apps/webhooks-contacts-app/.env.template +2 -0
  677. data/sample-apps/webhooks-contacts-app/.gitignore +35 -0
  678. data/sample-apps/webhooks-contacts-app/.ruby-version +1 -0
  679. data/sample-apps/webhooks-contacts-app/Dockerfile +21 -0
  680. data/sample-apps/webhooks-contacts-app/Gemfile +37 -0
  681. data/sample-apps/webhooks-contacts-app/Gemfile.lock +280 -0
  682. data/sample-apps/webhooks-contacts-app/README.md +51 -0
  683. data/sample-apps/webhooks-contacts-app/Rakefile +6 -0
  684. data/sample-apps/webhooks-contacts-app/app/assets/config/manifest.js +3 -0
  685. data/sample-apps/webhooks-contacts-app/app/assets/images/.keep +0 -0
  686. data/sample-apps/webhooks-contacts-app/app/assets/javascripts/application.js +46 -0
  687. data/sample-apps/webhooks-contacts-app/app/assets/javascripts/cable.js +13 -0
  688. data/sample-apps/webhooks-contacts-app/app/assets/javascripts/channels/.keep +0 -0
  689. data/sample-apps/webhooks-contacts-app/app/assets/stylesheets/application.css +140 -0
  690. data/sample-apps/webhooks-contacts-app/app/controllers/application_controller.rb +18 -0
  691. data/sample-apps/webhooks-contacts-app/app/controllers/concerns/.keep +0 -0
  692. data/sample-apps/webhooks-contacts-app/app/controllers/concerns/exception_handler.rb +12 -0
  693. data/sample-apps/webhooks-contacts-app/app/controllers/events_controller.rb +33 -0
  694. data/sample-apps/webhooks-contacts-app/app/controllers/oauth/authorization_controller.rb +19 -0
  695. data/sample-apps/webhooks-contacts-app/app/controllers/webhooks_controller.rb +9 -0
  696. data/sample-apps/webhooks-contacts-app/app/helpers/application_helper.rb +2 -0
  697. data/sample-apps/webhooks-contacts-app/app/lib/services/authorization/authorize_hubspot.rb +15 -0
  698. data/sample-apps/webhooks-contacts-app/app/lib/services/authorization/get_authorization_uri.rb +33 -0
  699. data/sample-apps/webhooks-contacts-app/app/lib/services/authorization/tokens/base.rb +19 -0
  700. data/sample-apps/webhooks-contacts-app/app/lib/services/authorization/tokens/generate.rb +26 -0
  701. data/sample-apps/webhooks-contacts-app/app/lib/services/authorization/tokens/refresh.rb +34 -0
  702. data/sample-apps/webhooks-contacts-app/app/lib/services/hubspot/contacts/get_batch.rb +39 -0
  703. data/sample-apps/webhooks-contacts-app/app/lib/services/hubspot/webhooks/handle.rb +34 -0
  704. data/sample-apps/webhooks-contacts-app/app/models/application_record.rb +3 -0
  705. data/sample-apps/webhooks-contacts-app/app/models/concerns/.keep +0 -0
  706. data/sample-apps/webhooks-contacts-app/app/models/event.rb +2 -0
  707. data/sample-apps/webhooks-contacts-app/app/models/token.rb +15 -0
  708. data/sample-apps/webhooks-contacts-app/app/views/events/index.html.erb +41 -0
  709. data/sample-apps/webhooks-contacts-app/app/views/layouts/application.html.erb +21 -0
  710. data/sample-apps/webhooks-contacts-app/app/views/oauth/authorization/login.html.erb +15 -0
  711. data/sample-apps/webhooks-contacts-app/app/views/shared/_header.html.erb +15 -0
  712. data/sample-apps/webhooks-contacts-app/bin/bundle +3 -0
  713. data/sample-apps/webhooks-contacts-app/bin/rails +9 -0
  714. data/sample-apps/webhooks-contacts-app/bin/rake +9 -0
  715. data/sample-apps/webhooks-contacts-app/bin/setup +36 -0
  716. data/sample-apps/webhooks-contacts-app/bin/spring +17 -0
  717. data/sample-apps/webhooks-contacts-app/bin/update +31 -0
  718. data/sample-apps/webhooks-contacts-app/bin/yarn +11 -0
  719. data/sample-apps/webhooks-contacts-app/config.ru +5 -0
  720. data/sample-apps/webhooks-contacts-app/config/application.rb +19 -0
  721. data/sample-apps/webhooks-contacts-app/config/boot.rb +3 -0
  722. data/sample-apps/webhooks-contacts-app/config/cable.yml +10 -0
  723. data/sample-apps/webhooks-contacts-app/config/database.yml +15 -0
  724. data/sample-apps/webhooks-contacts-app/config/environment.rb +5 -0
  725. data/sample-apps/webhooks-contacts-app/config/environments/development.rb +61 -0
  726. data/sample-apps/webhooks-contacts-app/config/environments/production.rb +94 -0
  727. data/sample-apps/webhooks-contacts-app/config/environments/test.rb +47 -0
  728. data/sample-apps/webhooks-contacts-app/config/initializers/assets.rb +14 -0
  729. data/sample-apps/webhooks-contacts-app/config/initializers/filter_parameter_logging.rb +4 -0
  730. data/sample-apps/webhooks-contacts-app/config/initializers/wrap_parameters.rb +14 -0
  731. data/sample-apps/webhooks-contacts-app/config/locales/en.yml +33 -0
  732. data/sample-apps/webhooks-contacts-app/config/puma.rb +34 -0
  733. data/sample-apps/webhooks-contacts-app/config/routes.rb +10 -0
  734. data/sample-apps/webhooks-contacts-app/config/spring.rb +6 -0
  735. data/sample-apps/webhooks-contacts-app/db/migrate/20191202170347_create_tokens.rb +10 -0
  736. data/sample-apps/webhooks-contacts-app/db/migrate/20200130113853_create_events.rb +14 -0
  737. data/sample-apps/webhooks-contacts-app/db/schema.rb +36 -0
  738. data/sample-apps/webhooks-contacts-app/docker-compose.yml +38 -0
  739. data/sample-apps/webhooks-contacts-app/docker-entrypoint.sh +8 -0
  740. data/sample-apps/webhooks-contacts-app/lib/assets/.keep +0 -0
  741. data/sample-apps/webhooks-contacts-app/lib/tasks/.keep +0 -0
  742. data/sample-apps/webhooks-contacts-app/log/.keep +0 -0
  743. data/sample-apps/webhooks-contacts-app/package.json +5 -0
  744. data/sample-apps/webhooks-contacts-app/public/404.html +67 -0
  745. data/sample-apps/webhooks-contacts-app/public/422.html +67 -0
  746. data/sample-apps/webhooks-contacts-app/public/500.html +66 -0
  747. data/sample-apps/webhooks-contacts-app/public/apple-touch-icon-precomposed.png +0 -0
  748. data/sample-apps/webhooks-contacts-app/public/apple-touch-icon.png +0 -0
  749. data/sample-apps/webhooks-contacts-app/public/favicon.ico +0 -0
  750. data/sample-apps/webhooks-contacts-app/public/robots.txt +1 -0
  751. data/sample-apps/webhooks-contacts-app/public/sample.png +0 -0
  752. data/sample-apps/webhooks-contacts-app/tmp/.keep +0 -0
  753. data/spec/oauth/api/access_tokens_api_spec.rb +46 -0
  754. data/spec/oauth/api/refresh_tokens_api_spec.rb +92 -0
  755. data/spec/oauth/api/tokens_api_spec.rb +51 -0
  756. data/spec/oauth/api_client_spec.rb +226 -0
  757. data/spec/oauth/configuration_spec.rb +42 -0
  758. data/spec/oauth/models/access_token_info_response_spec.rb +89 -0
  759. data/spec/oauth/models/error_detail_spec.rb +53 -0
  760. data/spec/oauth/models/error_spec.rb +71 -0
  761. data/spec/oauth/models/json_node_spec.rb +165 -0
  762. data/spec/oauth/models/refresh_token_info_response_spec.rb +83 -0
  763. data/spec/oauth/models/refresh_token_spec.rb +59 -0
  764. data/spec/objects/api/associations_api_spec.rb +76 -0
  765. data/spec/objects/api/basic_api_spec.rb +108 -0
  766. data/spec/objects/api/batch_api_spec.rb +88 -0
  767. data/spec/objects/api/search_api_spec.rb +48 -0
  768. data/spec/objects/api_client_spec.rb +226 -0
  769. data/spec/objects/configuration_spec.rb +42 -0
  770. data/spec/objects/models/batch_input_simple_public_object_batch_input_spec.rb +41 -0
  771. data/spec/objects/models/batch_input_simple_public_object_id_spec.rb +41 -0
  772. data/spec/objects/models/batch_input_simple_public_object_input_spec.rb +41 -0
  773. data/spec/objects/models/batch_read_input_simple_public_object_id_spec.rb +47 -0
  774. data/spec/objects/models/batch_response_simple_public_object_spec.rb +81 -0
  775. data/spec/objects/models/collection_response_simple_public_object_id_spec.rb +47 -0
  776. data/spec/objects/models/collection_response_simple_public_object_spec.rb +47 -0
  777. data/spec/objects/models/collection_response_with_total_simple_public_object_spec.rb +53 -0
  778. data/spec/objects/models/error_detail_spec.rb +65 -0
  779. data/spec/objects/models/error_spec.rb +71 -0
  780. data/spec/objects/models/filter_group_spec.rb +41 -0
  781. data/spec/objects/models/filter_spec.rb +57 -0
  782. data/spec/objects/models/next_page_spec.rb +47 -0
  783. data/spec/objects/models/paging_spec.rb +41 -0
  784. data/spec/objects/models/public_object_search_request_spec.rb +71 -0
  785. data/spec/objects/models/simple_public_object_batch_input_spec.rb +47 -0
  786. data/spec/objects/models/simple_public_object_id_spec.rb +41 -0
  787. data/spec/objects/models/simple_public_object_input_spec.rb +41 -0
  788. data/spec/objects/models/simple_public_object_spec.rb +77 -0
  789. data/spec/owners/api/default_api_spec.rb +60 -0
  790. data/spec/owners/api_client_spec.rb +226 -0
  791. data/spec/owners/configuration_spec.rb +42 -0
  792. data/spec/owners/models/collection_response_public_owner_spec.rb +47 -0
  793. data/spec/owners/models/error_detail_spec.rb +53 -0
  794. data/spec/owners/models/error_spec.rb +71 -0
  795. data/spec/owners/models/next_page_spec.rb +47 -0
  796. data/spec/owners/models/paging_spec.rb +41 -0
  797. data/spec/owners/models/public_owner_spec.rb +89 -0
  798. data/spec/owners/models/public_team_spec.rb +57 -0
  799. data/spec/pipelines/api/pipeline_stages_api_spec.rb +123 -0
  800. data/spec/pipelines/api/pipelines_api_spec.rb +117 -0
  801. data/spec/pipelines/api_client_spec.rb +226 -0
  802. data/spec/pipelines/configuration_spec.rb +42 -0
  803. data/spec/pipelines/models/collection_response_pipeline_spec.rb +47 -0
  804. data/spec/pipelines/models/collection_response_pipeline_stage_spec.rb +47 -0
  805. data/spec/pipelines/models/error_detail_spec.rb +53 -0
  806. data/spec/pipelines/models/error_spec.rb +71 -0
  807. data/spec/pipelines/models/next_page_spec.rb +47 -0
  808. data/spec/pipelines/models/paging_spec.rb +41 -0
  809. data/spec/pipelines/models/pipeline_input_spec.rb +53 -0
  810. data/spec/pipelines/models/pipeline_patch_input_spec.rb +53 -0
  811. data/spec/pipelines/models/pipeline_spec.rb +83 -0
  812. data/spec/pipelines/models/pipeline_stage_input_spec.rb +53 -0
  813. data/spec/pipelines/models/pipeline_stage_patch_input_spec.rb +59 -0
  814. data/spec/pipelines/models/pipeline_stage_spec.rb +83 -0
  815. data/spec/properties/api/batch_api_spec.rb +74 -0
  816. data/spec/properties/api/core_api_spec.rb +102 -0
  817. data/spec/properties/api/groups_api_spec.rb +100 -0
  818. data/spec/properties/api_client_spec.rb +226 -0
  819. data/spec/properties/configuration_spec.rb +42 -0
  820. data/spec/properties/models/batch_input_property_create_spec.rb +41 -0
  821. data/spec/properties/models/batch_input_property_name_spec.rb +41 -0
  822. data/spec/properties/models/batch_read_input_property_name_spec.rb +47 -0
  823. data/spec/properties/models/batch_response_property_spec.rb +81 -0
  824. data/spec/properties/models/collection_response_property_group_spec.rb +47 -0
  825. data/spec/properties/models/collection_response_property_spec.rb +47 -0
  826. data/spec/properties/models/error_detail_spec.rb +65 -0
  827. data/spec/properties/models/error_spec.rb +71 -0
  828. data/spec/properties/models/next_page_spec.rb +47 -0
  829. data/spec/properties/models/option_input_spec.rb +65 -0
  830. data/spec/properties/models/option_spec.rb +65 -0
  831. data/spec/properties/models/paging_spec.rb +41 -0
  832. data/spec/properties/models/property_create_spec.rb +103 -0
  833. data/spec/properties/models/property_group_create_spec.rb +53 -0
  834. data/spec/properties/models/property_group_spec.rb +59 -0
  835. data/spec/properties/models/property_group_update_spec.rb +47 -0
  836. data/spec/properties/models/property_modification_metadata_spec.rb +59 -0
  837. data/spec/properties/models/property_name_spec.rb +41 -0
  838. data/spec/properties/models/property_spec.rb +177 -0
  839. data/spec/properties/models/property_update_spec.rb +91 -0
  840. data/spec/spec_helper.rb +111 -0
  841. metadata +1145 -0
@@ -0,0 +1,447 @@
1
+ =begin
2
+ #CRM Pipelines
3
+
4
+ #Pipelines represent distinct stages in a workflow, like closing a deal or servicing a support ticket. These endpoints provide access to read and modify pipelines in HubSpot. Pipelines support `deals` and `tickets` object types. ## Pipeline ID validation When calling endpoints that take pipelineId as a parameter, that ID must correspond to an existing, un-archived pipeline. Otherwise the request will fail with a `404 Not Found` response.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.2.2
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Hubspot
16
+ module Client
17
+ module Crm
18
+ module Pipelines
19
+ module Api
20
+ class PipelinesApi
21
+ attr_accessor :api_client
22
+
23
+ def initialize(api_client = ApiClient.default)
24
+ @api_client = api_client
25
+ end
26
+ # Archive a pipeline
27
+ # Archive the pipeline identified by `{pipelineId}`.
28
+ # @param object_type [String]
29
+ # @param pipeline_id [String]
30
+ # @param [Hash] opts the optional parameters
31
+ # @return [nil]
32
+ def archive(object_type, pipeline_id, opts = {})
33
+ archive_with_http_info(object_type, pipeline_id, opts)
34
+ nil
35
+ end
36
+
37
+ # Archive a pipeline
38
+ # Archive the pipeline identified by `{pipelineId}`.
39
+ # @param object_type [String]
40
+ # @param pipeline_id [String]
41
+ # @param [Hash] opts the optional parameters
42
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
43
+ def archive_with_http_info(object_type, pipeline_id, opts = {})
44
+ if @api_client.config.debugging
45
+ @api_client.config.logger.debug 'Calling API: PipelinesApi.archive ...'
46
+ end
47
+ # verify the required parameter 'object_type' is set
48
+ if @api_client.config.client_side_validation && object_type.nil?
49
+ fail ArgumentError, "Missing the required parameter 'object_type' when calling PipelinesApi.archive"
50
+ end
51
+ # verify the required parameter 'pipeline_id' is set
52
+ if @api_client.config.client_side_validation && pipeline_id.nil?
53
+ fail ArgumentError, "Missing the required parameter 'pipeline_id' when calling PipelinesApi.archive"
54
+ end
55
+ # resource path
56
+ local_var_path = '/{objectType}/{pipelineId}'.sub('{' + 'objectType' + '}', CGI.escape(object_type.to_s).gsub('%2F', '/')).sub('{' + 'pipelineId' + '}', CGI.escape(pipeline_id.to_s).gsub('%2F', '/'))
57
+
58
+ # query parameters
59
+ query_params = opts[:query_params] || {}
60
+
61
+ # header parameters
62
+ header_params = opts[:header_params] || {}
63
+ # HTTP header 'Accept' (if needed)
64
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
65
+
66
+ # form parameters
67
+ form_params = opts[:form_params] || {}
68
+
69
+ # http body (model)
70
+ post_body = opts[:body]
71
+
72
+ # return_type
73
+ return_type = opts[:return_type]
74
+
75
+ # auth_names
76
+ auth_names = opts[:auth_names] || ['hapikey', 'oauth2']
77
+
78
+ new_options = opts.merge(
79
+ :header_params => header_params,
80
+ :query_params => query_params,
81
+ :form_params => form_params,
82
+ :body => post_body,
83
+ :auth_names => auth_names,
84
+ :return_type => return_type
85
+ )
86
+
87
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
88
+ if @api_client.config.debugging
89
+ @api_client.config.logger.debug "API called: PipelinesApi#archive\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
90
+ end
91
+ return data, status_code, headers
92
+ end
93
+
94
+ # Create a pipeline
95
+ # Create a new pipeline with the provided property values. The entire pipeline object, including its unique ID, will be returned in the response.
96
+ # @param object_type [String]
97
+ # @param [Hash] opts the optional parameters
98
+ # @option opts [PipelineInput] :body
99
+ # @return [Pipeline]
100
+ def create(object_type, opts = {})
101
+ data, _status_code, _headers = create_with_http_info(object_type, opts)
102
+ data
103
+ end
104
+
105
+ # Create a pipeline
106
+ # Create a new pipeline with the provided property values. The entire pipeline object, including its unique ID, will be returned in the response.
107
+ # @param object_type [String]
108
+ # @param [Hash] opts the optional parameters
109
+ # @option opts [PipelineInput] :body
110
+ # @return [Array<(Pipeline, Integer, Hash)>] Pipeline data, response status code and response headers
111
+ def create_with_http_info(object_type, opts = {})
112
+ if @api_client.config.debugging
113
+ @api_client.config.logger.debug 'Calling API: PipelinesApi.create ...'
114
+ end
115
+ # verify the required parameter 'object_type' is set
116
+ if @api_client.config.client_side_validation && object_type.nil?
117
+ fail ArgumentError, "Missing the required parameter 'object_type' when calling PipelinesApi.create"
118
+ end
119
+ # resource path
120
+ local_var_path = '/{objectType}'.sub('{' + 'objectType' + '}', CGI.escape(object_type.to_s).gsub('%2F', '/'))
121
+
122
+ # query parameters
123
+ query_params = opts[:query_params] || {}
124
+
125
+ # header parameters
126
+ header_params = opts[:header_params] || {}
127
+ # HTTP header 'Accept' (if needed)
128
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
129
+ # HTTP header 'Content-Type'
130
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
131
+
132
+ # form parameters
133
+ form_params = opts[:form_params] || {}
134
+
135
+ # http body (model)
136
+ post_body = opts[:body] || @api_client.object_to_http_body(opts[:'body'])
137
+
138
+ # return_type
139
+ return_type = opts[:return_type] || 'Pipeline'
140
+
141
+ # auth_names
142
+ auth_names = opts[:auth_names] || ['hapikey', 'oauth2']
143
+
144
+ new_options = opts.merge(
145
+ :header_params => header_params,
146
+ :query_params => query_params,
147
+ :form_params => form_params,
148
+ :body => post_body,
149
+ :auth_names => auth_names,
150
+ :return_type => return_type
151
+ )
152
+
153
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
154
+ if @api_client.config.debugging
155
+ @api_client.config.logger.debug "API called: PipelinesApi#create\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
156
+ end
157
+ return data, status_code, headers
158
+ end
159
+
160
+ # Return a pipeline by ID
161
+ # Return a single pipeline object identified by its unique `{pipelineId}`.
162
+ # @param object_type [String]
163
+ # @param pipeline_id [String]
164
+ # @param [Hash] opts the optional parameters
165
+ # @option opts [Boolean] :archived Whether to return only results that have been archived. (default to false)
166
+ # @return [Pipeline]
167
+ def get_by_id(object_type, pipeline_id, opts = {})
168
+ data, _status_code, _headers = get_by_id_with_http_info(object_type, pipeline_id, opts)
169
+ data
170
+ end
171
+
172
+ # Return a pipeline by ID
173
+ # Return a single pipeline object identified by its unique &#x60;{pipelineId}&#x60;.
174
+ # @param object_type [String]
175
+ # @param pipeline_id [String]
176
+ # @param [Hash] opts the optional parameters
177
+ # @option opts [Boolean] :archived Whether to return only results that have been archived.
178
+ # @return [Array<(Pipeline, Integer, Hash)>] Pipeline data, response status code and response headers
179
+ def get_by_id_with_http_info(object_type, pipeline_id, opts = {})
180
+ if @api_client.config.debugging
181
+ @api_client.config.logger.debug 'Calling API: PipelinesApi.get_by_id ...'
182
+ end
183
+ # verify the required parameter 'object_type' is set
184
+ if @api_client.config.client_side_validation && object_type.nil?
185
+ fail ArgumentError, "Missing the required parameter 'object_type' when calling PipelinesApi.get_by_id"
186
+ end
187
+ # verify the required parameter 'pipeline_id' is set
188
+ if @api_client.config.client_side_validation && pipeline_id.nil?
189
+ fail ArgumentError, "Missing the required parameter 'pipeline_id' when calling PipelinesApi.get_by_id"
190
+ end
191
+ # resource path
192
+ local_var_path = '/{objectType}/{pipelineId}'.sub('{' + 'objectType' + '}', CGI.escape(object_type.to_s).gsub('%2F', '/')).sub('{' + 'pipelineId' + '}', CGI.escape(pipeline_id.to_s).gsub('%2F', '/'))
193
+
194
+ # query parameters
195
+ query_params = opts[:query_params] || {}
196
+ query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?
197
+
198
+ # header parameters
199
+ header_params = opts[:header_params] || {}
200
+ # HTTP header 'Accept' (if needed)
201
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
202
+
203
+ # form parameters
204
+ form_params = opts[:form_params] || {}
205
+
206
+ # http body (model)
207
+ post_body = opts[:body]
208
+
209
+ # return_type
210
+ return_type = opts[:return_type] || 'Pipeline'
211
+
212
+ # auth_names
213
+ auth_names = opts[:auth_names] || ['hapikey', 'oauth2']
214
+
215
+ new_options = opts.merge(
216
+ :header_params => header_params,
217
+ :query_params => query_params,
218
+ :form_params => form_params,
219
+ :body => post_body,
220
+ :auth_names => auth_names,
221
+ :return_type => return_type
222
+ )
223
+
224
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
225
+ if @api_client.config.debugging
226
+ @api_client.config.logger.debug "API called: PipelinesApi#get_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
227
+ end
228
+ return data, status_code, headers
229
+ end
230
+
231
+ # Retrieve all pipelines
232
+ # Return all pipelines for the object type specified by `{objectType}`.
233
+ # @param object_type [String]
234
+ # @param [Hash] opts the optional parameters
235
+ # @option opts [Boolean] :archived Whether to return only results that have been archived. (default to false)
236
+ # @return [CollectionResponsePipeline]
237
+ def get_page(object_type, opts = {})
238
+ data, _status_code, _headers = get_page_with_http_info(object_type, opts)
239
+ data
240
+ end
241
+
242
+ # Retrieve all pipelines
243
+ # Return all pipelines for the object type specified by &#x60;{objectType}&#x60;.
244
+ # @param object_type [String]
245
+ # @param [Hash] opts the optional parameters
246
+ # @option opts [Boolean] :archived Whether to return only results that have been archived.
247
+ # @return [Array<(CollectionResponsePipeline, Integer, Hash)>] CollectionResponsePipeline data, response status code and response headers
248
+ def get_page_with_http_info(object_type, opts = {})
249
+ if @api_client.config.debugging
250
+ @api_client.config.logger.debug 'Calling API: PipelinesApi.get_page ...'
251
+ end
252
+ # verify the required parameter 'object_type' is set
253
+ if @api_client.config.client_side_validation && object_type.nil?
254
+ fail ArgumentError, "Missing the required parameter 'object_type' when calling PipelinesApi.get_page"
255
+ end
256
+ # resource path
257
+ local_var_path = '/{objectType}'.sub('{' + 'objectType' + '}', CGI.escape(object_type.to_s).gsub('%2F', '/'))
258
+
259
+ # query parameters
260
+ query_params = opts[:query_params] || {}
261
+ query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?
262
+
263
+ # header parameters
264
+ header_params = opts[:header_params] || {}
265
+ # HTTP header 'Accept' (if needed)
266
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
267
+
268
+ # form parameters
269
+ form_params = opts[:form_params] || {}
270
+
271
+ # http body (model)
272
+ post_body = opts[:body]
273
+
274
+ # return_type
275
+ return_type = opts[:return_type] || 'CollectionResponsePipeline'
276
+
277
+ # auth_names
278
+ auth_names = opts[:auth_names] || ['hapikey', 'oauth2']
279
+
280
+ new_options = opts.merge(
281
+ :header_params => header_params,
282
+ :query_params => query_params,
283
+ :form_params => form_params,
284
+ :body => post_body,
285
+ :auth_names => auth_names,
286
+ :return_type => return_type
287
+ )
288
+
289
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
290
+ if @api_client.config.debugging
291
+ @api_client.config.logger.debug "API called: PipelinesApi#get_page\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
292
+ end
293
+ return data, status_code, headers
294
+ end
295
+
296
+ # Replace a pipeline
297
+ # Replace all the properties of an existing pipeline with the values provided. This will overwrite any existing pipeline stages. The updated pipeline will be returned in the response.
298
+ # @param object_type [String]
299
+ # @param pipeline_id [String]
300
+ # @param [Hash] opts the optional parameters
301
+ # @option opts [PipelineInput] :body
302
+ # @return [Pipeline]
303
+ def replace(object_type, pipeline_id, opts = {})
304
+ data, _status_code, _headers = replace_with_http_info(object_type, pipeline_id, opts)
305
+ data
306
+ end
307
+
308
+ # Replace a pipeline
309
+ # Replace all the properties of an existing pipeline with the values provided. This will overwrite any existing pipeline stages. The updated pipeline will be returned in the response.
310
+ # @param object_type [String]
311
+ # @param pipeline_id [String]
312
+ # @param [Hash] opts the optional parameters
313
+ # @option opts [PipelineInput] :body
314
+ # @return [Array<(Pipeline, Integer, Hash)>] Pipeline data, response status code and response headers
315
+ def replace_with_http_info(object_type, pipeline_id, opts = {})
316
+ if @api_client.config.debugging
317
+ @api_client.config.logger.debug 'Calling API: PipelinesApi.replace ...'
318
+ end
319
+ # verify the required parameter 'object_type' is set
320
+ if @api_client.config.client_side_validation && object_type.nil?
321
+ fail ArgumentError, "Missing the required parameter 'object_type' when calling PipelinesApi.replace"
322
+ end
323
+ # verify the required parameter 'pipeline_id' is set
324
+ if @api_client.config.client_side_validation && pipeline_id.nil?
325
+ fail ArgumentError, "Missing the required parameter 'pipeline_id' when calling PipelinesApi.replace"
326
+ end
327
+ # resource path
328
+ local_var_path = '/{objectType}/{pipelineId}'.sub('{' + 'objectType' + '}', CGI.escape(object_type.to_s).gsub('%2F', '/')).sub('{' + 'pipelineId' + '}', CGI.escape(pipeline_id.to_s).gsub('%2F', '/'))
329
+
330
+ # query parameters
331
+ query_params = opts[:query_params] || {}
332
+
333
+ # header parameters
334
+ header_params = opts[:header_params] || {}
335
+ # HTTP header 'Accept' (if needed)
336
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
337
+ # HTTP header 'Content-Type'
338
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
339
+
340
+ # form parameters
341
+ form_params = opts[:form_params] || {}
342
+
343
+ # http body (model)
344
+ post_body = opts[:body] || @api_client.object_to_http_body(opts[:'body'])
345
+
346
+ # return_type
347
+ return_type = opts[:return_type] || 'Pipeline'
348
+
349
+ # auth_names
350
+ auth_names = opts[:auth_names] || ['hapikey', 'oauth2']
351
+
352
+ new_options = opts.merge(
353
+ :header_params => header_params,
354
+ :query_params => query_params,
355
+ :form_params => form_params,
356
+ :body => post_body,
357
+ :auth_names => auth_names,
358
+ :return_type => return_type
359
+ )
360
+
361
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
362
+ if @api_client.config.debugging
363
+ @api_client.config.logger.debug "API called: PipelinesApi#replace\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
364
+ end
365
+ return data, status_code, headers
366
+ end
367
+
368
+ # Update a pipeline
369
+ # Perform a partial update of the pipeline identified by `{pipelineId}`. The updated pipeline will be returned in the response.
370
+ # @param object_type [String]
371
+ # @param pipeline_id [String]
372
+ # @param [Hash] opts the optional parameters
373
+ # @option opts [Boolean] :archived Whether to return only results that have been archived. (default to false)
374
+ # @option opts [PipelinePatchInput] :body
375
+ # @return [Pipeline]
376
+ def update(object_type, pipeline_id, opts = {})
377
+ data, _status_code, _headers = update_with_http_info(object_type, pipeline_id, opts)
378
+ data
379
+ end
380
+
381
+ # Update a pipeline
382
+ # Perform a partial update of the pipeline identified by &#x60;{pipelineId}&#x60;. The updated pipeline will be returned in the response.
383
+ # @param object_type [String]
384
+ # @param pipeline_id [String]
385
+ # @param [Hash] opts the optional parameters
386
+ # @option opts [Boolean] :archived Whether to return only results that have been archived.
387
+ # @option opts [PipelinePatchInput] :body
388
+ # @return [Array<(Pipeline, Integer, Hash)>] Pipeline data, response status code and response headers
389
+ def update_with_http_info(object_type, pipeline_id, opts = {})
390
+ if @api_client.config.debugging
391
+ @api_client.config.logger.debug 'Calling API: PipelinesApi.update ...'
392
+ end
393
+ # verify the required parameter 'object_type' is set
394
+ if @api_client.config.client_side_validation && object_type.nil?
395
+ fail ArgumentError, "Missing the required parameter 'object_type' when calling PipelinesApi.update"
396
+ end
397
+ # verify the required parameter 'pipeline_id' is set
398
+ if @api_client.config.client_side_validation && pipeline_id.nil?
399
+ fail ArgumentError, "Missing the required parameter 'pipeline_id' when calling PipelinesApi.update"
400
+ end
401
+ # resource path
402
+ local_var_path = '/{objectType}/{pipelineId}'.sub('{' + 'objectType' + '}', CGI.escape(object_type.to_s).gsub('%2F', '/')).sub('{' + 'pipelineId' + '}', CGI.escape(pipeline_id.to_s).gsub('%2F', '/'))
403
+
404
+ # query parameters
405
+ query_params = opts[:query_params] || {}
406
+ query_params[:'archived'] = opts[:'archived'] if !opts[:'archived'].nil?
407
+
408
+ # header parameters
409
+ header_params = opts[:header_params] || {}
410
+ # HTTP header 'Accept' (if needed)
411
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
412
+ # HTTP header 'Content-Type'
413
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
414
+
415
+ # form parameters
416
+ form_params = opts[:form_params] || {}
417
+
418
+ # http body (model)
419
+ post_body = opts[:body] || @api_client.object_to_http_body(opts[:'body'])
420
+
421
+ # return_type
422
+ return_type = opts[:return_type] || 'Pipeline'
423
+
424
+ # auth_names
425
+ auth_names = opts[:auth_names] || ['hapikey', 'oauth2']
426
+
427
+ new_options = opts.merge(
428
+ :header_params => header_params,
429
+ :query_params => query_params,
430
+ :form_params => form_params,
431
+ :body => post_body,
432
+ :auth_names => auth_names,
433
+ :return_type => return_type
434
+ )
435
+
436
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
437
+ if @api_client.config.debugging
438
+ @api_client.config.logger.debug "API called: PipelinesApi#update\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
439
+ end
440
+ return data, status_code, headers
441
+ end
442
+ end
443
+ end
444
+ end
445
+ end
446
+ end
447
+ end
@@ -0,0 +1,423 @@
1
+ =begin
2
+ #CRM Pipelines
3
+
4
+ #Pipelines represent distinct stages in a workflow, like closing a deal or servicing a support ticket. These endpoints provide access to read and modify pipelines in HubSpot. Pipelines support `deals` and `tickets` object types. ## Pipeline ID validation When calling endpoints that take pipelineId as a parameter, that ID must correspond to an existing, un-archived pipeline. Otherwise the request will fail with a `404 Not Found` response.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.2.2
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'json'
15
+ require 'logger'
16
+ require 'tempfile'
17
+ require 'faraday'
18
+
19
+ module Hubspot
20
+ module Client
21
+ module Crm
22
+ module Pipelines
23
+ class ApiClient
24
+ # The Configuration object holding settings to be used in the API client.
25
+ attr_accessor :config
26
+
27
+ # Defines the headers to be used in HTTP requests of all API calls by default.
28
+ #
29
+ # @return [Hash]
30
+ attr_accessor :default_headers
31
+
32
+ # Initializes the ApiClient
33
+ # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
34
+ def initialize(config = Configuration.default)
35
+ @config = config
36
+ @user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
37
+ @default_headers = {
38
+ 'Content-Type' => 'application/json',
39
+ 'User-Agent' => @user_agent
40
+ }
41
+ end
42
+
43
+ def self.default
44
+ @@default ||= ApiClient.new
45
+ end
46
+
47
+ # Call an API with given options.
48
+ #
49
+ # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
50
+ # the data deserialized from response body (could be nil), response status code and response headers.
51
+ def call_api(http_method, path, opts = {})
52
+ ssl_options = {
53
+ :ca_file => @config.ssl_ca_file,
54
+ :verify => @config.ssl_verify,
55
+ :verify_mode => @config.ssl_verify_mode,
56
+ :client_cert => @config.ssl_client_cert,
57
+ :client_key => @config.ssl_client_key
58
+ }
59
+
60
+ connection = Faraday.new(:url => config.base_url, :ssl => ssl_options) do |conn|
61
+ conn.basic_auth(config.username, config.password)
62
+ if opts[:header_params]["Content-Type"] == "multipart/form-data"
63
+ conn.request :multipart
64
+ conn.request :url_encoded
65
+ end
66
+ conn.adapter(Faraday.default_adapter)
67
+
68
+ # Errors handler settings
69
+ if !config.error_handler.empty?
70
+ config.error_handler.each do |statuses, opts|
71
+ statuses = statuses.is_a?(Integer) ? [statuses] : statuses
72
+ retry_options = {
73
+ max: opts[:max_retries],
74
+ interval: opts[:seconds_delay],
75
+ retry_statuses: statuses,
76
+ methods: %i[post delete get head options put],
77
+ retry_block: -> (env, options, retries, exc) { opts[:retry_block].call }
78
+ }
79
+ conn.request :retry, retry_options
80
+ end
81
+ end
82
+ end
83
+
84
+ begin
85
+ response = connection.public_send(http_method.to_sym.downcase) do |req|
86
+ build_request(http_method, path, req, opts)
87
+ end
88
+
89
+ if @config.debugging
90
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
91
+ end
92
+
93
+ unless response.success?
94
+ if response.status == 0
95
+ # Errors from libcurl will be made visible here
96
+ fail ApiError.new(:code => 0,
97
+ :message => response.return_message)
98
+ else
99
+ fail ApiError.new(:code => response.status,
100
+ :response_headers => response.headers,
101
+ :response_body => response.body),
102
+ response.reason_phrase
103
+ end
104
+ end
105
+ rescue Faraday::TimeoutError
106
+ fail ApiError.new('Connection timed out')
107
+ end
108
+
109
+ if opts[:return_type]
110
+ data = deserialize(response, opts[:return_type])
111
+ else
112
+ data = nil
113
+ end
114
+ return data, response.status, response.headers
115
+ end
116
+
117
+ # Builds the HTTP request
118
+ #
119
+ # @param [String] http_method HTTP method/verb (e.g. POST)
120
+ # @param [String] path URL path (e.g. /account/new)
121
+ # @option opts [Hash] :header_params Header parameters
122
+ # @option opts [Hash] :query_params Query parameters
123
+ # @option opts [Hash] :form_params Query parameters
124
+ # @option opts [Object] :body HTTP body (JSON/XML)
125
+ # @return [Typhoeus::Request] A Typhoeus Request
126
+ def build_request(http_method, path, request, opts = {})
127
+ url = build_request_url(path)
128
+ http_method = http_method.to_sym.downcase
129
+
130
+ header_params = @default_headers.merge(opts[:header_params] || {})
131
+ query_params = opts[:query_params] || {}
132
+ form_params = opts[:form_params] || {}
133
+
134
+ update_params_for_auth! header_params, query_params, opts[:auth_names]
135
+
136
+ req_opts = {
137
+ :method => http_method,
138
+ :headers => header_params,
139
+ :params => query_params,
140
+ :params_encoding => @config.params_encoding,
141
+ :timeout => @config.timeout,
142
+ :verbose => @config.debugging
143
+ }
144
+
145
+ if [:post, :patch, :put, :delete].include?(http_method)
146
+ req_body = build_request_body(header_params, form_params, opts[:body])
147
+ req_opts.update :body => req_body
148
+ if @config.debugging
149
+ @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
150
+ end
151
+ end
152
+ request.headers = header_params
153
+ request.body = req_body
154
+ request.url url
155
+ request.params = query_params
156
+ download_file(request) if opts[:return_type] == 'File'
157
+ request
158
+ end
159
+
160
+ # Builds the HTTP request body
161
+ #
162
+ # @param [Hash] header_params Header parameters
163
+ # @param [Hash] form_params Query parameters
164
+ # @param [Object] body HTTP body (JSON/XML)
165
+ # @return [String] HTTP body data in the form of string
166
+ def build_request_body(header_params, form_params, body)
167
+ # http form
168
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded'
169
+ data = URI.encode_www_form(form_params)
170
+ elsif header_params['Content-Type'] == 'multipart/form-data'
171
+ data = {}
172
+ form_params.each do |key, value|
173
+ case value
174
+ when ::File, ::Tempfile
175
+ # TODO hardcode to application/octet-stream, need better way to detect content type
176
+ data[key] = Faraday::UploadIO.new(value.path, 'application/octet-stream', value.path)
177
+ when ::Array, nil
178
+ # let Faraday handle Array and nil parameters
179
+ data[key] = value
180
+ else
181
+ data[key] = value.to_s
182
+ end
183
+ end
184
+ elsif body
185
+ data = body.is_a?(String) ? body : body.to_json
186
+ else
187
+ data = nil
188
+ end
189
+ data
190
+ end
191
+
192
+ # Check if the given MIME is a JSON MIME.
193
+ # JSON MIME examples:
194
+ # application/json
195
+ # application/json; charset=UTF8
196
+ # APPLICATION/JSON
197
+ # */*
198
+ # @param [String] mime MIME
199
+ # @return [Boolean] True if the MIME is application/json
200
+ def json_mime?(mime)
201
+ (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
202
+ end
203
+
204
+ # Deserialize the response to the given return type.
205
+ #
206
+ # @param [Response] response HTTP response
207
+ # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
208
+ def deserialize(response, return_type)
209
+ body = response.body
210
+
211
+ # handle file downloading - return the File instance processed in request callbacks
212
+ # note that response body is empty when the file is written in chunks in request on_body callback
213
+ return @tempfile if return_type == 'File'
214
+
215
+ return nil if body.nil? || body.empty?
216
+
217
+ # return response body directly for String return type
218
+ return body if return_type == 'String'
219
+
220
+ # ensuring a default content type
221
+ content_type = response.headers['Content-Type'] || 'application/json'
222
+
223
+ fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
224
+
225
+ begin
226
+ data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
227
+ rescue JSON::ParserError => e
228
+ if %w(String Date DateTime).include?(return_type)
229
+ data = body
230
+ else
231
+ raise e
232
+ end
233
+ end
234
+
235
+ convert_to_type data, return_type
236
+ end
237
+
238
+ # Convert data to the given return type.
239
+ # @param [Object] data Data to be converted
240
+ # @param [String] return_type Return type
241
+ # @return [Mixed] Data in a particular type
242
+ def convert_to_type(data, return_type)
243
+ return nil if data.nil?
244
+ case return_type
245
+ when 'String'
246
+ data.to_s
247
+ when 'Integer'
248
+ data.to_i
249
+ when 'Float'
250
+ data.to_f
251
+ when 'Boolean'
252
+ data == true
253
+ when 'DateTime'
254
+ # parse date time (expecting ISO 8601 format)
255
+ DateTime.parse data
256
+ when 'Date'
257
+ # parse date time (expecting ISO 8601 format)
258
+ Date.parse data
259
+ when 'Object'
260
+ # generic object (usually a Hash), return directly
261
+ data
262
+ when /\AArray<(.+)>\z/
263
+ # e.g. Array<Pet>
264
+ sub_type = $1
265
+ data.map { |item| convert_to_type(item, sub_type) }
266
+ when /\AHash\<String, (.+)\>\z/
267
+ # e.g. Hash<String, Integer>
268
+ sub_type = $1
269
+ {}.tap do |hash|
270
+ data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
271
+ end
272
+ else
273
+ # models, e.g. Pet
274
+ Hubspot::Client::Crm::Pipelines::Models.const_get(return_type).build_from_hash(data)
275
+ end
276
+ end
277
+
278
+ # Save response body into a file in (the defined) temporary folder, using the filename
279
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
280
+ # The response body is written to the file in chunks in order to handle files which
281
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
282
+ # process can use.
283
+ #
284
+ # @see Configuration#temp_folder_path
285
+ def download_file(request)
286
+ tempfile = nil
287
+ encoding = nil
288
+ request.on_headers do |response|
289
+ content_disposition = response.headers['Content-Disposition']
290
+ if content_disposition && content_disposition =~ /filename=/i
291
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
292
+ prefix = sanitize_filename(filename)
293
+ else
294
+ prefix = 'download-'
295
+ end
296
+ prefix = prefix + '-' unless prefix.end_with?('-')
297
+ encoding = response.body.encoding
298
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
299
+ @tempfile = tempfile
300
+ end
301
+ request.on_body do |chunk|
302
+ chunk.force_encoding(encoding)
303
+ tempfile.write(chunk)
304
+ end
305
+ request.on_complete do |response|
306
+ tempfile.close if tempfile
307
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
308
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
309
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
310
+ "explicitly with `tempfile.delete`"
311
+ end
312
+ end
313
+
314
+ # Sanitize filename by removing path.
315
+ # e.g. ../../sun.gif becomes sun.gif
316
+ #
317
+ # @param [String] filename the filename to be sanitized
318
+ # @return [String] the sanitized filename
319
+ def sanitize_filename(filename)
320
+ filename.gsub(/.*[\/\\]/, '')
321
+ end
322
+
323
+ def build_request_url(path)
324
+ # Add leading and trailing slashes to path
325
+ path = "/#{path}".gsub(/\/+/, '/')
326
+ @config.base_url + path
327
+ end
328
+
329
+ # Update hearder and query params based on authentication settings.
330
+ #
331
+ # @param [Hash] header_params Header parameters
332
+ # @param [Hash] query_params Query parameters
333
+ # @param [String] auth_names Authentication scheme name
334
+ def update_params_for_auth!(header_params, query_params, auth_names)
335
+ Array(auth_names).each do |auth_name|
336
+ auth_setting = @config.auth_settings[auth_name]
337
+ next unless auth_setting
338
+ case auth_setting[:in]
339
+ when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
340
+ when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
341
+ else fail ArgumentError, 'Authentication token must be in `query` of `header`'
342
+ end
343
+ end
344
+ end
345
+
346
+ # Sets user agent in HTTP header
347
+ #
348
+ # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
349
+ def user_agent=(user_agent)
350
+ @user_agent = user_agent
351
+ @default_headers['User-Agent'] = @user_agent
352
+ end
353
+
354
+ # Return Accept header based on an array of accepts provided.
355
+ # @param [Array] accepts array for Accept
356
+ # @return [String] the Accept header (e.g. application/json)
357
+ def select_header_accept(accepts)
358
+ return nil if accepts.nil? || accepts.empty?
359
+ # use JSON when present, otherwise use all of the provided
360
+ json_accept = accepts.find { |s| json_mime?(s) }
361
+ json_accept || accepts.join(',')
362
+ end
363
+
364
+ # Return Content-Type header based on an array of content types provided.
365
+ # @param [Array] content_types array for Content-Type
366
+ # @return [String] the Content-Type header (e.g. application/json)
367
+ def select_header_content_type(content_types)
368
+ # use application/json by default
369
+ return 'application/json' if content_types.nil? || content_types.empty?
370
+ # use JSON when present, otherwise use the first one
371
+ json_content_type = content_types.find { |s| json_mime?(s) }
372
+ json_content_type || content_types.first
373
+ end
374
+
375
+ # Convert object (array, hash, object, etc) to JSON string.
376
+ # @param [Object] model object to be converted into JSON string
377
+ # @return [String] JSON string representation of the object
378
+ def object_to_http_body(model)
379
+ return model if model.nil? || model.is_a?(String)
380
+ local_body = nil
381
+ if model.is_a?(Array)
382
+ local_body = model.map { |m| object_to_hash(m) }
383
+ else
384
+ local_body = object_to_hash(model)
385
+ end
386
+ local_body.to_json
387
+ end
388
+
389
+ # Convert object(non-array) to hash.
390
+ # @param [Object] obj object to be converted into JSON string
391
+ # @return [String] JSON string representation of the object
392
+ def object_to_hash(obj)
393
+ if obj.respond_to?(:to_hash)
394
+ obj.to_hash
395
+ else
396
+ obj
397
+ end
398
+ end
399
+
400
+ # Build parameter value according to the given collection format.
401
+ # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
402
+ def build_collection_param(param, collection_format)
403
+ case collection_format
404
+ when :csv
405
+ param.join(',')
406
+ when :ssv
407
+ param.join(' ')
408
+ when :tsv
409
+ param.join("\t")
410
+ when :pipes
411
+ param.join('|')
412
+ when :multi
413
+ # return the array directly as typhoeus will handle it as expected
414
+ param
415
+ else
416
+ fail "unknown collection format: #{collection_format.inspect}"
417
+ end
418
+ end
419
+ end
420
+ end
421
+ end
422
+ end
423
+ end