onesignal 5.6.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile.lock +2 -2
  4. data/README.md +3 -3
  5. data/docs/DefaultApi.md +496 -89
  6. data/lib/onesignal/api/default_api.rb +1 -1
  7. data/lib/onesignal/api_client.rb +2 -2
  8. data/lib/onesignal/api_error.rb +50 -1
  9. data/lib/onesignal/configuration.rb +1 -1
  10. data/lib/onesignal/errors.rb +23 -0
  11. data/lib/onesignal/helpers.rb +92 -0
  12. data/lib/onesignal/models/api_key_token.rb +1 -1
  13. data/lib/onesignal/models/api_key_tokens_list_response.rb +1 -1
  14. data/lib/onesignal/models/app.rb +1 -1
  15. data/lib/onesignal/models/basic_notification.rb +1 -1
  16. data/lib/onesignal/models/basic_notification_all_of.rb +1 -1
  17. data/lib/onesignal/models/basic_notification_all_of_android_background_layout.rb +1 -1
  18. data/lib/onesignal/models/button.rb +1 -1
  19. data/lib/onesignal/models/copy_template_request.rb +1 -1
  20. data/lib/onesignal/models/create_api_key_request.rb +1 -1
  21. data/lib/onesignal/models/create_api_key_response.rb +1 -1
  22. data/lib/onesignal/models/create_notification_success_response.rb +1 -1
  23. data/lib/onesignal/models/create_segment_conflict_response.rb +1 -1
  24. data/lib/onesignal/models/create_segment_success_response.rb +1 -1
  25. data/lib/onesignal/models/create_template_request.rb +1 -1
  26. data/lib/onesignal/models/create_user_conflict_response.rb +1 -1
  27. data/lib/onesignal/models/create_user_conflict_response_errors_inner.rb +1 -1
  28. data/lib/onesignal/models/create_user_conflict_response_errors_items_meta.rb +1 -1
  29. data/lib/onesignal/models/custom_event.rb +1 -1
  30. data/lib/onesignal/models/custom_events_request.rb +1 -1
  31. data/lib/onesignal/models/delivery_data.rb +1 -1
  32. data/lib/onesignal/models/export_events_success_response.rb +1 -1
  33. data/lib/onesignal/models/export_subscriptions_request_body.rb +1 -1
  34. data/lib/onesignal/models/export_subscriptions_success_response.rb +1 -1
  35. data/lib/onesignal/models/filter.rb +1 -1
  36. data/lib/onesignal/models/filter_expression.rb +1 -1
  37. data/lib/onesignal/models/generic_error.rb +1 -1
  38. data/lib/onesignal/models/generic_success_bool_response.rb +1 -1
  39. data/lib/onesignal/models/get_notification_history_request_body.rb +1 -1
  40. data/lib/onesignal/models/get_segments_success_response.rb +1 -1
  41. data/lib/onesignal/models/language_string_map.rb +1 -1
  42. data/lib/onesignal/models/notification.rb +1 -1
  43. data/lib/onesignal/models/notification_all_of.rb +1 -1
  44. data/lib/onesignal/models/notification_history_success_response.rb +1 -1
  45. data/lib/onesignal/models/notification_slice.rb +1 -1
  46. data/lib/onesignal/models/notification_target.rb +1 -1
  47. data/lib/onesignal/models/notification_with_meta.rb +1 -1
  48. data/lib/onesignal/models/notification_with_meta_all_of.rb +1 -1
  49. data/lib/onesignal/models/operator.rb +1 -1
  50. data/lib/onesignal/models/outcome_data.rb +1 -1
  51. data/lib/onesignal/models/outcomes_data.rb +1 -1
  52. data/lib/onesignal/models/platform_delivery_data.rb +1 -1
  53. data/lib/onesignal/models/platform_delivery_data_email_all_of.rb +1 -1
  54. data/lib/onesignal/models/platform_delivery_data_sms_all_of.rb +1 -1
  55. data/lib/onesignal/models/properties_body.rb +1 -1
  56. data/lib/onesignal/models/properties_deltas.rb +1 -1
  57. data/lib/onesignal/models/properties_object.rb +1 -1
  58. data/lib/onesignal/models/purchase.rb +1 -1
  59. data/lib/onesignal/models/rate_limit_error.rb +1 -1
  60. data/lib/onesignal/models/segment.rb +1 -1
  61. data/lib/onesignal/models/segment_data.rb +1 -1
  62. data/lib/onesignal/models/segment_notification_target.rb +1 -1
  63. data/lib/onesignal/models/start_live_activity_request.rb +1 -1
  64. data/lib/onesignal/models/start_live_activity_success_response.rb +1 -1
  65. data/lib/onesignal/models/subscription.rb +1 -1
  66. data/lib/onesignal/models/subscription_body.rb +1 -1
  67. data/lib/onesignal/models/subscription_notification_target.rb +1 -1
  68. data/lib/onesignal/models/template_resource.rb +1 -1
  69. data/lib/onesignal/models/templates_list_response.rb +1 -1
  70. data/lib/onesignal/models/transfer_subscription_request_body.rb +1 -1
  71. data/lib/onesignal/models/update_api_key_request.rb +1 -1
  72. data/lib/onesignal/models/update_live_activity_request.rb +1 -1
  73. data/lib/onesignal/models/update_live_activity_success_response.rb +1 -1
  74. data/lib/onesignal/models/update_template_request.rb +1 -1
  75. data/lib/onesignal/models/update_user_request.rb +1 -1
  76. data/lib/onesignal/models/user.rb +1 -1
  77. data/lib/onesignal/models/user_identity_body.rb +1 -1
  78. data/lib/onesignal/models/web_button.rb +1 -1
  79. data/lib/onesignal/version.rb +2 -2
  80. data/lib/onesignal.rb +3 -1
  81. data/onesignal.gemspec +1 -1
  82. data/spec/api/default_api_spec.rb +1 -1
  83. data/spec/api_client_spec.rb +1 -1
  84. data/spec/configuration_spec.rb +1 -1
  85. data/spec/models/api_key_token_spec.rb +1 -1
  86. data/spec/models/api_key_tokens_list_response_spec.rb +1 -1
  87. data/spec/models/app_spec.rb +1 -1
  88. data/spec/models/basic_notification_all_of_android_background_layout_spec.rb +1 -1
  89. data/spec/models/basic_notification_all_of_spec.rb +1 -1
  90. data/spec/models/basic_notification_spec.rb +1 -1
  91. data/spec/models/button_spec.rb +1 -1
  92. data/spec/models/copy_template_request_spec.rb +1 -1
  93. data/spec/models/create_api_key_request_spec.rb +1 -1
  94. data/spec/models/create_api_key_response_spec.rb +1 -1
  95. data/spec/models/create_notification_success_response_spec.rb +1 -1
  96. data/spec/models/create_segment_conflict_response_spec.rb +1 -1
  97. data/spec/models/create_segment_success_response_spec.rb +1 -1
  98. data/spec/models/create_template_request_spec.rb +1 -1
  99. data/spec/models/create_user_conflict_response_errors_inner_spec.rb +1 -1
  100. data/spec/models/create_user_conflict_response_errors_items_meta_spec.rb +1 -1
  101. data/spec/models/create_user_conflict_response_spec.rb +1 -1
  102. data/spec/models/custom_event_spec.rb +1 -1
  103. data/spec/models/custom_events_request_spec.rb +1 -1
  104. data/spec/models/delivery_data_spec.rb +1 -1
  105. data/spec/models/export_events_success_response_spec.rb +1 -1
  106. data/spec/models/export_subscriptions_request_body_spec.rb +1 -1
  107. data/spec/models/export_subscriptions_success_response_spec.rb +1 -1
  108. data/spec/models/filter_expression_spec.rb +1 -1
  109. data/spec/models/filter_spec.rb +1 -1
  110. data/spec/models/generic_error_spec.rb +1 -1
  111. data/spec/models/generic_success_bool_response_spec.rb +1 -1
  112. data/spec/models/get_notification_history_request_body_spec.rb +1 -1
  113. data/spec/models/get_segments_success_response_spec.rb +1 -1
  114. data/spec/models/language_string_map_spec.rb +1 -1
  115. data/spec/models/notification_all_of_spec.rb +1 -1
  116. data/spec/models/notification_history_success_response_spec.rb +1 -1
  117. data/spec/models/notification_slice_spec.rb +1 -1
  118. data/spec/models/notification_spec.rb +1 -1
  119. data/spec/models/notification_target_spec.rb +1 -1
  120. data/spec/models/notification_with_meta_all_of_spec.rb +1 -1
  121. data/spec/models/notification_with_meta_spec.rb +1 -1
  122. data/spec/models/operator_spec.rb +1 -1
  123. data/spec/models/outcome_data_spec.rb +1 -1
  124. data/spec/models/outcomes_data_spec.rb +1 -1
  125. data/spec/models/platform_delivery_data_email_all_of_spec.rb +1 -1
  126. data/spec/models/platform_delivery_data_sms_all_of_spec.rb +1 -1
  127. data/spec/models/platform_delivery_data_spec.rb +1 -1
  128. data/spec/models/properties_body_spec.rb +1 -1
  129. data/spec/models/properties_deltas_spec.rb +1 -1
  130. data/spec/models/properties_object_spec.rb +1 -1
  131. data/spec/models/purchase_spec.rb +1 -1
  132. data/spec/models/rate_limit_error_spec.rb +1 -1
  133. data/spec/models/segment_data_spec.rb +1 -1
  134. data/spec/models/segment_notification_target_spec.rb +1 -1
  135. data/spec/models/segment_spec.rb +1 -1
  136. data/spec/models/start_live_activity_request_spec.rb +1 -1
  137. data/spec/models/start_live_activity_success_response_spec.rb +1 -1
  138. data/spec/models/subscription_body_spec.rb +1 -1
  139. data/spec/models/subscription_notification_target_spec.rb +1 -1
  140. data/spec/models/subscription_spec.rb +1 -1
  141. data/spec/models/template_resource_spec.rb +1 -1
  142. data/spec/models/templates_list_response_spec.rb +1 -1
  143. data/spec/models/transfer_subscription_request_body_spec.rb +1 -1
  144. data/spec/models/update_api_key_request_spec.rb +1 -1
  145. data/spec/models/update_live_activity_request_spec.rb +1 -1
  146. data/spec/models/update_live_activity_success_response_spec.rb +1 -1
  147. data/spec/models/update_template_request_spec.rb +1 -1
  148. data/spec/models/update_user_request_spec.rb +1 -1
  149. data/spec/models/user_identity_body_spec.rb +1 -1
  150. data/spec/models/user_spec.rb +1 -1
  151. data/spec/models/web_button_spec.rb +1 -1
  152. data/spec/spec_helper.rb +1 -1
  153. data/vendor/bundle/ruby/3.2.0/cache/psych-5.4.0.gem +0 -0
  154. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-13.0.0/gem_make.out +5 -5
  155. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.5.1/gem_make.out +5 -5
  156. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/io-console-0.8.2/gem_make.out +5 -5
  157. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/io-console-0.8.2/mkmf.log +3 -3
  158. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/jaro_winkler-1.5.6/gem_make.out +5 -5
  159. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-5.4.0/gem_make.out +28 -0
  160. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{psych-5.3.1 → psych-5.4.0}/psych.so +0 -0
  161. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/racc-1.8.1/gem_make.out +5 -5
  162. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.2.0/gem_make.out +5 -5
  163. data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/README.md +2 -2
  164. data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.c +14 -3
  165. data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/versions.rb +1 -1
  166. data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.so +0 -0
  167. data/vendor/bundle/ruby/3.2.0/specifications/{psych-5.3.1.gemspec → psych-5.4.0.gemspec} +2 -2
  168. metadata +114 -112
  169. data/vendor/bundle/ruby/3.2.0/cache/psych-5.3.1.gem +0 -0
  170. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-5.3.1/gem_make.out +0 -28
  171. /data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{psych-5.3.1 → psych-5.4.0}/gem.build_complete +0 -0
  172. /data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{psych-5.3.1 → psych-5.4.0}/mkmf.log +0 -0
  173. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/CONTRIBUTING.md +0 -0
  174. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/LICENSE +0 -0
  175. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/Makefile +0 -0
  176. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/depend +0 -0
  177. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/extconf.rb +0 -0
  178. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.c +0 -0
  179. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.h +0 -0
  180. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.c +0 -0
  181. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.h +0 -0
  182. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.h +0 -0
  183. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.c +0 -0
  184. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.h +0 -0
  185. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.c +0 -0
  186. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.h +0 -0
  187. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/class_loader.rb +0 -0
  188. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/coder.rb +0 -0
  189. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/core_ext.rb +0 -0
  190. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/exception.rb +0 -0
  191. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handler.rb +0 -0
  192. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/document_stream.rb +0 -0
  193. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/recorder.rb +0 -0
  194. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/ruby_events.rb +0 -0
  195. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/stream.rb +0 -0
  196. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/tree_builder.rb +0 -0
  197. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/yaml_events.rb +0 -0
  198. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/alias.rb +0 -0
  199. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/document.rb +0 -0
  200. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/mapping.rb +0 -0
  201. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/node.rb +0 -0
  202. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/scalar.rb +0 -0
  203. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/sequence.rb +0 -0
  204. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/stream.rb +0 -0
  205. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes.rb +0 -0
  206. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/omap.rb +0 -0
  207. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/parser.rb +0 -0
  208. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/scalar_scanner.rb +0 -0
  209. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/set.rb +0 -0
  210. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/stream.rb +0 -0
  211. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/streaming.rb +0 -0
  212. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/syntax_error.rb +0 -0
  213. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/tree_builder.rb +0 -0
  214. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/depth_first.rb +0 -0
  215. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/emitter.rb +0 -0
  216. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/json_tree.rb +0 -0
  217. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/to_ruby.rb +0 -0
  218. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/visitor.rb +0 -0
  219. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/yaml_tree.rb +0 -0
  220. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors.rb +0 -0
  221. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/y.rb +0 -0
  222. /data/vendor/bundle/ruby/3.2.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.rb +0 -0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -90,7 +90,7 @@ module OneSignal
