hubspot-api-client 4.0.0 → 7.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -1
  3. data/lib/hubspot-api-client.rb +8 -0
  4. data/lib/hubspot/codegen/cms/audit-logs/api/default_api.rb +1 -1
  5. data/lib/hubspot/codegen/cms/performance/configuration.rb +0 -7
  6. data/lib/hubspot/codegen/cms/site-search/models/search_hit_field.rb +4 -2
  7. data/lib/hubspot/codegen/crm/companies/api/associations_api.rb +2 -2
  8. data/lib/hubspot/codegen/crm/companies/api/basic_api.rb +20 -12
  9. data/lib/hubspot/codegen/crm/companies/api/batch_api.rb +40 -24
  10. data/lib/hubspot/codegen/crm/companies/api/search_api.rb +10 -6
  11. data/lib/hubspot/codegen/crm/companies/models/batch_read_input_simple_public_object_id.rb +20 -20
  12. data/lib/hubspot/codegen/crm/companies/models/batch_response_simple_public_object.rb +29 -38
  13. data/lib/hubspot/codegen/crm/companies/models/batch_response_simple_public_object_with_errors.rb +333 -0
  14. data/lib/hubspot/codegen/crm/companies/models/filter.rb +15 -15
  15. data/lib/hubspot/codegen/crm/companies/models/simple_public_object_batch_input.rb +18 -18
  16. data/lib/hubspot/codegen/crm/contacts/api/associations_api.rb +2 -2
  17. data/lib/hubspot/codegen/crm/contacts/api/basic_api.rb +20 -12
  18. data/lib/hubspot/codegen/crm/contacts/api/batch_api.rb +40 -24
  19. data/lib/hubspot/codegen/crm/contacts/api/search_api.rb +10 -6
  20. data/lib/hubspot/codegen/crm/contacts/models/batch_read_input_simple_public_object_id.rb +20 -20
  21. data/lib/hubspot/codegen/crm/contacts/models/batch_response_simple_public_object.rb +29 -38
  22. data/lib/hubspot/codegen/crm/contacts/models/batch_response_simple_public_object_with_errors.rb +333 -0
  23. data/lib/hubspot/codegen/crm/contacts/models/filter.rb +15 -15
  24. data/lib/hubspot/codegen/crm/contacts/models/simple_public_object_batch_input.rb +18 -18
  25. data/lib/hubspot/codegen/crm/deals/api/associations_api.rb +2 -2
  26. data/lib/hubspot/codegen/crm/deals/api/basic_api.rb +20 -12
  27. data/lib/hubspot/codegen/crm/deals/api/batch_api.rb +40 -24
  28. data/lib/hubspot/codegen/crm/deals/api/search_api.rb +10 -6
  29. data/lib/hubspot/codegen/crm/deals/models/batch_read_input_simple_public_object_id.rb +20 -20
  30. data/lib/hubspot/codegen/crm/deals/models/batch_response_simple_public_object.rb +29 -38
  31. data/lib/hubspot/codegen/crm/deals/models/batch_response_simple_public_object_with_errors.rb +333 -0
  32. data/lib/hubspot/codegen/crm/deals/models/filter.rb +15 -15
  33. data/lib/hubspot/codegen/crm/deals/models/simple_public_object_batch_input.rb +18 -18
  34. data/lib/hubspot/codegen/crm/extensions/cards/configuration.rb +0 -7
  35. data/lib/hubspot/codegen/crm/line_items/api/associations_api.rb +2 -2
  36. data/lib/hubspot/codegen/crm/line_items/api/basic_api.rb +20 -12
  37. data/lib/hubspot/codegen/crm/line_items/api/batch_api.rb +40 -24
  38. data/lib/hubspot/codegen/crm/line_items/api/search_api.rb +10 -6
  39. data/lib/hubspot/codegen/crm/line_items/models/batch_read_input_simple_public_object_id.rb +20 -20
  40. data/lib/hubspot/codegen/crm/line_items/models/batch_response_simple_public_object.rb +29 -38
  41. data/lib/hubspot/codegen/crm/line_items/models/batch_response_simple_public_object_with_errors.rb +333 -0
  42. data/lib/hubspot/codegen/crm/line_items/models/filter.rb +15 -15
  43. data/lib/hubspot/codegen/crm/line_items/models/simple_public_object_batch_input.rb +18 -18
  44. data/lib/hubspot/codegen/crm/owners/api/default_api.rb +0 -2
  45. data/lib/hubspot/codegen/crm/products/api/associations_api.rb +2 -2
  46. data/lib/hubspot/codegen/crm/products/api/basic_api.rb +20 -12
  47. data/lib/hubspot/codegen/crm/products/api/batch_api.rb +40 -24
  48. data/lib/hubspot/codegen/crm/products/api/search_api.rb +10 -6
  49. data/lib/hubspot/codegen/crm/products/models/batch_read_input_simple_public_object_id.rb +20 -20
  50. data/lib/hubspot/codegen/crm/products/models/batch_response_simple_public_object.rb +29 -38
  51. data/lib/hubspot/codegen/crm/products/models/batch_response_simple_public_object_with_errors.rb +333 -0
  52. data/lib/hubspot/codegen/crm/products/models/filter.rb +15 -15
  53. data/lib/hubspot/codegen/crm/products/models/simple_public_object_batch_input.rb +18 -18
  54. data/lib/hubspot/codegen/crm/properties/api/batch_api.rb +30 -18
  55. data/lib/hubspot/codegen/crm/properties/api/core_api.rb +20 -12
  56. data/lib/hubspot/codegen/crm/properties/api/groups_api.rb +20 -12
  57. data/lib/hubspot/codegen/crm/properties/models/batch_read_input_property_name.rb +18 -18
  58. data/lib/hubspot/codegen/crm/properties/models/batch_response_property.rb +29 -23
  59. data/lib/hubspot/codegen/crm/properties/models/property_create.rb +14 -4
  60. data/lib/hubspot/codegen/crm/properties/models/property_update.rb +14 -4
  61. data/lib/hubspot/codegen/crm/quotes/api/associations_api.rb +1 -157
  62. data/lib/hubspot/codegen/crm/quotes/api/basic_api.rb +2 -190
  63. data/lib/hubspot/codegen/crm/quotes/api/batch_api.rb +11 -187
  64. data/lib/hubspot/codegen/crm/quotes/api/default_api.rb +426 -0
  65. data/lib/hubspot/codegen/crm/quotes/api/search_api.rb +11 -7
  66. data/lib/hubspot/codegen/crm/quotes/models/batch_read_input_simple_public_object_id.rb +20 -20
  67. data/lib/hubspot/codegen/crm/quotes/models/batch_response_simple_public_object.rb +29 -38
  68. data/lib/hubspot/codegen/crm/quotes/models/batch_response_simple_public_object_with_errors.rb +333 -0
  69. data/lib/hubspot/codegen/crm/quotes/models/filter.rb +15 -15
  70. data/lib/hubspot/codegen/crm/quotes/models/simple_public_object_batch_input.rb +18 -18
  71. data/lib/hubspot/codegen/crm/tickets/api/associations_api.rb +2 -2
  72. data/lib/hubspot/codegen/crm/tickets/api/basic_api.rb +20 -12
  73. data/lib/hubspot/codegen/crm/tickets/api/batch_api.rb +40 -24
  74. data/lib/hubspot/codegen/crm/tickets/api/search_api.rb +10 -6
  75. data/lib/hubspot/codegen/crm/tickets/models/batch_read_input_simple_public_object_id.rb +20 -20
  76. data/lib/hubspot/codegen/crm/tickets/models/batch_response_simple_public_object.rb +29 -38
  77. data/lib/hubspot/codegen/crm/tickets/models/batch_response_simple_public_object_with_errors.rb +333 -0
  78. data/lib/hubspot/codegen/crm/tickets/models/filter.rb +15 -15
  79. data/lib/hubspot/codegen/crm/tickets/models/simple_public_object_batch_input.rb +18 -18
  80. data/lib/hubspot/codegen/oauth/configuration.rb +0 -14
  81. data/lib/hubspot/codegen/webhooks/api/subscriptions_api.rb +16 -12
  82. data/lib/hubspot/codegen/webhooks/configuration.rb +0 -7
  83. data/lib/hubspot/codegen/webhooks/models/batch_response_subscription_response.rb +1 -21
  84. data/lib/hubspot/codegen/webhooks/models/batch_response_subscription_response_with_errors.rb +331 -0
  85. data/lib/hubspot/codegen/webhooks/models/settings_response.rb +28 -28
  86. data/lib/hubspot/codegen/webhooks/models/subscription_create_request.rb +16 -13
  87. data/lib/hubspot/codegen/webhooks/models/subscription_patch_request.rb +7 -7
  88. data/lib/hubspot/codegen/webhooks/models/subscription_response.rb +45 -39
  89. data/lib/hubspot/version.rb +1 -1
  90. data/sample-apps/companies-app/Gemfile.lock +2 -2
  91. data/sample-apps/companies-app/app/lib/services/hubspot/associations/create.rb +1 -1
  92. data/sample-apps/companies-app/app/lib/services/hubspot/associations/delete.rb +1 -1
  93. data/sample-apps/companies-app/app/lib/services/hubspot/associations/get_by_id.rb +2 -2
  94. data/sample-apps/companies-app/app/lib/services/hubspot/companies/create.rb +1 -1
  95. data/sample-apps/companies-app/app/lib/services/hubspot/companies/search.rb +1 -1
  96. data/sample-apps/companies-app/app/lib/services/hubspot/companies/update.rb +1 -2
  97. data/sample-apps/companies-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  98. data/sample-apps/contacts-app/Gemfile.lock +2 -2
  99. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/create.rb +1 -1
  100. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  101. data/sample-apps/contacts-app/app/lib/services/hubspot/contacts/update.rb +1 -2
  102. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/create.rb +1 -2
  103. data/sample-apps/contacts-app/app/lib/services/hubspot/properties/update.rb +1 -2
  104. data/sample-apps/leaky-bucket-app/app/lib/services/hubspot/contacts/archive_batch.rb +1 -1
  105. data/sample-apps/leaky-bucket-app/app/lib/services/hubspot/contacts/create_batch.rb +1 -1
  106. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/create.rb +1 -1
  107. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  108. data/sample-apps/oauth-app/app/lib/services/hubspot/contacts/update.rb +1 -2
  109. data/sample-apps/rate-limits-redis-sample-app/app/lib/services/hubspot/contacts/archive_batch.rb +1 -1
  110. data/sample-apps/rate-limits-redis-sample-app/app/lib/services/hubspot/contacts/create_batch.rb +1 -1
  111. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/contacts/search.rb +1 -1
  112. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/properties/create.rb +1 -2
  113. data/sample-apps/trello-integration-app/.env.template +7 -0
  114. data/sample-apps/trello-integration-app/.gitignore +35 -0
  115. data/sample-apps/trello-integration-app/.rspec +1 -0
  116. data/sample-apps/trello-integration-app/.ruby-version +1 -0
  117. data/sample-apps/trello-integration-app/Dockerfile +22 -0
  118. data/sample-apps/trello-integration-app/Gemfile +38 -0
  119. data/sample-apps/trello-integration-app/Gemfile.lock +314 -0
  120. data/sample-apps/trello-integration-app/README.md +31 -0
  121. data/sample-apps/trello-integration-app/Rakefile +6 -0
  122. data/sample-apps/trello-integration-app/app/assets/config/manifest.js +3 -0
  123. data/sample-apps/trello-integration-app/app/assets/images/.keep +0 -0
  124. data/sample-apps/trello-integration-app/app/assets/images/right-arrow.png +0 -0
  125. data/sample-apps/trello-integration-app/app/assets/javascripts/application.js +22 -0
  126. data/sample-apps/trello-integration-app/app/assets/javascripts/cable.js +13 -0
  127. data/sample-apps/trello-integration-app/app/assets/javascripts/channels/.keep +0 -0
  128. data/sample-apps/trello-integration-app/app/assets/javascripts/jquery-spinner.min.js +11071 -0
  129. data/sample-apps/trello-integration-app/app/assets/javascripts/lodash.js +15972 -0
  130. data/sample-apps/trello-integration-app/app/assets/javascripts/mappings.js +78 -0
  131. data/sample-apps/trello-integration-app/app/assets/javascripts/typeahead.bundle.min.js +8 -0
  132. data/sample-apps/trello-integration-app/app/assets/stylesheets/application.css +46 -0
  133. data/sample-apps/trello-integration-app/app/assets/stylesheets/authorization.scss +34 -0
  134. data/sample-apps/trello-integration-app/app/assets/stylesheets/jquery-spinner.css +33 -0
  135. data/sample-apps/trello-integration-app/app/assets/stylesheets/mappings.scss +55 -0
  136. data/sample-apps/trello-integration-app/app/assets/stylesheets/navigation.scss +43 -0
  137. data/sample-apps/trello-integration-app/app/assets/stylesheets/search_frame.scss +81 -0
  138. data/sample-apps/trello-integration-app/app/controllers/application_controller.rb +38 -0
  139. data/sample-apps/trello-integration-app/app/controllers/concerns/.keep +0 -0
  140. data/sample-apps/trello-integration-app/app/controllers/concerns/exception_handler.rb +12 -0
  141. data/sample-apps/trello-integration-app/app/controllers/home_controller.rb +20 -0
  142. data/sample-apps/trello-integration-app/app/controllers/mappings_controller.rb +64 -0
  143. data/sample-apps/trello-integration-app/app/controllers/oauth/authorization_controller.rb +28 -0
  144. data/sample-apps/trello-integration-app/app/controllers/trello/cards_controller.rb +94 -0
  145. data/sample-apps/trello-integration-app/app/controllers/trello/webhooks_controller.rb +30 -0
  146. data/sample-apps/trello-integration-app/app/helpers/application_helper.rb +2 -0
  147. data/sample-apps/trello-integration-app/app/helpers/oauth/authorization_helper.rb +11 -0
  148. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/authorize.rb +17 -0
  149. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/get_authorization_uri.rb +35 -0
  150. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/base.rb +21 -0
  151. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/generate.rb +28 -0
  152. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/refresh.rb +35 -0
  153. data/sample-apps/trello-integration-app/app/lib/services/hubspot/deals/get_by_id.rb +15 -0
  154. data/sample-apps/trello-integration-app/app/lib/services/hubspot/deals/update.rb +17 -0
  155. data/sample-apps/trello-integration-app/app/lib/services/hubspot/extensions_cards/create.rb +82 -0
  156. data/sample-apps/trello-integration-app/app/lib/services/hubspot/pipelines/get_all.rb +11 -0
  157. data/sample-apps/trello-integration-app/app/lib/services/hubspot/pipelines/get_by_id.rb +15 -0
  158. data/sample-apps/trello-integration-app/app/lib/services/trello/authorization/authorize.rb +20 -0
  159. data/sample-apps/trello-integration-app/app/lib/services/trello/boards/get_all.rb +11 -0
  160. data/sample-apps/trello-integration-app/app/lib/services/trello/boards/get_by_id.rb +19 -0
  161. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/format.rb +78 -0
  162. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/get_by_id.rb +15 -0
  163. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/search.rb +15 -0
  164. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/create.rb +31 -0
  165. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/delete.rb +17 -0
  166. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/update.rb +19 -0
  167. data/sample-apps/trello-integration-app/app/models/application_record.rb +3 -0
  168. data/sample-apps/trello-integration-app/app/models/concerns/.keep +0 -0
  169. data/sample-apps/trello-integration-app/app/models/deal_association.rb +2 -0
  170. data/sample-apps/trello-integration-app/app/models/extension_card.rb +4 -0
  171. data/sample-apps/trello-integration-app/app/models/hubspot_token.rb +19 -0
  172. data/sample-apps/trello-integration-app/app/models/mapping.rb +2 -0
  173. data/sample-apps/trello-integration-app/app/models/trello_token.rb +19 -0
  174. data/sample-apps/trello-integration-app/app/models/webhook.rb +2 -0
  175. data/sample-apps/trello-integration-app/app/views/home/index.html.erb +23 -0
  176. data/sample-apps/trello-integration-app/app/views/home/success.html.erb +11 -0
  177. data/sample-apps/trello-integration-app/app/views/layouts/application.html.erb +23 -0
  178. data/sample-apps/trello-integration-app/app/views/mappings/_mapping.html.erb +13 -0
  179. data/sample-apps/trello-integration-app/app/views/mappings/index.html.erb +44 -0
  180. data/sample-apps/trello-integration-app/app/views/oauth/authorization/login.html.erb +42 -0
  181. data/sample-apps/trello-integration-app/app/views/shared/_header.html.erb +15 -0
  182. data/sample-apps/trello-integration-app/app/views/trello/cards/search_frame.html.erb +69 -0
  183. data/sample-apps/trello-integration-app/app/views/trello/cards/search_frame_success.html.erb +7 -0
  184. data/sample-apps/trello-integration-app/bin/bundle +3 -0
  185. data/sample-apps/trello-integration-app/bin/rails +9 -0
  186. data/sample-apps/trello-integration-app/bin/rake +9 -0
  187. data/sample-apps/trello-integration-app/bin/setup +36 -0
  188. data/sample-apps/trello-integration-app/bin/spring +17 -0
  189. data/sample-apps/trello-integration-app/bin/update +31 -0
  190. data/sample-apps/trello-integration-app/bin/yarn +11 -0
  191. data/sample-apps/trello-integration-app/config.ru +5 -0
  192. data/sample-apps/trello-integration-app/config/application.rb +20 -0
  193. data/sample-apps/trello-integration-app/config/boot.rb +3 -0
  194. data/sample-apps/trello-integration-app/config/cable.yml +10 -0
  195. data/sample-apps/trello-integration-app/config/database.yml +16 -0
  196. data/sample-apps/trello-integration-app/config/environment.rb +5 -0
  197. data/sample-apps/trello-integration-app/config/environments/development.rb +61 -0
  198. data/sample-apps/trello-integration-app/config/environments/production.rb +94 -0
  199. data/sample-apps/trello-integration-app/config/environments/test.rb +46 -0
  200. data/sample-apps/trello-integration-app/config/initializers/assets.rb +14 -0
  201. data/sample-apps/trello-integration-app/config/initializers/filter_parameter_logging.rb +4 -0
  202. data/sample-apps/trello-integration-app/config/initializers/hubspot-api-client.rb +3 -0
  203. data/sample-apps/trello-integration-app/config/initializers/mime_types.rb +1 -0
  204. data/sample-apps/trello-integration-app/config/initializers/omniauth.rb +11 -0
  205. data/sample-apps/trello-integration-app/config/initializers/trello.rb +1 -0
  206. data/sample-apps/trello-integration-app/config/initializers/wrap_parameters.rb +14 -0
  207. data/sample-apps/trello-integration-app/config/locales/en.yml +33 -0
  208. data/sample-apps/trello-integration-app/config/puma.rb +34 -0
  209. data/sample-apps/trello-integration-app/config/routes.rb +29 -0
  210. data/sample-apps/trello-integration-app/config/spring.rb +6 -0
  211. data/sample-apps/trello-integration-app/config/storage.yml +34 -0
  212. data/sample-apps/trello-integration-app/db/migrate/20200624132327_create_hubspot_tokens.rb +10 -0
  213. data/sample-apps/trello-integration-app/db/migrate/20200624132336_create_trello_tokens.rb +8 -0
  214. data/sample-apps/trello-integration-app/db/migrate/20200624132337_create_deal_associations.rb +8 -0
  215. data/sample-apps/trello-integration-app/db/migrate/20200702130530_create_extension_cards.rb +8 -0
  216. data/sample-apps/trello-integration-app/db/migrate/20200715143913_create_mappings.rb +12 -0
  217. data/sample-apps/trello-integration-app/db/migrate/20200727083656_create_webhooks.rb +9 -0
  218. data/sample-apps/trello-integration-app/db/schema.rb +52 -0
  219. data/sample-apps/trello-integration-app/db/seeds.rb +7 -0
  220. data/sample-apps/trello-integration-app/docker-compose.yml +41 -0
  221. data/sample-apps/trello-integration-app/docker-entrypoint.sh +8 -0
  222. data/sample-apps/trello-integration-app/lib/assets/.keep +0 -0
  223. data/sample-apps/trello-integration-app/lib/middlewares/trello_payload_params_handler.rb +18 -0
  224. data/sample-apps/trello-integration-app/lib/tasks/.keep +0 -0
  225. data/sample-apps/trello-integration-app/log/.keep +0 -0
  226. data/sample-apps/trello-integration-app/package.json +5 -0
  227. data/sample-apps/trello-integration-app/public/404.html +67 -0
  228. data/sample-apps/trello-integration-app/public/422.html +67 -0
  229. data/sample-apps/trello-integration-app/public/500.html +66 -0
  230. data/sample-apps/trello-integration-app/public/favicon.ico +0 -0
  231. data/sample-apps/trello-integration-app/public/robots.txt +1 -0
  232. data/sample-apps/trello-integration-app/tmp/.keep +0 -0
  233. data/sample-apps/webhooks-contacts-app/app/lib/services/hubspot/contacts/get_batch.rb +1 -4
  234. metadata +277 -2
