hubspot-api-client 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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