90
90
  url = build_request_url(path, opts)
91
91
  http_method = http_method.to_sym.downcase
92
92
 
93
- opts[:header_params]['OS-Usage-Data'] = 'kind=sdk, sdk-name=onesignal-ruby, version=5.6.0'
93
+ opts[:header_params]['OS-Usage-Data'] = 'kind=sdk, sdk-name=onesignal-ruby, version=5.7.0'
94
94
  header_params = @default_headers.merge(opts[:header_params] || {})
95
95
  query_params = opts[:query_params] || {}
96
96
  form_params = opts[:form_params] || {}
@@ -3,13 +3,15 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
13
+ require 'json'
14
+
13
15
  module OneSignal
14
16
  class ApiError < StandardError
15
17
  attr_reader :code, :response_headers, :response_body
@@ -53,5 +55,52 @@ module OneSignal
53
55
 
54
56
  msg
55
57
  end
58
+
59
+ # The error messages carried by the response body, normalized to a flat
60
+ # Array<String> regardless of which envelope shape the API returned
61
+ # (`{ errors: "..." }`, `{ errors: ["..."] }`, `{ errors: [{ code:, title: }] }`,
62
+ # or an object map such as `{ errors: { invalid_aliases: {...} } }`, surfaced
63
+ # as `"<key>: <value>"` entries). Returns an empty array when the body is not
64
+ # a recognizable error envelope. The raw body remains on +response_body+.
65
+ #
66
+ # @return [Array<String>]
67
+ def error_messages
68
+ parsed = if response_body.is_a?(String)
69
+ begin
70
+ JSON.parse(response_body)
71
+ rescue JSON::ParserError, TypeError
72
+ nil
73
+ end
74
+ else
75
+ response_body
76
+ end
77
+ return [] unless parsed.is_a?(Hash)
78
+
79
+ errors = parsed['errors'] || parsed[:errors]
80
+ case errors
81
+ when String
82
+ [errors]
83
+ when Array
84
+ errors.map do |e|
85
+ if e.is_a?(String)
86
+ e
87
+ elsif e.is_a?(Hash)
88
+ title = e['title'] || e[:title]
89
+ title = nil if title == ''
90
+ title || e['code'] || e[:code]
91
+ end
92
+ end.compact
93
+ when Hash
94
+ # Object-shaped envelopes (e.g. { invalid_aliases: {...} }) carry data
95
+ # under arbitrary keys; surface each so it isn't silently dropped. Key
96
+ # order is unspecified, so sort for deterministic output.
97
+ errors.map do |key, value|
98
+ rendered = value.is_a?(String) ? value : value.to_json
99
+ "#{key}: #{rendered}"
100
+ end.sort
101
+ else
102
+ []
103
+ end
104
+ end
56
105
  end