@@ -16,12 +16,12 @@ module Hubspot
16
16
  module Crm
17
17
  module Tickets
18
18
  class Filter
19
+ attr_accessor :value
20
+
19
21
  attr_accessor :property_name
20
22
 
21
23
  attr_accessor :operator
22
24
 
23
- attr_accessor :value
24
-
25
25
  class EnumAttributeValidator
26
26
  attr_reader :datatype
27
27
  attr_reader :allowable_values
@@ -47,18 +47,18 @@ module Hubspot
47
47
  # Attribute mapping from ruby-style variable name to JSON key.
48
48
  def self.attribute_map
49
49
  {
50
+ :'value' => :'value',
50
51
  :'property_name' => :'propertyName',
51
- :'operator' => :'operator',
52
- :'value' => :'value'
52
+ :'operator' => :'operator'
53
53
  }
54
54
  end
55
55
 
56
56
  # Attribute type mapping.
57
57
  def self.openapi_types
58
58
  {
59
+ :'value' => :'String',
59
60
  :'property_name' => :'String',
60
- :'operator' => :'String',
61
- :'value' => :'String'
61
+ :'operator' => :'String'
62
62
  }
63
63
  end
64
64
 
@@ -83,6 +83,10 @@ module Hubspot
83
83
  h[k.to_sym] = v
84
84
  }
85
85
 
86
+ if attributes.key?(:'value')
87
+ self.value = attributes[:'value']
88
+ end
89
+
86
90
  if attributes.key?(:'property_name')
87
91
  self.property_name = attributes[:'property_name']
88
92
  end
@@ -90,10 +94,6 @@ module Hubspot
90
94
  if attributes.key?(:'operator')
91
95
  self.operator = attributes[:'operator']
92
96
  end
93
-
94
- if attributes.key?(:'value')
95
- self.value = attributes[:'value']
96
- end
97
97
  end
98
98
 
99
99
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -116,7 +116,7 @@ module Hubspot
116
116
  def valid?
117
117
  return false if @property_name.nil?
118
118
  return false if @operator.nil?
119
- operator_validator = EnumAttributeValidator.new('String', ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"])
119
+ operator_validator = EnumAttributeValidator.new('String', ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"])
120
120
  return false unless operator_validator.valid?(@operator)
121
121
  true
122
122
  end
@@ -124,7 +124,7 @@ module Hubspot
124
124
  # Custom attribute writer method checking allowed values (enum).
125
125
  # @param [Object] operator Object to be assigned
126
126
  def operator=(operator)
127
- validator = EnumAttributeValidator.new('String', ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"])
127
+ validator = EnumAttributeValidator.new('String', ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"])
128
128
  unless validator.valid?(operator)
129
129
  fail ArgumentError, "invalid value for \"operator\", must be one of #{validator.allowable_values}."
130
130
  end
@@ -136,9 +136,9 @@ module Hubspot
136
136
  def ==(o)
137
137
  return true if self.equal?(o)
138
138
  self.class == o.class &&
139
+ value == o.value &&
139
140
  property_name == o.property_name &&
140
- operator == o.operator &&
141
- value == o.value
141
+ operator == o.operator
142
142
  end
143
143
 
144
144
  # @see the `==` method
@@ -150,7 +150,7 @@ module Hubspot
150
150
  # Calculates hash code according to all attributes.
151
151
  # @return [Integer] Hash code
152
152
  def hash
153
- [property_name, operator, value].hash
153
+ [value, property_name, operator].hash
154
154
  end
155
155
 
156
156
  # Builds the object from hash
@@ -16,23 +16,23 @@ module Hubspot
16
16
  module Crm
17
17
  module Tickets
18
18
  class SimplePublicObjectBatchInput
19
- attr_accessor :id
20
-
21
19
  attr_accessor :properties
22
20
 
21
+ attr_accessor :id
22
+
23
23
  # Attribute mapping from ruby-style variable name to JSON key.
24
24
  def self.attribute_map
25
25
  {
26
- :'id' => :'id',
27
- :'properties' => :'properties'
26
+ :'properties' => :'properties',
27
+ :'id' => :'id'
28
28
  }
29
29
  end
30
30
 
31
31
  # Attribute type mapping.
32
32
  def self.openapi_types
33
33
  {
34
- :'id' => :'String',
35
- :'properties' => :'Hash<String, String>'
34
+ :'properties' => :'Hash<String, String>',
35
+ :'id' => :'String'
36
36
  }
37
37
  end
38
38
 
@@ -57,37 +57,37 @@ module Hubspot
57
57
  h[k.to_sym] = v
58
58
  }
59
59
 
60
- if attributes.key?(:'id')
61
- self.id = attributes[:'id']
62
- end
63
-
64
60
  if attributes.key?(:'properties')
65
61
  if (value = attributes[:'properties']).is_a?(Hash)
66
62
  self.properties = value
67
63
  end
68
64
  end
65
+
66
+ if attributes.key?(:'id')
67
+ self.id = attributes[:'id']
68
+ end
69
69
  end
70
70
 
71
71
  # Show invalid properties with the reasons. Usually used together with valid?
72
72
  # @return Array for valid properties with the reasons
73
73
  def list_invalid_properties
74
74
  invalid_properties = Array.new
75
- if @id.nil?
76
- invalid_properties.push('invalid value for "id", id cannot be nil.')
77
- end
78
-
79
75
  if @properties.nil?
80
76
  invalid_properties.push('invalid value for "properties", properties cannot be nil.')
81
77
  end
82
78
 
79
+ if @id.nil?
80
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
81
+ end
82
+
83
83
  invalid_properties
84
84
  end
85
85
 
86
86
  # Check to see if the all the properties in the model are valid
87
87
  # @return true if the model is valid
88
88
  def valid?
89
- return false if @id.nil?
90
89
  return false if @properties.nil?
90
+ return false if @id.nil?
91
91
  true
92
92
  end
93
93
 
@@ -96,8 +96,8 @@ module Hubspot
96
96
  def ==(o)
97
97
  return true if self.equal?(o)
98
98
  self.class == o.class &&
99
- id == o.id &&
100
- properties == o.properties
99
+ properties == o.properties &&
100
+ id == o.id
101
101
  end
102
102
 
103
103
  # @see the `==` method
@@ -109,7 +109,7 @@ module Hubspot
109
109
  # Calculates hash code according to all attributes.
110
110
  # @return [Integer] Hash code
111
111
  def hash
112
- [id, properties].hash
112
+ [properties, id].hash
113
113
  end
114
114
 
115
115
  # Builds the object from hash
@@ -193,20 +193,6 @@ module Hubspot
193
193
  # Returns Auth Settings hash for api client.
194
194
  def auth_settings
195
195
  {
196
- 'hapikey' =>
197
- {
198
- type: 'api_key',
199
- in: 'query',
200
- key: 'hapikey',
201
- value: api_key_with_prefix('hapikey')
202
- },
203
- 'oauth2' =>
204
- {
205
- type: 'oauth2',
206
- in: 'header',
207
- key: 'Authorization',
208
- value: "Bearer #{access_token}"
209
- },
210
196
  }
211
197
  end
212
198
 
@@ -292,11 +292,11 @@ module Hubspot
292
292
  # Updates the details for an existing subscription.
293
293
  # @param subscription_id [Integer] The ID of the subscription to update.
294
294
  # @param app_id [Integer] The ID of the target app.
295
+ # @param subscription_patch_request [SubscriptionPatchRequest] Updated details for the subscription.
295
296
  # @param [Hash] opts the optional parameters
296
- # @option opts [SubscriptionPatchRequest] :subscription_patch_request Updated details for the subscription.
297
297
  # @return [SubscriptionResponse]
298
- def update(subscription_id, app_id, opts = {})
299
- data, _status_code, _headers = update_with_http_info(subscription_id, app_id, opts)
298
+ def update(subscription_id, app_id, subscription_patch_request, opts = {})
299
+ data, _status_code, _headers = update_with_http_info(subscription_id, app_id, subscription_patch_request, opts)
300
300
  data
301
301
  end
302
302
 
@@ -304,10 +304,10 @@ module Hubspot
304
304
  # Updates the details for an existing subscription.
305
305
  # @param subscription_id [Integer] The ID of the subscription to update.
306
306
  # @param app_id [Integer] The ID of the target app.
307
+ # @param subscription_patch_request [SubscriptionPatchRequest] Updated details for the subscription.
307
308
  # @param [Hash] opts the optional parameters
308
- # @option opts [SubscriptionPatchRequest] :subscription_patch_request Updated details for the subscription.
309
309
  # @return [Array<(SubscriptionResponse, Integer, Hash)>] SubscriptionResponse data, response status code and response headers
310
- def update_with_http_info(subscription_id, app_id, opts = {})
310
+ def update_with_http_info(subscription_id, app_id, subscription_patch_request, opts = {})
311
311
  if @api_client.config.debugging
312
312
  @api_client.config.logger.debug 'Calling API: SubscriptionsApi.update ...'
313
313
  end
@@ -319,6 +319,10 @@ module Hubspot
319
319
  if @api_client.config.client_side_validation && app_id.nil?
320
320
  fail ArgumentError, "Missing the required parameter 'app_id' when calling SubscriptionsApi.update"
321
321
  end
322
+ # verify the required parameter 'subscription_patch_request' is set
323
+ if @api_client.config.client_side_validation && subscription_patch_request.nil?
324
+ fail ArgumentError, "Missing the required parameter 'subscription_patch_request' when calling SubscriptionsApi.update"
325
+ end
322
326
  # resource path
323
327
  local_var_path = '/webhooks/v3/{appId}/subscriptions/{subscriptionId}'.sub('{' + 'subscriptionId' + '}', CGI.escape(subscription_id.to_s)).sub('{' + 'appId' + '}', CGI.escape(app_id.to_s))
324
328
 
@@ -336,7 +340,7 @@ module Hubspot
336
340
  form_params = opts[:form_params] || {}
337
341
 
338
342
  # http body (model)
339
- post_body = opts[:body] || @api_client.object_to_http_body(opts[:'subscription_patch_request'])
343
+ post_body = opts[:body] || @api_client.object_to_http_body(subscription_patch_request)
340
344
 
341
345
  # return_type
342
346
  return_type = opts[:return_type] || 'SubscriptionResponse'
@@ -361,9 +365,9 @@ module Hubspot
361
365
  end
362
366
 
363
367
  # Batch update subscriptions
364
- # Activates or deactivates specified subscriptions for the given app.
365
- # @param app_id [Integer] The ID of the target app.
366
- # @param batch_input_subscription_batch_update_request [BatchInputSubscriptionBatchUpdateRequest] Collection of updated details for the specified subscription.
368
+ # Activates or deactivates target app subscriptions.
369
+ # @param app_id [Integer] The app ID of the target app.
370
+ # @param batch_input_subscription_batch_update_request [BatchInputSubscriptionBatchUpdateRequest] Updated details for the specified subscriptions.
367
371
  # @param [Hash] opts the optional parameters
368
372
  # @return [BatchResponseSubscriptionResponse]
369
373
  def update_batch(app_id, batch_input_subscription_batch_update_request, opts = {})
@@ -372,9 +376,9 @@ module Hubspot
372
376
  end
373
377
 
374
378
  # Batch update subscriptions
375
- # Activates or deactivates specified subscriptions for the given app.
376
- # @param app_id [Integer] The ID of the target app.
377
- # @param batch_input_subscription_batch_update_request [BatchInputSubscriptionBatchUpdateRequest] Collection of updated details for the specified subscription.
379
+ # Activates or deactivates target app subscriptions.
380
+ # @param app_id [Integer] The app ID of the target app.
381
+ # @param batch_input_subscription_batch_update_request [BatchInputSubscriptionBatchUpdateRequest] Updated details for the specified subscriptions.
378
382
  # @param [Hash] opts the optional parameters
379
383
  # @return [Array<(BatchResponseSubscriptionResponse, Integer, Hash)>] BatchResponseSubscriptionResponse data, response status code and response headers
380
384
  def update_batch_with_http_info(app_id, batch_input_subscription_batch_update_request, opts = {})
@@ -200,13 +200,6 @@ module Hubspot
200
200
  key: 'hapikey',
201
201
  value: api_key_with_prefix('hapikey')
202
202
  },
203
- 'oauth2' =>
204
- {
205
- type: 'oauth2',
206
- in: 'header',
207
- key: 'Authorization',
208
- value: "Bearer #{access_token}"
209
- },
210
203
  }
211
204
  end
212
205
 
@@ -19,10 +19,6 @@ module Hubspot
19
19
 
20
20
  attr_accessor :results
21
21
 
22
- attr_accessor :num_errors
23
-
24
- attr_accessor :errors
25
-
26
22
  attr_accessor :requested_at
27
23
 
28
24
  attr_accessor :started_at
@@ -58,8 +54,6 @@ module Hubspot
58
54
  {
59
55
  :'status' => :'status',
60
56
  :'results' => :'results',
61
- :'num_errors' => :'numErrors',
62
- :'errors' => :'errors',
63
57
  :'requested_at' => :'requestedAt',
64
58
  :'started_at' => :'startedAt',
65
59
  :'completed_at' => :'completedAt',
@@ -72,8 +66,6 @@ module Hubspot
72
66
  {
73
67
  :'status' => :'String',
74
68
  :'results' => :'Array<SubscriptionResponse>',
75
- :'num_errors' => :'Integer',
76
- :'errors' => :'Array<Error>',
77
69
  :'requested_at' => :'DateTime',
78
70
  :'started_at' => :'DateTime',
79
71
  :'completed_at' => :'DateTime',
@@ -112,16 +104,6 @@ module Hubspot
112
104
  end
113
105
  end
114
106
 
115
- if attributes.key?(:'num_errors')
116
- self.num_errors = attributes[:'num_errors']
117
- end
118
-
119
- if attributes.key?(:'errors')
120
- if (value = attributes[:'errors']).is_a?(Array)
121
- self.errors = value
122
- end
123
- end
124
-
125
107
  if attributes.key?(:'requested_at')
126
108
  self.requested_at = attributes[:'requested_at']
127
109
  end
@@ -193,8 +175,6 @@ module Hubspot
193
175
  self.class == o.class &&
194
176
  status == o.status &&
195
177
  results == o.results &&
196
- num_errors == o.num_errors &&
197
- errors == o.errors &&
198
178
  requested_at == o.requested_at &&
199
179
  started_at == o.started_at &&
200
180
  completed_at == o.completed_at &&
@@ -210,7 +190,7 @@ module Hubspot
210
190
  # Calculates hash code according to all attributes.
211
191
  # @return [Integer] Hash code
212
192
  def hash
213
- [status, results, num_errors, errors, requested_at, started_at, completed_at, links].hash
193
+ [status, results, requested_at, started_at, completed_at, links].hash
214
194
  end
215
195
 
216
196
  # Builds the object from hash
@@ -0,0 +1,331 @@
1
+ =begin
2
+ #Webhooks API
3
+
4
+ #Provides a way for apps to subscribe to certain change events in HubSpot. Once configured, apps will receive event payloads containing details about the changes at a specified target URL. There can only be one target URL for receiving event notifications per app.
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.2.3
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Hubspot
16
+ module Webhooks
17
+ class BatchResponseSubscriptionResponseWithErrors
18
+ attr_accessor :status
19
+
20
+ attr_accessor :results
21
+
22
+ attr_accessor :num_errors
23
+
24
+ attr_accessor :errors
25
+
26
+ attr_accessor :requested_at
27
+
28
+ attr_accessor :started_at
29
+
30
+ attr_accessor :completed_at
31
+
32
+ attr_accessor :links
33
+
34
+ class EnumAttributeValidator
35
+ attr_reader :datatype
36
+ attr_reader :allowable_values
37
+
38
+ def initialize(datatype, allowable_values)
39
+ @allowable_values = allowable_values.map do |value|
40
+ case datatype.to_s
41
+ when /Integer/i
42
+ value.to_i
43
+ when /Float/i
44
+ value.to_f
45
+ else
46
+ value
47
+ end
48
+ end
49
+ end
50
+
51
+ def valid?(value)
52
+ !value || allowable_values.include?(value)
53
+ end
54
+ end
55
+
56
+ # Attribute mapping from ruby-style variable name to JSON key.
57
+ def self.attribute_map
58
+ {
59
+ :'status' => :'status',
60
+ :'results' => :'results',
61
+ :'num_errors' => :'numErrors',
62
+ :'errors' => :'errors',
63
+ :'requested_at' => :'requestedAt',
64
+ :'started_at' => :'startedAt',
65
+ :'completed_at' => :'completedAt',
66
+ :'links' => :'links'
67
+ }
68
+ end
69
+
70
+ # Attribute type mapping.
71
+ def self.openapi_types
72
+ {
73
+ :'status' => :'String',
74
+ :'results' => :'Array<SubscriptionResponse>',
75
+ :'num_errors' => :'Integer',
76
+ :'errors' => :'Array<Error>',
77
+ :'requested_at' => :'DateTime',
78
+ :'started_at' => :'DateTime',
79
+ :'completed_at' => :'DateTime',
80
+ :'links' => :'Hash<String, String>'
81
+ }
82
+ end
83
+
84
+ # List of attributes with nullable: true
85
+ def self.openapi_nullable
86
+ Set.new([
87
+ ])
88
+ end
89
+
90
+ # Initializes the object
91
+ # @param [Hash] attributes Model attributes in the form of hash
92
+ def initialize(attributes = {})
93
+ if (!attributes.is_a?(Hash))
94
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Hubspot::Webhooks::BatchResponseSubscriptionResponseWithErrors` initialize method"
95
+ end
96
+
97
+ # check to see if the attribute exists and convert string to symbol for hash key
98
+ attributes = attributes.each_with_object({}) { |(k, v), h|
99
+ if (!self.class.attribute_map.key?(k.to_sym))
100
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Hubspot::Webhooks::BatchResponseSubscriptionResponseWithErrors`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
101
+ end
102
+ h[k.to_sym] = v
103
+ }
104
+
105
+ if attributes.key?(:'status')
106
+ self.status = attributes[:'status']
107
+ end
108
+
109
+ if attributes.key?(:'results')
110
+ if (value = attributes[:'results']).is_a?(Array)
111
+ self.results = value
112
+ end
113
+ end
114
+
115
+ if attributes.key?(:'num_errors')
116
+ self.num_errors = attributes[:'num_errors']
117
+ end
118
+
119
+ if attributes.key?(:'errors')
120
+ if (value = attributes[:'errors']).is_a?(Array)
121
+ self.errors = value
122
+ end
123
+ end
124
+
125
+ if attributes.key?(:'requested_at')
126
+ self.requested_at = attributes[:'requested_at']
127
+ end
128
+
129
+ if attributes.key?(:'started_at')
130
+ self.started_at = attributes[:'started_at']
131
+ end
132
+
133
+ if attributes.key?(:'completed_at')
134
+ self.completed_at = attributes[:'completed_at']
135
+ end
136
+
137
+ if attributes.key?(:'links')
138
+ if (value = attributes[:'links']).is_a?(Hash)
139
+ self.links = value
140
+ end
141
+ end
142
+ end
143
+
144
+ # Show invalid properties with the reasons. Usually used together with valid?
145
+ # @return Array for valid properties with the reasons
146
+ def list_invalid_properties
147
+ invalid_properties = Array.new
148
+ if @status.nil?
149
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
150
+ end
151
+
152
+ if @results.nil?
153
+ invalid_properties.push('invalid value for "results", results cannot be nil.')
154
+ end
155
+
156
+ if @started_at.nil?
157
+ invalid_properties.push('invalid value for "started_at", started_at cannot be nil.')
158
+ end
159
+
160
+ if @completed_at.nil?
161
+ invalid_properties.push('invalid value for "completed_at", completed_at cannot be nil.')
162
+ end
163
+
164
+ invalid_properties
165
+ end
166
+
167
+ # Check to see if the all the properties in the model are valid
168
+ # @return true if the model is valid
169
+ def valid?
170
+ return false if @status.nil?
171
+ status_validator = EnumAttributeValidator.new('String', ["PENDING", "PROCESSING", "CANCELED", "COMPLETE"])
172
+ return false unless status_validator.valid?(@status)
173
+ return false if @results.nil?
174
+ return false if @started_at.nil?
175
+ return false if @completed_at.nil?
176
+ true
177
+ end
178
+
179
+ # Custom attribute writer method checking allowed values (enum).
180
+ # @param [Object] status Object to be assigned
181
+ def status=(status)
182
+ validator = EnumAttributeValidator.new('String', ["PENDING", "PROCESSING", "CANCELED", "COMPLETE"])
183
+ unless validator.valid?(status)
184
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
185
+ end
186
+ @status = status
187
+ end
188
+
189
+ # Checks equality by comparing each attribute.
190
+ # @param [Object] Object to be compared
191
+ def ==(o)
192
+ return true if self.equal?(o)
193
+ self.class == o.class &&
194
+ status == o.status &&
195
+ results == o.results &&
196
+ num_errors == o.num_errors &&
197
+ errors == o.errors &&
198
+ requested_at == o.requested_at &&
199
+ started_at == o.started_at &&
200
+ completed_at == o.completed_at &&
201
+ links == o.links
202
+ end
203
+
204
+ # @see the `==` method
205
+ # @param [Object] Object to be compared
206
+ def eql?(o)
207
+ self == o
208
+ end
209
+
210
+ # Calculates hash code according to all attributes.
211
+ # @return [Integer] Hash code
212
+ def hash
213
+ [status, results, num_errors, errors, requested_at, started_at, completed_at, links].hash
214
+ end
215
+
216
+ # Builds the object from hash
217
+ # @param [Hash] attributes Model attributes in the form of hash
218
+ # @return [Object] Returns the model itself
219
+ def self.build_from_hash(attributes)
220
+ new.build_from_hash(attributes)
221
+ end
222
+
223
+ # Builds the object from hash
224
+ # @param [Hash] attributes Model attributes in the form of hash
225
+ # @return [Object] Returns the model itself
226
+ def build_from_hash(attributes)
227
+ return nil unless attributes.is_a?(Hash)
228
+ self.class.openapi_types.each_pair do |key, type|
229
+ if type =~ /\AArray<(.*)>/i
230
+ # check to ensure the input is an array given that the attribute
231
+ # is documented as an array but the input is not
232
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
233
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
234
+ end
235
+ elsif !attributes[self.class.attribute_map[key]].nil?
236
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
237
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
238
+ end
239
+
240
+ self
241
+ end
242
+
243
+ # Deserializes the data based on type
244
+ # @param string type Data type
245
+ # @param string value Value to be deserialized
246
+ # @return [Object] Deserialized data
247
+ def _deserialize(type, value)
248
+ case type.to_sym
249
+ when :DateTime
250
+ DateTime.parse(value)
251
+ when :Date
252
+ Date.parse(value)
253
+ when :String
254
+ value.to_s
255
+ when :Integer
256
+ value.to_i
257
+ when :Float
258
+ value.to_f
259
+ when :Boolean
260
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
261
+ true
262
+ else
263
+ false
264
+ end
265
+ when :Object
266
+ # generic object (usually a Hash), return directly
267
+ value
268
+ when /\AArray<(?<inner_type>.+)>\z/
269
+ inner_type = Regexp.last_match[:inner_type]
270
+ value.map { |v| _deserialize(inner_type, v) }
271
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
272
+ k_type = Regexp.last_match[:k_type]
273
+ v_type = Regexp.last_match[:v_type]
274
+ {}.tap do |hash|
275
+ value.each do |k, v|
276
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
277
+ end
278
+ end
279
+ else # model
280
+ Hubspot::Webhooks.const_get(type).build_from_hash(value)
281
+ end
282
+ end
283
+
284
+ # Returns the string representation of the object
285
+ # @return [String] String presentation of the object
286
+ def to_s
287
+ to_hash.to_s
288
+ end
289
+
290
+ # to_body is an alias to to_hash (backward compatibility)
291
+ # @return [Hash] Returns the object in the form of hash
292
+ def to_body
293
+ to_hash
294
+ end
295
+
296
+ # Returns the object in the form of hash
297
+ # @return [Hash] Returns the object in the form of hash
298
+ def to_hash
299
+ hash = {}
300
+ self.class.attribute_map.each_pair do |attr, param|
301
+ value = self.send(attr)
302
+ if value.nil?
303
+ is_nullable = self.class.openapi_nullable.include?(attr)
304
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
305
+ end
306
+
307
+ hash[param] = _to_hash(value)
308
+ end
309
+ hash
310
+ end
311
+
312
+ # Outputs non-array value in the form of hash
313
+ # For object, use to_hash. Otherwise, just return the value
314
+ # @param [Object] value Any valid value
315
+ # @return [Hash] Returns the value in the form of hash
316
+ def _to_hash(value)
317
+ if value.is_a?(Array)
318
+ value.compact.map { |v| _to_hash(v) }
319
+ elsif value.is_a?(Hash)
320
+ {}.tap do |hash|
321
+ value.each { |k, v| hash[k] = _to_hash(v) }
322
+ end
323
+ elsif value.respond_to? :to_hash
324
+ value.to_hash
325
+ else
326
+ value
327
+ end
328
+ end
329
+ end
330
+ end
331
+ end