57
106
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -0,0 +1,23 @@
1
+ # Generated from inputs/api/error-catalog.json. Do not edit by hand.
2
+
3
+ module OneSignal
4
+ # Sentinel error message strings the OneSignal API can return. Each
5
+ # constant equals the literal message the server emits, so you can test
6
+ # membership against ApiError#error_messages (e.g. NO_TARGETING_SPECIFIED).
7
+ #
8
+ # Note: 200-status sentinels such as NO_SUBSCRIBERS arrive on a successful
9
+ # response, not via the exception accessor — read the response's errors
10
+ # field for those.
11
+ module Errors
12
+ # HTTP 403 | retryable: no | emitted by: any API-key-authenticated endpoint (REST or Organization key) | note: Generic auth-failure message the public api.onesignal.com edge returns for any invalid or mismatched key — REST or Organization — so a single sentinel covers both. Supersedes the Rails-monolith INVALID_REST_API_KEY / INVALID_USER_AUTH_KEY strings, which the public host no longer returns verbatim. Note the double space after 'denied.'
13
+ INVALID_API_KEY = 'Access denied. Please include an \'Authorization: ...\' header with a valid API key (https://documentation.onesignal.com/docs/en/keys-and-ids#api-keys).'.freeze
14
+ # HTTP 400, 404 | retryable: no | emitted by: POST /notifications/{id}/history, POST /notifications/{id}/messages, GET /notifications/{id} (export) | note: Verified live 2026-06-16: GET /notifications/{bogus-uuid} returns 404 with this exact message.
15
+ NOTIFICATION_NOT_FOUND = 'Notification not found'.freeze
16
+ # HTTP 200 | retryable: no | emitted by: POST /notifications | note: Returned with HTTP 200 OK (id is empty), not an error status. The flagship case for the errorMessages accessor — lets callers distinguish a sent notification from a no-op without parsing the polymorphic 200 body.
17
+ NO_SUBSCRIBERS = 'All included players are not subscribed'.freeze
18
+ # HTTP 400 | retryable: no | emitted by: POST /notifications | note: Verified live 2026-06-16: a no-targeting POST /notifications returns 400 with this exact message.
19
+ NO_TARGETING_SPECIFIED = 'You must include which players, segments, or tags you wish to send this notification to.'.freeze
20
+ # HTTP 503 | retryable: yes | emitted by: any endpoint (pgbouncer rejection) | note: Transient DB/pgbouncer failure — the canonical retryable sentinel.
21
+ SERVICE_UNAVAILABLE = 'Service temporarily unavailable'.freeze
22
+ end
23
+ end
@@ -0,0 +1,92 @@
1
+ require 'securerandom'
2
+
3
+ module OneSignal
4
+ # Helpers for common OneSignal API usage patterns.
5
+ module Helpers
6
+ CreateNotificationWithRetryResult = Struct.new(:response, :was_replayed)
7
+
8
+ RETRYABLE_CODES = [429, 503].freeze
9
+ MIN_BASE_DELAY = 1.0
10
+ MAX_BASE_DELAY = 60.0
11
+
12
+ # Create a notification with safe, idempotent retries.
13
+ #
14
+ # Ensures +notification.idempotency_key+ is set (generating a UUIDv4 when
15
+ # absent) so the server can deduplicate, then calls +create_notification+.
16
+ # Transient failures (HTTP 429, HTTP 503, or connection-level errors) are
17
+ # retried up to +max_retries+ times with the SAME idempotency key,
18
+ # honoring the +Retry-After+ response header when present and falling back
19
+ # to exponential backoff (+base_delay * 2**attempt+ seconds) otherwise.
20
+ # Other errors are raised immediately.
21
+ #
22
+ # @param api [DefaultApi] the API instance to call through
23
+ # @param notification [Notification] an existing idempotency_key is
24
+ # respected, never overwritten
25
+ # @param max_retries [Integer] retries after the initial attempt
26
+ # @param base_delay [Float] backoff base in seconds when Retry-After is
27
+ # absent; clamped to [1.0, 60.0]
28
+ # @return [CreateNotificationWithRetryResult] +response+ holds the
29
+ # CreateNotificationSuccessResponse; +was_replayed+ is true when the
30
+ # server answered from a previously completed request, as signaled by
31
+ # the +Idempotent-Replayed+ response header
32
+ def self.create_notification_with_retry(api, notification, max_retries: 3, base_delay: 1.0)
33
+ if notification.idempotency_key.nil? || notification.idempotency_key.to_s.empty?
34
+ notification.idempotency_key = SecureRandom.uuid
35
+ end
36
+
37
+ # Clamp the backoff base so a stray value can neither hammer the API
38
+ # (too small) nor stall the caller for an unbounded stretch (too large).
39
+ base_delay = [[base_delay, MIN_BASE_DELAY].max, MAX_BASE_DELAY].min
40
+
41
+ attempt = 0
42
+ begin
43
+ data, _status, headers = api.create_notification_with_http_info(notification)
44
+ CreateNotificationWithRetryResult.new(data, replayed?(headers))
45
+ rescue ApiError => e
46
+ # code nil/0 covers connection timeouts and libcurl-level failures.
47
+ retryable = e.code.nil? || e.code.zero? || RETRYABLE_CODES.include?(e.code)
48
+ raise if !retryable || attempt >= max_retries
49
+
50
+ delay = retry_delay(e.response_headers, attempt, base_delay)
51
+ sleep(delay) if delay > 0
52
+ attempt += 1
53
+ retry
54
+ end
55
+ end
56
+
57
+ def self.header_value(headers, name)
58
+ return nil unless headers.respond_to?(:each_pair)
59
+
60
+ headers.each_pair do |key, value|
61
+ return value if key.to_s.downcase == name
62
+ end
63
+ nil
64
+ end
65
+ private_class_method :header_value
66
+
67
+ def self.replayed?(headers)
68
+ header_value(headers, 'idempotent-replayed').to_s.strip.downcase == 'true'
69
+ end
70
+ private_class_method :replayed?
71
+
72
+ def self.retry_delay(headers, attempt, base_delay)
73
+ retry_after = header_value(headers, 'retry-after')
74
+ if retry_after && retry_after.to_s.strip.match?(/\A\d+(\.\d+)?\z/)
75
+ return retry_after.to_f
76
+ end
77
+
78
+ base_delay * (2**attempt)
79
+ end
80
+ private_class_method :retry_delay
81
+ end
82
+
83
+ # Surface the idempotent-retry helper as an instance method so the call
84
+ # mirrors +create_notification+. Delegates to Helpers (single source of
85
+ # truth); reopening is load-order independent since the body runs at call
86
+ # time. See Helpers.create_notification_with_retry for the full contract.
87
+ class DefaultApi
88
+ def create_notification_with_retry(notification, max_retries: 3, base_delay: 1.0)
89
+ Helpers.create_notification_with_retry(self, notification, max_retries: max_retries, base_delay: base_delay)
90
+ end
91
+ end
92
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 5.6.0
6
+ The version of the OpenAPI document: 5.7.0
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 6.0.0-SNAPSHOT