knockapi 0.6.1 → 1.0.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 (668) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +20 -0
  4. data/README.md +157 -94
  5. data/SECURITY.md +27 -0
  6. data/lib/knockapi/client.rb +122 -0
  7. data/lib/knockapi/errors.rb +192 -0
  8. data/lib/knockapi/file_part.rb +55 -0
  9. data/lib/knockapi/internal/entries_cursor.rb +101 -0
  10. data/lib/knockapi/internal/items_cursor.rb +101 -0
  11. data/lib/knockapi/internal/ms_teams_pagination.rb +86 -0
  12. data/lib/knockapi/internal/slack_channels_cursor.rb +86 -0
  13. data/lib/knockapi/internal/transport/base_client.rb +483 -0
  14. data/lib/knockapi/internal/transport/pooled_net_requester.rb +193 -0
  15. data/lib/knockapi/internal/type/array_of.rb +154 -0
  16. data/lib/knockapi/internal/type/base_model.rb +445 -0
  17. data/lib/knockapi/internal/type/base_page.rb +55 -0
  18. data/lib/knockapi/internal/type/boolean.rb +63 -0
  19. data/lib/knockapi/internal/type/converter.rb +274 -0
  20. data/lib/knockapi/internal/type/enum.rb +107 -0
  21. data/lib/knockapi/internal/type/file_input.rb +96 -0
  22. data/lib/knockapi/internal/type/hash_of.rb +174 -0
  23. data/lib/knockapi/internal/type/request_parameters.rb +48 -0
  24. data/lib/knockapi/internal/type/union.rb +225 -0
  25. data/lib/knockapi/internal/type/unknown.rb +67 -0
  26. data/lib/knockapi/internal/util.rb +790 -0
  27. data/lib/knockapi/internal.rb +11 -0
  28. data/lib/knockapi/models/activity.rb +70 -0
  29. data/lib/knockapi/models/audience_add_members_params.rb +55 -0
  30. data/lib/knockapi/models/audience_list_members_params.rb +14 -0
  31. data/lib/knockapi/models/audience_list_members_response.rb +27 -0
  32. data/lib/knockapi/models/audience_member.rb +56 -0
  33. data/lib/knockapi/models/audience_remove_members_params.rb +55 -0
  34. data/lib/knockapi/models/bulk_operation.rb +166 -0
  35. data/lib/knockapi/models/bulk_operation_get_params.rb +14 -0
  36. data/lib/knockapi/models/channels/bulk_update_message_status_params.rb +167 -0
  37. data/lib/knockapi/models/condition.rb +63 -0
  38. data/lib/knockapi/models/identify_user_request.rb +98 -0
  39. data/lib/knockapi/models/inline_identify_user_request.rb +49 -0
  40. data/lib/knockapi/models/inline_object_request.rb +54 -0
  41. data/lib/knockapi/models/inline_tenant_request.rb +19 -0
  42. data/lib/knockapi/models/integrations/census_custom_destination_params.rb +48 -0
  43. data/lib/knockapi/models/integrations/census_custom_destination_response.rb +27 -0
  44. data/lib/knockapi/models/integrations/hightouch_embedded_destination_params.rb +48 -0
  45. data/lib/knockapi/models/integrations/hightouch_embedded_destination_response.rb +27 -0
  46. data/lib/knockapi/models/message.rb +268 -0
  47. data/lib/knockapi/models/message_archive_params.rb +14 -0
  48. data/lib/knockapi/models/message_delivery_log.rb +202 -0
  49. data/lib/knockapi/models/message_event.rb +91 -0
  50. data/lib/knockapi/models/message_get_content_params.rb +14 -0
  51. data/lib/knockapi/models/message_get_content_response.rb +496 -0
  52. data/lib/knockapi/models/message_get_params.rb +14 -0
  53. data/lib/knockapi/models/message_list_activities_params.rb +46 -0
  54. data/lib/knockapi/models/message_list_delivery_logs_params.rb +38 -0
  55. data/lib/knockapi/models/message_list_events_params.rb +38 -0
  56. data/lib/knockapi/models/message_list_params.rb +200 -0
  57. data/lib/knockapi/models/message_mark_as_interacted_params.rb +22 -0
  58. data/lib/knockapi/models/message_mark_as_read_params.rb +14 -0
  59. data/lib/knockapi/models/message_mark_as_seen_params.rb +14 -0
  60. data/lib/knockapi/models/message_mark_as_unread_params.rb +14 -0
  61. data/lib/knockapi/models/message_mark_as_unseen_params.rb +14 -0
  62. data/lib/knockapi/models/message_unarchive_params.rb +14 -0
  63. data/lib/knockapi/models/messages/activity_list_params.rb +48 -0
  64. data/lib/knockapi/models/messages/batch_archive_params.rb +24 -0
  65. data/lib/knockapi/models/messages/batch_archive_response.rb +10 -0
  66. data/lib/knockapi/models/messages/batch_get_content_params.rb +24 -0
  67. data/lib/knockapi/models/messages/batch_get_content_response.rb +504 -0
  68. data/lib/knockapi/models/messages/batch_mark_as_interacted_params.rb +32 -0
  69. data/lib/knockapi/models/messages/batch_mark_as_interacted_response.rb +10 -0
  70. data/lib/knockapi/models/messages/batch_mark_as_read_params.rb +24 -0
  71. data/lib/knockapi/models/messages/batch_mark_as_read_response.rb +10 -0
  72. data/lib/knockapi/models/messages/batch_mark_as_seen_params.rb +24 -0
  73. data/lib/knockapi/models/messages/batch_mark_as_seen_response.rb +10 -0
  74. data/lib/knockapi/models/messages/batch_mark_as_unread_params.rb +24 -0
  75. data/lib/knockapi/models/messages/batch_mark_as_unread_response.rb +10 -0
  76. data/lib/knockapi/models/messages/batch_mark_as_unseen_params.rb +24 -0
  77. data/lib/knockapi/models/messages/batch_mark_as_unseen_response.rb +10 -0
  78. data/lib/knockapi/models/messages/batch_unarchive_params.rb +24 -0
  79. data/lib/knockapi/models/messages/batch_unarchive_response.rb +10 -0
  80. data/lib/knockapi/models/object.rb +51 -0
  81. data/lib/knockapi/models/object_add_subscriptions_params.rb +35 -0
  82. data/lib/knockapi/models/object_add_subscriptions_response.rb +9 -0
  83. data/lib/knockapi/models/object_delete_params.rb +14 -0
  84. data/lib/knockapi/models/object_delete_subscriptions_params.rb +28 -0
  85. data/lib/knockapi/models/object_delete_subscriptions_response.rb +9 -0
  86. data/lib/knockapi/models/object_get_channel_data_params.rb +14 -0
  87. data/lib/knockapi/models/object_get_params.rb +14 -0
  88. data/lib/knockapi/models/object_get_preferences_params.rb +14 -0
  89. data/lib/knockapi/models/object_list_messages_params.rb +200 -0
  90. data/lib/knockapi/models/object_list_params.rb +56 -0
  91. data/lib/knockapi/models/object_list_preferences_params.rb +14 -0
  92. data/lib/knockapi/models/object_list_preferences_response.rb +9 -0
  93. data/lib/knockapi/models/object_list_schedules_params.rb +54 -0
  94. data/lib/knockapi/models/object_list_subscriptions_params.rb +122 -0
  95. data/lib/knockapi/models/object_set_channel_data_params.rb +14 -0
  96. data/lib/knockapi/models/object_set_params.rb +57 -0
  97. data/lib/knockapi/models/object_set_preferences_params.rb +14 -0
  98. data/lib/knockapi/models/object_unset_channel_data_params.rb +14 -0
  99. data/lib/knockapi/models/objects/bulk_add_subscriptions_params.rb +52 -0
  100. data/lib/knockapi/models/objects/bulk_delete_params.rb +24 -0
  101. data/lib/knockapi/models/objects/bulk_set_params.rb +24 -0
  102. data/lib/knockapi/models/page_info.rb +42 -0
  103. data/lib/knockapi/models/providers/ms_team_check_auth_params.rb +24 -0
  104. data/lib/knockapi/models/providers/ms_team_check_auth_response.rb +43 -0
  105. data/lib/knockapi/models/providers/ms_team_list_channels_params.rb +66 -0
  106. data/lib/knockapi/models/providers/ms_team_list_channels_response.rb +74 -0
  107. data/lib/knockapi/models/providers/ms_team_list_teams_params.rb +78 -0
  108. data/lib/knockapi/models/providers/ms_team_list_teams_response.rb +35 -0
  109. data/lib/knockapi/models/providers/ms_team_revoke_access_params.rb +24 -0
  110. data/lib/knockapi/models/providers/ms_team_revoke_access_response.rb +21 -0
  111. data/lib/knockapi/models/providers/slack_check_auth_params.rb +24 -0
  112. data/lib/knockapi/models/providers/slack_check_auth_response.rb +43 -0
  113. data/lib/knockapi/models/providers/slack_list_channels_params.rb +83 -0
  114. data/lib/knockapi/models/providers/slack_list_channels_response.rb +53 -0
  115. data/lib/knockapi/models/providers/slack_revoke_access_params.rb +24 -0
  116. data/lib/knockapi/models/providers/slack_revoke_access_response.rb +21 -0
  117. data/lib/knockapi/models/recipient.rb +19 -0
  118. data/lib/knockapi/models/recipient_reference.rb +41 -0
  119. data/lib/knockapi/models/recipient_request.rb +24 -0
  120. data/lib/knockapi/models/recipients/channel_data.rb +88 -0
  121. data/lib/knockapi/models/recipients/channel_data_request.rb +45 -0
  122. data/lib/knockapi/models/recipients/discord_channel_data.rb +77 -0
  123. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +11 -0
  124. data/lib/knockapi/models/recipients/inline_preference_set_request.rb +11 -0
  125. data/lib/knockapi/models/recipients/ms_teams_channel_data.rb +108 -0
  126. data/lib/knockapi/models/recipients/one_signal_channel_data.rb +20 -0
  127. data/lib/knockapi/models/recipients/preference_set.rb +126 -0
  128. data/lib/knockapi/models/recipients/preference_set_channel_type_setting.rb +21 -0
  129. data/lib/knockapi/models/recipients/preference_set_channel_types.rb +150 -0
  130. data/lib/knockapi/models/recipients/preference_set_request.rb +117 -0
  131. data/lib/knockapi/models/recipients/push_channel_data.rb +20 -0
  132. data/lib/knockapi/models/recipients/slack_channel_data.rb +99 -0
  133. data/lib/knockapi/models/recipients/subscription.rb +60 -0
  134. data/lib/knockapi/models/schedule.rb +113 -0
  135. data/lib/knockapi/models/schedule_create_params.rb +75 -0
  136. data/lib/knockapi/models/schedule_create_response.rb +8 -0
  137. data/lib/knockapi/models/schedule_delete_params.rb +22 -0
  138. data/lib/knockapi/models/schedule_delete_response.rb +8 -0
  139. data/lib/knockapi/models/schedule_list_params.rb +62 -0
  140. data/lib/knockapi/models/schedule_repeat_rule.rb +99 -0
  141. data/lib/knockapi/models/schedule_update_params.rb +75 -0
  142. data/lib/knockapi/models/schedule_update_response.rb +8 -0
  143. data/lib/knockapi/models/schedules/bulk_create_params.rb +103 -0
  144. data/lib/knockapi/models/tenant.rb +115 -0
  145. data/lib/knockapi/models/tenant_delete_params.rb +14 -0
  146. data/lib/knockapi/models/tenant_get_params.rb +14 -0
  147. data/lib/knockapi/models/tenant_list_params.rb +54 -0
  148. data/lib/knockapi/models/tenant_request.rb +114 -0
  149. data/lib/knockapi/models/tenant_set_params.rb +108 -0
  150. data/lib/knockapi/models/tenants/bulk_delete_params.rb +24 -0
  151. data/lib/knockapi/models/tenants/bulk_set_params.rb +24 -0
  152. data/lib/knockapi/models/user.rb +94 -0
  153. data/lib/knockapi/models/user_delete_params.rb +14 -0
  154. data/lib/knockapi/models/user_get_channel_data_params.rb +14 -0
  155. data/lib/knockapi/models/user_get_params.rb +14 -0
  156. data/lib/knockapi/models/user_get_preferences_params.rb +22 -0
  157. data/lib/knockapi/models/user_list_messages_params.rb +200 -0
  158. data/lib/knockapi/models/user_list_params.rb +56 -0
  159. data/lib/knockapi/models/user_list_preferences_params.rb +14 -0
  160. data/lib/knockapi/models/user_list_preferences_response.rb +9 -0
  161. data/lib/knockapi/models/user_list_schedules_params.rb +54 -0
  162. data/lib/knockapi/models/user_list_subscriptions_params.rb +64 -0
  163. data/lib/knockapi/models/user_merge_params.rb +22 -0
  164. data/lib/knockapi/models/user_set_channel_data_params.rb +14 -0
  165. data/lib/knockapi/models/user_set_preferences_params.rb +14 -0
  166. data/lib/knockapi/models/user_unset_channel_data_params.rb +14 -0
  167. data/lib/knockapi/models/user_update_params.rb +14 -0
  168. data/lib/knockapi/models/users/bulk_delete_params.rb +24 -0
  169. data/lib/knockapi/models/users/bulk_identify_params.rb +24 -0
  170. data/lib/knockapi/models/users/bulk_set_preferences_params.rb +32 -0
  171. data/lib/knockapi/models/users/feed_get_settings_params.rb +16 -0
  172. data/lib/knockapi/models/users/feed_get_settings_response.rb +35 -0
  173. data/lib/knockapi/models/users/feed_list_items_params.rb +122 -0
  174. data/lib/knockapi/models/users/feed_list_items_response.rb +333 -0
  175. data/lib/knockapi/models/users/guide_get_channel_params.rb +40 -0
  176. data/lib/knockapi/models/users/guide_get_channel_response.rb +79 -0
  177. data/lib/knockapi/models/users/guide_mark_message_as_archived_params.rb +88 -0
  178. data/lib/knockapi/models/users/guide_mark_message_as_archived_response.rb +21 -0
  179. data/lib/knockapi/models/users/guide_mark_message_as_interacted_params.rb +88 -0
  180. data/lib/knockapi/models/users/guide_mark_message_as_interacted_response.rb +21 -0
  181. data/lib/knockapi/models/users/guide_mark_message_as_seen_params.rb +88 -0
  182. data/lib/knockapi/models/users/guide_mark_message_as_seen_response.rb +21 -0
  183. data/lib/knockapi/models/workflow_cancel_params.rb +42 -0
  184. data/lib/knockapi/models/workflow_trigger_params.rb +67 -0
  185. data/lib/knockapi/models/workflow_trigger_response.rb +24 -0
  186. data/lib/knockapi/request_options.rb +73 -0
  187. data/lib/knockapi/resources/audiences.rb +82 -0
  188. data/lib/knockapi/resources/bulk_operations.rb +34 -0
  189. data/lib/knockapi/resources/channels/bulk.rb +67 -0
  190. data/lib/knockapi/resources/channels.rb +18 -0
  191. data/lib/knockapi/resources/integrations/census.rb +44 -0
  192. data/lib/knockapi/resources/integrations/hightouch.rb +44 -0
  193. data/lib/knockapi/resources/integrations.rb +22 -0
  194. data/lib/knockapi/resources/messages/activities.rb +47 -0
  195. data/lib/knockapi/resources/messages/batch.rb +208 -0
  196. data/lib/knockapi/resources/messages.rb +365 -0
  197. data/lib/knockapi/resources/objects/bulk.rb +92 -0
  198. data/lib/knockapi/resources/objects.rb +508 -0
  199. data/lib/knockapi/resources/providers/ms_teams.rb +122 -0
  200. data/lib/knockapi/resources/providers/slack.rb +91 -0
  201. data/lib/knockapi/resources/providers.rb +22 -0
  202. data/lib/knockapi/resources/recipients/channel_data.rb +16 -0
  203. data/lib/knockapi/resources/recipients/preferences.rb +16 -0
  204. data/lib/knockapi/resources/recipients/subscriptions.rb +16 -0
  205. data/lib/knockapi/resources/recipients.rb +26 -0
  206. data/lib/knockapi/resources/schedules/bulk.rb +40 -0
  207. data/lib/knockapi/resources/schedules.rb +159 -0
  208. data/lib/knockapi/resources/shared.rb +14 -0
  209. data/lib/knockapi/resources/tenants/bulk.rb +60 -0
  210. data/lib/knockapi/resources/tenants.rb +118 -0
  211. data/lib/knockapi/resources/users/bulk.rb +89 -0
  212. data/lib/knockapi/resources/users/feeds.rb +84 -0
  213. data/lib/knockapi/resources/users/guides.rb +175 -0
  214. data/lib/knockapi/resources/users.rb +448 -0
  215. data/lib/knockapi/resources/workflows.rb +89 -0
  216. data/lib/knockapi/version.rb +5 -0
  217. data/lib/knockapi.rb +239 -0
  218. data/manifest.yaml +15 -0
  219. data/rbi/knockapi/client.rbi +84 -0
  220. data/rbi/knockapi/errors.rbi +143 -0
  221. data/rbi/knockapi/file_part.rbi +34 -0
  222. data/rbi/knockapi/internal/entries_cursor.rbi +35 -0
  223. data/rbi/knockapi/internal/items_cursor.rbi +35 -0
  224. data/rbi/knockapi/internal/ms_teams_pagination.rbi +21 -0
  225. data/rbi/knockapi/internal/slack_channels_cursor.rbi +21 -0
  226. data/rbi/knockapi/internal/transport/base_client.rbi +213 -0
  227. data/rbi/knockapi/internal/transport/pooled_net_requester.rbi +60 -0
  228. data/rbi/knockapi/internal/type/array_of.rbi +88 -0
  229. data/rbi/knockapi/internal/type/base_model.rbi +219 -0
  230. data/rbi/knockapi/internal/type/base_page.rbi +38 -0
  231. data/rbi/knockapi/internal/type/boolean.rbi +48 -0
  232. data/rbi/knockapi/internal/type/converter.rbi +120 -0
  233. data/rbi/knockapi/internal/type/enum.rbi +64 -0
  234. data/rbi/knockapi/internal/type/file_input.rbi +50 -0
  235. data/rbi/knockapi/internal/type/hash_of.rbi +88 -0
  236. data/rbi/knockapi/internal/type/request_parameters.rbi +21 -0
  237. data/rbi/knockapi/internal/type/union.rbi +75 -0
  238. data/rbi/knockapi/internal/type/unknown.rbi +40 -0
  239. data/rbi/knockapi/internal/util.rbi +299 -0
  240. data/rbi/knockapi/internal.rbi +11 -0
  241. data/rbi/knockapi/models/activity.rbi +101 -0
  242. data/rbi/knockapi/models/audience_add_members_params.rbi +88 -0
  243. data/rbi/knockapi/models/audience_list_members_params.rbi +19 -0
  244. data/rbi/knockapi/models/audience_list_members_response.rbi +38 -0
  245. data/rbi/knockapi/models/audience_member.rbi +65 -0
  246. data/rbi/knockapi/models/audience_remove_members_params.rbi +90 -0
  247. data/rbi/knockapi/models/bulk_operation.rbi +194 -0
  248. data/rbi/knockapi/models/bulk_operation_get_params.rbi +19 -0
  249. data/rbi/knockapi/models/channels/bulk_update_message_status_params.rbi +287 -0
  250. data/rbi/knockapi/models/condition.rbi +77 -0
  251. data/rbi/knockapi/models/identify_user_request.rbi +110 -0
  252. data/rbi/knockapi/models/inline_identify_user_request.rbi +63 -0
  253. data/rbi/knockapi/models/inline_object_request.rbi +68 -0
  254. data/rbi/knockapi/models/inline_tenant_request.rbi +13 -0
  255. data/rbi/knockapi/models/integrations/census_custom_destination_params.rbi +66 -0
  256. data/rbi/knockapi/models/integrations/census_custom_destination_response.rbi +33 -0
  257. data/rbi/knockapi/models/integrations/hightouch_embedded_destination_params.rbi +66 -0
  258. data/rbi/knockapi/models/integrations/hightouch_embedded_destination_response.rbi +33 -0
  259. data/rbi/knockapi/models/message.rbi +322 -0
  260. data/rbi/knockapi/models/message_archive_params.rbi +19 -0
  261. data/rbi/knockapi/models/message_delivery_log.rbi +260 -0
  262. data/rbi/knockapi/models/message_event.rbi +103 -0
  263. data/rbi/knockapi/models/message_get_content_params.rbi +19 -0
  264. data/rbi/knockapi/models/message_get_content_response.rbi +738 -0
  265. data/rbi/knockapi/models/message_get_params.rbi +19 -0
  266. data/rbi/knockapi/models/message_list_activities_params.rbi +73 -0
  267. data/rbi/knockapi/models/message_list_delivery_logs_params.rbi +60 -0
  268. data/rbi/knockapi/models/message_list_events_params.rbi +60 -0
  269. data/rbi/knockapi/models/message_list_params.rbi +271 -0
  270. data/rbi/knockapi/models/message_mark_as_interacted_params.rbi +34 -0
  271. data/rbi/knockapi/models/message_mark_as_read_params.rbi +19 -0
  272. data/rbi/knockapi/models/message_mark_as_seen_params.rbi +19 -0
  273. data/rbi/knockapi/models/message_mark_as_unread_params.rbi +19 -0
  274. data/rbi/knockapi/models/message_mark_as_unseen_params.rbi +19 -0
  275. data/rbi/knockapi/models/message_unarchive_params.rbi +19 -0
  276. data/rbi/knockapi/models/messages/activity_list_params.rbi +75 -0
  277. data/rbi/knockapi/models/messages/batch_archive_params.rbi +31 -0
  278. data/rbi/knockapi/models/messages/batch_archive_response.rbi +10 -0
  279. data/rbi/knockapi/models/messages/batch_get_content_params.rbi +31 -0
  280. data/rbi/knockapi/models/messages/batch_get_content_response.rbi +748 -0
  281. data/rbi/knockapi/models/messages/batch_mark_as_interacted_params.rbi +47 -0
  282. data/rbi/knockapi/models/messages/batch_mark_as_interacted_response.rbi +10 -0
  283. data/rbi/knockapi/models/messages/batch_mark_as_read_params.rbi +31 -0
  284. data/rbi/knockapi/models/messages/batch_mark_as_read_response.rbi +10 -0
  285. data/rbi/knockapi/models/messages/batch_mark_as_seen_params.rbi +31 -0
  286. data/rbi/knockapi/models/messages/batch_mark_as_seen_response.rbi +10 -0
  287. data/rbi/knockapi/models/messages/batch_mark_as_unread_params.rbi +31 -0
  288. data/rbi/knockapi/models/messages/batch_mark_as_unread_response.rbi +10 -0
  289. data/rbi/knockapi/models/messages/batch_mark_as_unseen_params.rbi +31 -0
  290. data/rbi/knockapi/models/messages/batch_mark_as_unseen_response.rbi +10 -0
  291. data/rbi/knockapi/models/messages/batch_unarchive_params.rbi +31 -0
  292. data/rbi/knockapi/models/messages/batch_unarchive_response.rbi +10 -0
  293. data/rbi/knockapi/models/object.rbi +58 -0
  294. data/rbi/knockapi/models/object_add_subscriptions_params.rbi +58 -0
  295. data/rbi/knockapi/models/object_add_subscriptions_response.rbi +11 -0
  296. data/rbi/knockapi/models/object_delete_params.rbi +19 -0
  297. data/rbi/knockapi/models/object_delete_subscriptions_params.rbi +39 -0
  298. data/rbi/knockapi/models/object_delete_subscriptions_response.rbi +11 -0
  299. data/rbi/knockapi/models/object_get_channel_data_params.rbi +19 -0
  300. data/rbi/knockapi/models/object_get_params.rbi +19 -0
  301. data/rbi/knockapi/models/object_get_preferences_params.rbi +19 -0
  302. data/rbi/knockapi/models/object_list_messages_params.rbi +281 -0
  303. data/rbi/knockapi/models/object_list_params.rbi +85 -0
  304. data/rbi/knockapi/models/object_list_preferences_params.rbi +19 -0
  305. data/rbi/knockapi/models/object_list_preferences_response.rbi +11 -0
  306. data/rbi/knockapi/models/object_list_schedules_params.rbi +84 -0
  307. data/rbi/knockapi/models/object_list_subscriptions_params.rbi +175 -0
  308. data/rbi/knockapi/models/object_set_channel_data_params.rbi +19 -0
  309. data/rbi/knockapi/models/object_set_params.rbi +85 -0
  310. data/rbi/knockapi/models/object_set_preferences_params.rbi +19 -0
  311. data/rbi/knockapi/models/object_unset_channel_data_params.rbi +19 -0
  312. data/rbi/knockapi/models/objects/bulk_add_subscriptions_params.rbi +86 -0
  313. data/rbi/knockapi/models/objects/bulk_delete_params.rbi +31 -0
  314. data/rbi/knockapi/models/objects/bulk_set_params.rbi +36 -0
  315. data/rbi/knockapi/models/page_info.rbi +49 -0
  316. data/rbi/knockapi/models/providers/ms_team_check_auth_params.rbi +31 -0
  317. data/rbi/knockapi/models/providers/ms_team_check_auth_response.rbi +56 -0
  318. data/rbi/knockapi/models/providers/ms_team_list_channels_params.rbi +91 -0
  319. data/rbi/knockapi/models/providers/ms_team_list_channels_response.rbi +113 -0
  320. data/rbi/knockapi/models/providers/ms_team_list_teams_params.rbi +107 -0
  321. data/rbi/knockapi/models/providers/ms_team_list_teams_response.rbi +35 -0
  322. data/rbi/knockapi/models/providers/ms_team_revoke_access_params.rbi +31 -0
  323. data/rbi/knockapi/models/providers/ms_team_revoke_access_response.rbi +25 -0
  324. data/rbi/knockapi/models/providers/slack_check_auth_params.rbi +31 -0
  325. data/rbi/knockapi/models/providers/slack_check_auth_response.rbi +56 -0
  326. data/rbi/knockapi/models/providers/slack_list_channels_params.rbi +130 -0
  327. data/rbi/knockapi/models/providers/slack_list_channels_response.rbi +58 -0
  328. data/rbi/knockapi/models/providers/slack_revoke_access_params.rbi +31 -0
  329. data/rbi/knockapi/models/providers/slack_revoke_access_response.rbi +25 -0
  330. data/rbi/knockapi/models/recipient.rbi +13 -0
  331. data/rbi/knockapi/models/recipient_reference.rbi +41 -0
  332. data/rbi/knockapi/models/recipient_request.rbi +18 -0
  333. data/rbi/knockapi/models/recipients/channel_data.rbi +125 -0
  334. data/rbi/knockapi/models/recipients/channel_data_request.rbi +70 -0
  335. data/rbi/knockapi/models/recipients/discord_channel_data.rbi +143 -0
  336. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +13 -0
  337. data/rbi/knockapi/models/recipients/inline_preference_set_request.rbi +13 -0
  338. data/rbi/knockapi/models/recipients/ms_teams_channel_data.rbi +186 -0
  339. data/rbi/knockapi/models/recipients/one_signal_channel_data.rbi +22 -0
  340. data/rbi/knockapi/models/recipients/preference_set.rbi +243 -0
  341. data/rbi/knockapi/models/recipients/preference_set_channel_type_setting.rbi +26 -0
  342. data/rbi/knockapi/models/recipients/preference_set_channel_types.rbi +218 -0
  343. data/rbi/knockapi/models/recipients/preference_set_request.rbi +234 -0
  344. data/rbi/knockapi/models/recipients/push_channel_data.rbi +22 -0
  345. data/rbi/knockapi/models/recipients/slack_channel_data.rbi +154 -0
  346. data/rbi/knockapi/models/recipients/subscription.rbi +77 -0
  347. data/rbi/knockapi/models/schedule.rbi +127 -0
  348. data/rbi/knockapi/models/schedule_create_params.rbi +98 -0
  349. data/rbi/knockapi/models/schedule_create_response.rbi +8 -0
  350. data/rbi/knockapi/models/schedule_delete_params.rbi +29 -0
  351. data/rbi/knockapi/models/schedule_delete_response.rbi +8 -0
  352. data/rbi/knockapi/models/schedule_list_params.rbi +92 -0
  353. data/rbi/knockapi/models/schedule_repeat_rule.rbi +118 -0
  354. data/rbi/knockapi/models/schedule_update_params.rbi +92 -0
  355. data/rbi/knockapi/models/schedule_update_response.rbi +8 -0
  356. data/rbi/knockapi/models/schedules/bulk_create_params.rbi +172 -0
  357. data/rbi/knockapi/models/tenant.rbi +162 -0
  358. data/rbi/knockapi/models/tenant_delete_params.rbi +19 -0
  359. data/rbi/knockapi/models/tenant_get_params.rbi +19 -0
  360. data/rbi/knockapi/models/tenant_list_params.rbi +84 -0
  361. data/rbi/knockapi/models/tenant_request.rbi +168 -0
  362. data/rbi/knockapi/models/tenant_set_params.rbi +166 -0
  363. data/rbi/knockapi/models/tenants/bulk_delete_params.rbi +31 -0
  364. data/rbi/knockapi/models/tenants/bulk_set_params.rbi +36 -0
  365. data/rbi/knockapi/models/user.rbi +106 -0
  366. data/rbi/knockapi/models/user_delete_params.rbi +19 -0
  367. data/rbi/knockapi/models/user_get_channel_data_params.rbi +19 -0
  368. data/rbi/knockapi/models/user_get_params.rbi +19 -0
  369. data/rbi/knockapi/models/user_get_preferences_params.rbi +29 -0
  370. data/rbi/knockapi/models/user_list_messages_params.rbi +277 -0
  371. data/rbi/knockapi/models/user_list_params.rbi +85 -0
  372. data/rbi/knockapi/models/user_list_preferences_params.rbi +19 -0
  373. data/rbi/knockapi/models/user_list_preferences_response.rbi +11 -0
  374. data/rbi/knockapi/models/user_list_schedules_params.rbi +84 -0
  375. data/rbi/knockapi/models/user_list_subscriptions_params.rbi +96 -0
  376. data/rbi/knockapi/models/user_merge_params.rbi +29 -0
  377. data/rbi/knockapi/models/user_set_channel_data_params.rbi +19 -0
  378. data/rbi/knockapi/models/user_set_preferences_params.rbi +19 -0
  379. data/rbi/knockapi/models/user_unset_channel_data_params.rbi +19 -0
  380. data/rbi/knockapi/models/user_update_params.rbi +19 -0
  381. data/rbi/knockapi/models/users/bulk_delete_params.rbi +31 -0
  382. data/rbi/knockapi/models/users/bulk_identify_params.rbi +36 -0
  383. data/rbi/knockapi/models/users/bulk_set_preferences_params.rbi +55 -0
  384. data/rbi/knockapi/models/users/feed_get_settings_params.rbi +21 -0
  385. data/rbi/knockapi/models/users/feed_get_settings_response.rbi +50 -0
  386. data/rbi/knockapi/models/users/feed_list_items_params.rbi +173 -0
  387. data/rbi/knockapi/models/users/feed_list_items_response.rbi +443 -0
  388. data/rbi/knockapi/models/users/guide_get_channel_params.rbi +63 -0
  389. data/rbi/knockapi/models/users/guide_get_channel_response.rbi +124 -0
  390. data/rbi/knockapi/models/users/guide_mark_message_as_archived_params.rbi +115 -0
  391. data/rbi/knockapi/models/users/guide_mark_message_as_archived_response.rbi +22 -0
  392. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_params.rbi +115 -0
  393. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_response.rbi +22 -0
  394. data/rbi/knockapi/models/users/guide_mark_message_as_seen_params.rbi +115 -0
  395. data/rbi/knockapi/models/users/guide_mark_message_as_seen_response.rbi +22 -0
  396. data/rbi/knockapi/models/workflow_cancel_params.rbi +57 -0
  397. data/rbi/knockapi/models/workflow_trigger_params.rbi +109 -0
  398. data/rbi/knockapi/models/workflow_trigger_response.rbi +22 -0
  399. data/rbi/knockapi/request_options.rbi +48 -0
  400. data/rbi/knockapi/resources/audiences.rbi +53 -0
  401. data/rbi/knockapi/resources/bulk_operations.rbi +18 -0
  402. data/rbi/knockapi/resources/channels/bulk.rbi +64 -0
  403. data/rbi/knockapi/resources/channels.rbi +14 -0
  404. data/rbi/knockapi/resources/integrations/census.rbi +35 -0
  405. data/rbi/knockapi/resources/integrations/hightouch.rbi +35 -0
  406. data/rbi/knockapi/resources/integrations.rbi +17 -0
  407. data/rbi/knockapi/resources/messages/activities.rbi +38 -0
  408. data/rbi/knockapi/resources/messages/batch.rbi +113 -0
  409. data/rbi/knockapi/resources/messages.rbi +231 -0
  410. data/rbi/knockapi/resources/objects/bulk.rbi +61 -0
  411. data/rbi/knockapi/resources/objects.rbi +434 -0
  412. data/rbi/knockapi/resources/providers/ms_teams.rbi +79 -0
  413. data/rbi/knockapi/resources/providers/slack.rbi +55 -0
  414. data/rbi/knockapi/resources/providers.rbi +17 -0
  415. data/rbi/knockapi/resources/recipients/channel_data.rbi +13 -0
  416. data/rbi/knockapi/resources/recipients/preferences.rbi +13 -0
  417. data/rbi/knockapi/resources/recipients/subscriptions.rbi +13 -0
  418. data/rbi/knockapi/resources/recipients.rbi +20 -0
  419. data/rbi/knockapi/resources/schedules/bulk.rbi +28 -0
  420. data/rbi/knockapi/resources/schedules.rbi +135 -0
  421. data/rbi/knockapi/resources/shared.rbi +11 -0
  422. data/rbi/knockapi/resources/tenants/bulk.rbi +36 -0
  423. data/rbi/knockapi/resources/tenants.rbi +80 -0
  424. data/rbi/knockapi/resources/users/bulk.rbi +57 -0
  425. data/rbi/knockapi/resources/users/feeds.rbi +72 -0
  426. data/rbi/knockapi/resources/users/guides.rbi +170 -0
  427. data/rbi/knockapi/resources/users.rbi +357 -0
  428. data/rbi/knockapi/resources/workflows.rbi +92 -0
  429. data/rbi/knockapi/version.rbi +5 -0
  430. data/sig/knockapi/client.rbs +50 -0
  431. data/sig/knockapi/errors.rbs +101 -0
  432. data/sig/knockapi/file_part.rbs +21 -0
  433. data/sig/knockapi/internal/entries_cursor.rbs +24 -0
  434. data/sig/knockapi/internal/items_cursor.rbs +24 -0
  435. data/sig/knockapi/internal/ms_teams_pagination.rbs +13 -0
  436. data/sig/knockapi/internal/slack_channels_cursor.rbs +13 -0
  437. data/sig/knockapi/internal/transport/base_client.rbs +116 -0
  438. data/sig/knockapi/internal/transport/pooled_net_requester.rbs +41 -0
  439. data/sig/knockapi/internal/type/array_of.rbs +45 -0
  440. data/sig/knockapi/internal/type/base_model.rbs +94 -0
  441. data/sig/knockapi/internal/type/base_page.rbs +24 -0
  442. data/sig/knockapi/internal/type/boolean.rbs +23 -0
  443. data/sig/knockapi/internal/type/converter.rbs +54 -0
  444. data/sig/knockapi/internal/type/enum.rbs +29 -0
  445. data/sig/knockapi/internal/type/file_input.rbs +23 -0
  446. data/sig/knockapi/internal/type/hash_of.rbs +45 -0
  447. data/sig/knockapi/internal/type/request_parameters.rbs +15 -0
  448. data/sig/knockapi/internal/type/union.rbs +49 -0
  449. data/sig/knockapi/internal/type/unknown.rbs +23 -0
  450. data/sig/knockapi/internal/util.rbs +158 -0
  451. data/sig/knockapi/internal.rbs +5 -0
  452. data/sig/knockapi/models/activity.rbs +54 -0
  453. data/sig/knockapi/models/audience_add_members_params.rbs +52 -0
  454. data/sig/knockapi/models/audience_list_members_params.rbs +15 -0
  455. data/sig/knockapi/models/audience_list_members_response.rbs +22 -0
  456. data/sig/knockapi/models/audience_member.rbs +34 -0
  457. data/sig/knockapi/models/audience_remove_members_params.rbs +54 -0
  458. data/sig/knockapi/models/bulk_operation.rbs +107 -0
  459. data/sig/knockapi/models/bulk_operation_get_params.rbs +15 -0
  460. data/sig/knockapi/models/channels/bulk_update_message_status_params.rbs +176 -0
  461. data/sig/knockapi/models/condition.rbs +71 -0
  462. data/sig/knockapi/models/identify_user_request.rbs +50 -0
  463. data/sig/knockapi/models/inline_identify_user_request.rbs +30 -0
  464. data/sig/knockapi/models/inline_object_request.rbs +34 -0
  465. data/sig/knockapi/models/inline_tenant_request.rbs +11 -0
  466. data/sig/knockapi/models/integrations/census_custom_destination_params.rbs +39 -0
  467. data/sig/knockapi/models/integrations/census_custom_destination_response.rbs +22 -0
  468. data/sig/knockapi/models/integrations/hightouch_embedded_destination_params.rbs +39 -0
  469. data/sig/knockapi/models/integrations/hightouch_embedded_destination_response.rbs +22 -0
  470. data/sig/knockapi/models/message.rbs +193 -0
  471. data/sig/knockapi/models/message_archive_params.rbs +15 -0
  472. data/sig/knockapi/models/message_delivery_log.rbs +152 -0
  473. data/sig/knockapi/models/message_event.rbs +77 -0
  474. data/sig/knockapi/models/message_get_content_params.rbs +15 -0
  475. data/sig/knockapi/models/message_get_content_response.rbs +338 -0
  476. data/sig/knockapi/models/message_get_params.rbs +15 -0
  477. data/sig/knockapi/models/message_list_activities_params.rbs +43 -0
  478. data/sig/knockapi/models/message_list_delivery_logs_params.rbs +33 -0
  479. data/sig/knockapi/models/message_list_events_params.rbs +33 -0
  480. data/sig/knockapi/models/message_list_params.rbs +176 -0
  481. data/sig/knockapi/models/message_mark_as_interacted_params.rbs +23 -0
  482. data/sig/knockapi/models/message_mark_as_read_params.rbs +15 -0
  483. data/sig/knockapi/models/message_mark_as_seen_params.rbs +15 -0
  484. data/sig/knockapi/models/message_mark_as_unread_params.rbs +15 -0
  485. data/sig/knockapi/models/message_mark_as_unseen_params.rbs +15 -0
  486. data/sig/knockapi/models/message_unarchive_params.rbs +15 -0
  487. data/sig/knockapi/models/messages/activity_list_params.rbs +45 -0
  488. data/sig/knockapi/models/messages/batch_archive_params.rbs +23 -0
  489. data/sig/knockapi/models/messages/batch_archive_response.rbs +9 -0
  490. data/sig/knockapi/models/messages/batch_get_content_params.rbs +23 -0
  491. data/sig/knockapi/models/messages/batch_get_content_response.rbs +349 -0
  492. data/sig/knockapi/models/messages/batch_mark_as_interacted_params.rbs +26 -0
  493. data/sig/knockapi/models/messages/batch_mark_as_interacted_response.rbs +10 -0
  494. data/sig/knockapi/models/messages/batch_mark_as_read_params.rbs +23 -0
  495. data/sig/knockapi/models/messages/batch_mark_as_read_response.rbs +9 -0
  496. data/sig/knockapi/models/messages/batch_mark_as_seen_params.rbs +23 -0
  497. data/sig/knockapi/models/messages/batch_mark_as_seen_response.rbs +9 -0
  498. data/sig/knockapi/models/messages/batch_mark_as_unread_params.rbs +23 -0
  499. data/sig/knockapi/models/messages/batch_mark_as_unread_response.rbs +9 -0
  500. data/sig/knockapi/models/messages/batch_mark_as_unseen_params.rbs +23 -0
  501. data/sig/knockapi/models/messages/batch_mark_as_unseen_response.rbs +9 -0
  502. data/sig/knockapi/models/messages/batch_unarchive_params.rbs +23 -0
  503. data/sig/knockapi/models/messages/batch_unarchive_response.rbs +9 -0
  504. data/sig/knockapi/models/object.rbs +34 -0
  505. data/sig/knockapi/models/object_add_subscriptions_params.rbs +27 -0
  506. data/sig/knockapi/models/object_add_subscriptions_response.rbs +8 -0
  507. data/sig/knockapi/models/object_delete_params.rbs +15 -0
  508. data/sig/knockapi/models/object_delete_subscriptions_params.rbs +21 -0
  509. data/sig/knockapi/models/object_delete_subscriptions_response.rbs +8 -0
  510. data/sig/knockapi/models/object_get_channel_data_params.rbs +15 -0
  511. data/sig/knockapi/models/object_get_params.rbs +14 -0
  512. data/sig/knockapi/models/object_get_preferences_params.rbs +15 -0
  513. data/sig/knockapi/models/object_list_messages_params.rbs +176 -0
  514. data/sig/knockapi/models/object_list_params.rbs +55 -0
  515. data/sig/knockapi/models/object_list_preferences_params.rbs +15 -0
  516. data/sig/knockapi/models/object_list_preferences_response.rbs +8 -0
  517. data/sig/knockapi/models/object_list_schedules_params.rbs +49 -0
  518. data/sig/knockapi/models/object_list_subscriptions_params.rbs +106 -0
  519. data/sig/knockapi/models/object_set_channel_data_params.rbs +15 -0
  520. data/sig/knockapi/models/object_set_params.rbs +43 -0
  521. data/sig/knockapi/models/object_set_preferences_params.rbs +15 -0
  522. data/sig/knockapi/models/object_unset_channel_data_params.rbs +15 -0
  523. data/sig/knockapi/models/objects/bulk_add_subscriptions_params.rbs +44 -0
  524. data/sig/knockapi/models/objects/bulk_delete_params.rbs +23 -0
  525. data/sig/knockapi/models/objects/bulk_set_params.rbs +23 -0
  526. data/sig/knockapi/models/page_info.rbs +25 -0
  527. data/sig/knockapi/models/providers/ms_team_check_auth_params.rbs +23 -0
  528. data/sig/knockapi/models/providers/ms_team_check_auth_response.rbs +32 -0
  529. data/sig/knockapi/models/providers/ms_team_list_channels_params.rbs +53 -0
  530. data/sig/knockapi/models/providers/ms_team_list_channels_response.rbs +61 -0
  531. data/sig/knockapi/models/providers/ms_team_list_teams_params.rbs +63 -0
  532. data/sig/knockapi/models/providers/ms_team_list_teams_response.rbs +24 -0
  533. data/sig/knockapi/models/providers/ms_team_revoke_access_params.rbs +23 -0
  534. data/sig/knockapi/models/providers/ms_team_revoke_access_response.rbs +17 -0
  535. data/sig/knockapi/models/providers/slack_check_auth_params.rbs +23 -0
  536. data/sig/knockapi/models/providers/slack_check_auth_response.rbs +32 -0
  537. data/sig/knockapi/models/providers/slack_list_channels_params.rbs +74 -0
  538. data/sig/knockapi/models/providers/slack_list_channels_response.rbs +36 -0
  539. data/sig/knockapi/models/providers/slack_revoke_access_params.rbs +23 -0
  540. data/sig/knockapi/models/providers/slack_revoke_access_response.rbs +17 -0
  541. data/sig/knockapi/models/recipient.rbs +11 -0
  542. data/sig/knockapi/models/recipient_reference.rbs +28 -0
  543. data/sig/knockapi/models/recipient_request.rbs +14 -0
  544. data/sig/knockapi/models/recipients/channel_data.rbs +74 -0
  545. data/sig/knockapi/models/recipients/channel_data_request.rbs +31 -0
  546. data/sig/knockapi/models/recipients/discord_channel_data.rbs +65 -0
  547. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +10 -0
  548. data/sig/knockapi/models/recipients/inline_preference_set_request.rbs +10 -0
  549. data/sig/knockapi/models/recipients/ms_teams_channel_data.rbs +86 -0
  550. data/sig/knockapi/models/recipients/one_signal_channel_data.rbs +15 -0
  551. data/sig/knockapi/models/recipients/preference_set.rbs +90 -0
  552. data/sig/knockapi/models/recipients/preference_set_channel_type_setting.rbs +18 -0
  553. data/sig/knockapi/models/recipients/preference_set_channel_types.rbs +118 -0
  554. data/sig/knockapi/models/recipients/preference_set_request.rbs +86 -0
  555. data/sig/knockapi/models/recipients/push_channel_data.rbs +15 -0
  556. data/sig/knockapi/models/recipients/slack_channel_data.rbs +73 -0
  557. data/sig/knockapi/models/recipients/subscription.rbs +40 -0
  558. data/sig/knockapi/models/schedule.rbs +64 -0
  559. data/sig/knockapi/models/schedule_create_params.rbs +47 -0
  560. data/sig/knockapi/models/schedule_create_response.rbs +7 -0
  561. data/sig/knockapi/models/schedule_delete_params.rbs +21 -0
  562. data/sig/knockapi/models/schedule_delete_response.rbs +7 -0
  563. data/sig/knockapi/models/schedule_list_params.rbs +53 -0
  564. data/sig/knockapi/models/schedule_repeat_rule.rbs +73 -0
  565. data/sig/knockapi/models/schedule_update_params.rbs +51 -0
  566. data/sig/knockapi/models/schedule_update_response.rbs +7 -0
  567. data/sig/knockapi/models/schedules/bulk_create_params.rbs +76 -0
  568. data/sig/knockapi/models/tenant.rbs +76 -0
  569. data/sig/knockapi/models/tenant_delete_params.rbs +15 -0
  570. data/sig/knockapi/models/tenant_get_params.rbs +14 -0
  571. data/sig/knockapi/models/tenant_list_params.rbs +49 -0
  572. data/sig/knockapi/models/tenant_request.rbs +84 -0
  573. data/sig/knockapi/models/tenant_set_params.rbs +85 -0
  574. data/sig/knockapi/models/tenants/bulk_delete_params.rbs +23 -0
  575. data/sig/knockapi/models/tenants/bulk_set_params.rbs +23 -0
  576. data/sig/knockapi/models/user.rbs +50 -0
  577. data/sig/knockapi/models/user_delete_params.rbs +15 -0
  578. data/sig/knockapi/models/user_get_channel_data_params.rbs +15 -0
  579. data/sig/knockapi/models/user_get_params.rbs +14 -0
  580. data/sig/knockapi/models/user_get_preferences_params.rbs +22 -0
  581. data/sig/knockapi/models/user_list_messages_params.rbs +176 -0
  582. data/sig/knockapi/models/user_list_params.rbs +55 -0
  583. data/sig/knockapi/models/user_list_preferences_params.rbs +15 -0
  584. data/sig/knockapi/models/user_list_preferences_response.rbs +8 -0
  585. data/sig/knockapi/models/user_list_schedules_params.rbs +49 -0
  586. data/sig/knockapi/models/user_list_subscriptions_params.rbs +61 -0
  587. data/sig/knockapi/models/user_merge_params.rbs +20 -0
  588. data/sig/knockapi/models/user_set_channel_data_params.rbs +15 -0
  589. data/sig/knockapi/models/user_set_preferences_params.rbs +15 -0
  590. data/sig/knockapi/models/user_unset_channel_data_params.rbs +15 -0
  591. data/sig/knockapi/models/user_update_params.rbs +15 -0
  592. data/sig/knockapi/models/users/bulk_delete_params.rbs +23 -0
  593. data/sig/knockapi/models/users/bulk_identify_params.rbs +23 -0
  594. data/sig/knockapi/models/users/bulk_set_preferences_params.rbs +29 -0
  595. data/sig/knockapi/models/users/feed_get_settings_params.rbs +17 -0
  596. data/sig/knockapi/models/users/feed_get_settings_response.rbs +28 -0
  597. data/sig/knockapi/models/users/feed_list_items_params.rbs +111 -0
  598. data/sig/knockapi/models/users/feed_list_items_response.rbs +214 -0
  599. data/sig/knockapi/models/users/guide_get_channel_params.rbs +35 -0
  600. data/sig/knockapi/models/users/guide_get_channel_response.rbs +71 -0
  601. data/sig/knockapi/models/users/guide_mark_message_as_archived_params.rbs +65 -0
  602. data/sig/knockapi/models/users/guide_mark_message_as_archived_response.rbs +15 -0
  603. data/sig/knockapi/models/users/guide_mark_message_as_interacted_params.rbs +65 -0
  604. data/sig/knockapi/models/users/guide_mark_message_as_interacted_response.rbs +15 -0
  605. data/sig/knockapi/models/users/guide_mark_message_as_seen_params.rbs +65 -0
  606. data/sig/knockapi/models/users/guide_mark_message_as_seen_response.rbs +15 -0
  607. data/sig/knockapi/models/workflow_cancel_params.rbs +27 -0
  608. data/sig/knockapi/models/workflow_trigger_params.rbs +39 -0
  609. data/sig/knockapi/models/workflow_trigger_response.rbs +13 -0
  610. data/sig/knockapi/request_options.rbs +34 -0
  611. data/sig/knockapi/resources/audiences.rbs +24 -0
  612. data/sig/knockapi/resources/bulk_operations.rbs +12 -0
  613. data/sig/knockapi/resources/channels/bulk.rbs +25 -0
  614. data/sig/knockapi/resources/channels.rbs +9 -0
  615. data/sig/knockapi/resources/integrations/census.rbs +17 -0
  616. data/sig/knockapi/resources/integrations/hightouch.rbs +17 -0
  617. data/sig/knockapi/resources/integrations.rbs +11 -0
  618. data/sig/knockapi/resources/messages/activities.rbs +18 -0
  619. data/sig/knockapi/resources/messages/batch.rbs +50 -0
  620. data/sig/knockapi/resources/messages.rbs +100 -0
  621. data/sig/knockapi/resources/objects/bulk.rbs +27 -0
  622. data/sig/knockapi/resources/objects.rbs +144 -0
  623. data/sig/knockapi/resources/providers/ms_teams.rbs +36 -0
  624. data/sig/knockapi/resources/providers/slack.rbs +28 -0
  625. data/sig/knockapi/resources/providers.rbs +11 -0
  626. data/sig/knockapi/resources/recipients/channel_data.rbs +9 -0
  627. data/sig/knockapi/resources/recipients/preferences.rbs +9 -0
  628. data/sig/knockapi/resources/recipients/subscriptions.rbs +9 -0
  629. data/sig/knockapi/resources/recipients.rbs +13 -0
  630. data/sig/knockapi/resources/schedules/bulk.rbs +14 -0
  631. data/sig/knockapi/resources/schedules.rbs +46 -0
  632. data/sig/knockapi/resources/shared.rbs +7 -0
  633. data/sig/knockapi/resources/tenants/bulk.rbs +19 -0
  634. data/sig/knockapi/resources/tenants.rbs +36 -0
  635. data/sig/knockapi/resources/users/bulk.rbs +25 -0
  636. data/sig/knockapi/resources/users/feeds.rbs +31 -0
  637. data/sig/knockapi/resources/users/guides.rbs +63 -0
  638. data/sig/knockapi/resources/users.rbs +130 -0
  639. data/sig/knockapi/resources/workflows.rbs +24 -0
  640. data/sig/knockapi/version.rbs +3 -0
  641. metadata +657 -77
  642. data/.github/workflows/publish.yml +0 -17
  643. data/.github/workflows/ruby.yml +0 -47
  644. data/.gitignore +0 -49
  645. data/.rubocop.yml +0 -8
  646. data/.ruby-version +0 -1
  647. data/.tool-versions +0 -1
  648. data/CONTRIBUTING.md +0 -31
  649. data/Gemfile +0 -9
  650. data/Gemfile.lock +0 -63
  651. data/LICENSE +0 -21
  652. data/bin/console +0 -8
  653. data/bin/publish +0 -5
  654. data/knockapi.gemspec +0 -30
  655. data/lib/knock/bulk_operations.rb +0 -27
  656. data/lib/knock/client.rb +0 -149
  657. data/lib/knock/configuration.rb +0 -18
  658. data/lib/knock/errors.rb +0 -57
  659. data/lib/knock/messages.rb +0 -93
  660. data/lib/knock/objects.rb +0 -442
  661. data/lib/knock/preferences.rb +0 -114
  662. data/lib/knock/tenants.rb +0 -72
  663. data/lib/knock/users.rb +0 -420
  664. data/lib/knock/version.rb +0 -5
  665. data/lib/knock/workflows.rb +0 -152
  666. data/lib/knock.rb +0 -71
  667. data/spec/configuration_spec.rb +0 -63
  668. data/spec/tenants_spec.rb +0 -66
@@ -0,0 +1,274 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ module Converter
8
+ # rubocop:disable Lint/UnusedMethodArgument
9
+
10
+ # @api private
11
+ #
12
+ # @param value [Object]
13
+ #
14
+ # @param state [Hash{Symbol=>Object}] .
15
+ #
16
+ # @option state [Boolean, :strong] :strictness
17
+ #
18
+ # @option state [Hash{Symbol=>Object}] :exactness
19
+ #
20
+ # @option state [Integer] :branched
21
+ #
22
+ # @return [Object]
23
+ def coerce(value, state:) = (raise NotImplementedError)
24
+
25
+ # @api private
26
+ #
27
+ # @param value [Object]
28
+ #
29
+ # @param state [Hash{Symbol=>Object}] .
30
+ #
31
+ # @option state [Boolean] :can_retry
32
+ #
33
+ # @return [Object]
34
+ def dump(value, state:)
35
+ case value
36
+ in Array
37
+ value.map { Knockapi::Internal::Type::Unknown.dump(_1, state: state) }
38
+ in Hash
39
+ value.transform_values { Knockapi::Internal::Type::Unknown.dump(_1, state: state) }
40
+ in Knockapi::Internal::Type::BaseModel
41
+ value.class.dump(value, state: state)
42
+ in StringIO
43
+ value.string
44
+ in Pathname | IO
45
+ state[:can_retry] = false if value.is_a?(IO)
46
+ Knockapi::FilePart.new(value)
47
+ in Knockapi::FilePart
48
+ state[:can_retry] = false if value.content.is_a?(IO)
49
+ value
50
+ else
51
+ value
52
+ end
53
+ end
54
+
55
+ # @api private
56
+ #
57
+ # @param depth [Integer]
58
+ #
59
+ # @return [String]
60
+ def inspect(depth: 0)
61
+ super()
62
+ end
63
+
64
+ # rubocop:enable Lint/UnusedMethodArgument
65
+
66
+ class << self
67
+ # @api private
68
+ #
69
+ # @param spec [Hash{Symbol=>Object}, Proc, Knockapi::Internal::Type::Converter, Class] .
70
+ #
71
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
72
+ #
73
+ # @option spec [Proc] :enum
74
+ #
75
+ # @option spec [Proc] :union
76
+ #
77
+ # @option spec [Boolean] :"nil?"
78
+ #
79
+ # @return [Proc]
80
+ def type_info(spec)
81
+ case spec
82
+ in Proc
83
+ spec
84
+ in Hash
85
+ type_info(spec.slice(:const, :enum, :union).first&.last)
86
+ in true | false
87
+ -> { Knockapi::Internal::Type::Boolean }
88
+ in Knockapi::Internal::Type::Converter | Class | Symbol
89
+ -> { spec }
90
+ in NilClass | Integer | Float
91
+ -> { spec.class }
92
+ end
93
+ end
94
+
95
+ # @api private
96
+ #
97
+ # Based on `target`, transform `value` into `target`, to the extent possible:
98
+ #
99
+ # 1. if the given `value` conforms to `target` already, return the given `value`
100
+ # 2. if it's possible and safe to convert the given `value` to `target`, then the
101
+ # converted value
102
+ # 3. otherwise, the given `value` unaltered
103
+ #
104
+ # The coercion process is subject to improvement between minor release versions.
105
+ # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
106
+ #
107
+ # @param target [Knockapi::Internal::Type::Converter, Class]
108
+ #
109
+ # @param value [Object]
110
+ #
111
+ # @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`, or `:strong`. This informs the
112
+ # coercion strategy when we have to decide between multiple possible conversion
113
+ # targets:
114
+ #
115
+ # - `true`: the conversion must be exact, with minimum coercion.
116
+ # - `false`: the conversion can be approximate, with some coercion.
117
+ # - `:strong`: the conversion must be exact, with no coercion, and raise an error
118
+ # if not possible.
119
+ #
120
+ # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
121
+ # any given conversion attempt, the exactness will be updated based on how closely
122
+ # the value recursively matches the target type:
123
+ #
124
+ # - `yes`: the value can be converted to the target type with minimum coercion.
125
+ # - `maybe`: the value can be converted to the target type with some reasonable
126
+ # coercion.
127
+ # - `no`: the value cannot be converted to the target type.
128
+ #
129
+ # See implementation below for more details.
130
+ #
131
+ # @option state [Boolean, :strong] :strictness
132
+ #
133
+ # @option state [Hash{Symbol=>Object}] :exactness
134
+ #
135
+ # @option state [Integer] :branched
136
+ #
137
+ # @return [Object]
138
+ def coerce(
139
+ target,
140
+ value,
141
+ state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
142
+ )
143
+ # rubocop:disable Lint/SuppressedException
144
+ # rubocop:disable Metrics/BlockNesting
145
+ strictness, exactness = state.fetch_values(:strictness, :exactness)
146
+
147
+ case target
148
+ in Knockapi::Internal::Type::Converter
149
+ return target.coerce(value, state: state)
150
+ in Class
151
+ if value.is_a?(target)
152
+ exactness[:yes] += 1
153
+ return value
154
+ end
155
+
156
+ case target
157
+ in -> { _1 <= NilClass }
158
+ exactness[value.nil? ? :yes : :maybe] += 1
159
+ return nil
160
+ in -> { _1 <= Integer }
161
+ if value.is_a?(Integer)
162
+ exactness[:yes] += 1
163
+ return value
164
+ elsif strictness == :strong && Integer(value, exception: false) != value
165
+ message = "no implicit conversion of #{value.class} into #{target.inspect}"
166
+ raise value.is_a?(Numeric) ? ArgumentError.new(message) : TypeError.new(message)
167
+ else
168
+ Kernel.then do
169
+ return Integer(value).tap { exactness[:maybe] += 1 }
170
+ rescue ArgumentError, TypeError
171
+ end
172
+ end
173
+ in -> { _1 <= Float }
174
+ if value.is_a?(Numeric)
175
+ exactness[:yes] += 1
176
+ return Float(value)
177
+ elsif strictness == :strong
178
+ message = "no implicit conversion of #{value.class} into #{target.inspect}"
179
+ raise TypeError.new(message)
180
+ else
181
+ Kernel.then do
182
+ return Float(value).tap { exactness[:maybe] += 1 }
183
+ rescue ArgumentError, TypeError
184
+ end
185
+ end
186
+ in -> { _1 <= String }
187
+ case value
188
+ in String | Symbol | Numeric
189
+ exactness[value.is_a?(Numeric) ? :maybe : :yes] += 1
190
+ return value.to_s
191
+ in StringIO
192
+ exactness[:yes] += 1
193
+ return value.string
194
+ else
195
+ if strictness == :strong
196
+ message = "no implicit conversion of #{value.class} into #{target.inspect}"
197
+ raise TypeError.new(message)
198
+ end
199
+ end
200
+ in -> { _1 <= Date || _1 <= Time }
201
+ Kernel.then do
202
+ return target.parse(value).tap { exactness[:yes] += 1 }
203
+ rescue ArgumentError, TypeError => e
204
+ raise e if strictness == :strong
205
+ end
206
+ in -> { _1 <= StringIO } if value.is_a?(String)
207
+ exactness[:yes] += 1
208
+ return StringIO.new(value.b)
209
+ else
210
+ end
211
+ in Symbol
212
+ case value
213
+ in Symbol | String
214
+ if value.to_sym == target
215
+ exactness[:yes] += 1
216
+ return target
217
+ else
218
+ exactness[:maybe] += 1
219
+ return value
220
+ end
221
+ else
222
+ if strictness == :strong
223
+ message = "cannot convert non-matching #{value.class} into #{target.inspect}"
224
+ raise ArgumentError.new(message)
225
+ end
226
+ end
227
+ else
228
+ end
229
+
230
+ exactness[:no] += 1
231
+ value
232
+ # rubocop:enable Metrics/BlockNesting
233
+ # rubocop:enable Lint/SuppressedException
234
+ end
235
+
236
+ # @api private
237
+ #
238
+ # @param target [Knockapi::Internal::Type::Converter, Class]
239
+ #
240
+ # @param value [Object]
241
+ #
242
+ # @param state [Hash{Symbol=>Object}] .
243
+ #
244
+ # @option state [Boolean] :can_retry
245
+ #
246
+ # @return [Object]
247
+ def dump(target, value, state: {can_retry: true})
248
+ case target
249
+ in Knockapi::Internal::Type::Converter
250
+ target.dump(value, state: state)
251
+ else
252
+ Knockapi::Internal::Type::Unknown.dump(value, state: state)
253
+ end
254
+ end
255
+
256
+ # @api private
257
+ #
258
+ # @param target [Object]
259
+ # @param depth [Integer]
260
+ #
261
+ # @return [String]
262
+ def inspect(target, depth:)
263
+ case target
264
+ in Knockapi::Internal::Type::Converter
265
+ target.inspect(depth: depth.succ)
266
+ else
267
+ target.inspect
268
+ end
269
+ end
270
+ end
271
+ end
272
+ end
273
+ end
274
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # A value from among a specified list of options. OpenAPI enum values map to Ruby
9
+ # values in the SDK as follows:
10
+ #
11
+ # 1. boolean => true | false
12
+ # 2. integer => Integer
13
+ # 3. float => Float
14
+ # 4. string => Symbol
15
+ #
16
+ # We can therefore convert string values to Symbols, but can't convert other
17
+ # values safely.
18
+ module Enum
19
+ include Knockapi::Internal::Type::Converter
20
+
21
+ # All of the valid Symbol values for this enum.
22
+ #
23
+ # @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
24
+ def values = constants.map { const_get(_1) }
25
+
26
+ # @api public
27
+ #
28
+ # @param other [Object]
29
+ #
30
+ # @return [Boolean]
31
+ def ===(other) = values.include?(other)
32
+
33
+ # @api public
34
+ #
35
+ # @param other [Object]
36
+ #
37
+ # @return [Boolean]
38
+ def ==(other)
39
+ # rubocop:disable Style/CaseEquality
40
+ Knockapi::Internal::Type::Enum === other && other.values.to_set == values.to_set
41
+ # rubocop:enable Style/CaseEquality
42
+ end
43
+
44
+ # @api public
45
+ #
46
+ # @return [Integer]
47
+ def hash = values.to_set.hash
48
+
49
+ # @api private
50
+ #
51
+ # Unlike with primitives, `Enum` additionally validates that the value is a member
52
+ # of the enum.
53
+ #
54
+ # @param value [String, Symbol, Object]
55
+ #
56
+ # @param state [Hash{Symbol=>Object}] .
57
+ #
58
+ # @option state [Boolean, :strong] :strictness
59
+ #
60
+ # @option state [Hash{Symbol=>Object}] :exactness
61
+ #
62
+ # @option state [Integer] :branched
63
+ #
64
+ # @return [Symbol, Object]
65
+ def coerce(value, state:)
66
+ exactness = state.fetch(:exactness)
67
+ val = value.is_a?(String) ? value.to_sym : value
68
+
69
+ if values.include?(val)
70
+ exactness[:yes] += 1
71
+ val
72
+ else
73
+ exactness[values.first&.class == val.class ? :maybe : :no] += 1
74
+ value
75
+ end
76
+ end
77
+
78
+ # @!method dump(value, state:)
79
+ # @api private
80
+ #
81
+ # @param value [Symbol, Object]
82
+ #
83
+ # @param state [Hash{Symbol=>Object}] .
84
+ #
85
+ # @option state [Boolean] :can_retry
86
+ #
87
+ # @return [Symbol, Object]
88
+
89
+ # @api private
90
+ #
91
+ # @param depth [Integer]
92
+ #
93
+ # @return [String]
94
+ def inspect(depth: 0)
95
+ if depth.positive?
96
+ return is_a?(Module) ? super() : self.class.name
97
+ end
98
+
99
+ members = values.map { Knockapi::Internal::Type::Converter.inspect(_1, depth: depth.succ) }
100
+ prefix = is_a?(Module) ? name : self.class.name
101
+
102
+ "#{prefix}[#{members.join(' | ')}]"
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # @abstract
9
+ #
10
+ # Either `Pathname` or `StringIO`, or `IO`, or
11
+ # `Knockapi::Internal::Type::FileInput`.
12
+ #
13
+ # Note: when `IO` is used, all retries are disabled, since many IO` streams are
14
+ # not rewindable.
15
+ class FileInput
16
+ extend Knockapi::Internal::Type::Converter
17
+
18
+ private_class_method :new
19
+
20
+ # @api public
21
+ #
22
+ # @param other [Object]
23
+ #
24
+ # @return [Boolean]
25
+ def self.===(other)
26
+ case other
27
+ in Pathname | StringIO | IO | String | Knockapi::FilePart
28
+ true
29
+ else
30
+ false
31
+ end
32
+ end
33
+
34
+ # @api public
35
+ #
36
+ # @param other [Object]
37
+ #
38
+ # @return [Boolean]
39
+ def self.==(other) = other.is_a?(Class) && other <= Knockapi::Internal::Type::FileInput
40
+
41
+ class << self
42
+ # @api private
43
+ #
44
+ # @param value [StringIO, String, Object]
45
+ #
46
+ # @param state [Hash{Symbol=>Object}] .
47
+ #
48
+ # @option state [Boolean, :strong] :strictness
49
+ #
50
+ # @option state [Hash{Symbol=>Object}] :exactness
51
+ #
52
+ # @option state [Integer] :branched
53
+ #
54
+ # @return [StringIO, Object]
55
+ def coerce(value, state:)
56
+ exactness = state.fetch(:exactness)
57
+ case value
58
+ in String
59
+ exactness[:yes] += 1
60
+ StringIO.new(value)
61
+ in StringIO
62
+ exactness[:yes] += 1
63
+ value
64
+ else
65
+ exactness[:no] += 1
66
+ value
67
+ end
68
+ end
69
+
70
+ # @api private
71
+ #
72
+ # @param value [Pathname, StringIO, IO, String, Object]
73
+ #
74
+ # @param state [Hash{Symbol=>Object}] .
75
+ #
76
+ # @option state [Boolean] :can_retry
77
+ #
78
+ # @return [Pathname, StringIO, IO, String, Object]
79
+ def dump(value, state:)
80
+ # rubocop:disable Lint/DuplicateBranch
81
+ case value
82
+ in IO
83
+ state[:can_retry] = false
84
+ in Knockapi::FilePart if value.content.is_a?(IO)
85
+ state[:can_retry] = false
86
+ else
87
+ end
88
+ # rubocop:enable Lint/DuplicateBranch
89
+
90
+ value
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # @abstract
9
+ #
10
+ # @generic Elem
11
+ #
12
+ # Hash of items of a given type.
13
+ class HashOf
14
+ include Knockapi::Internal::Type::Converter
15
+
16
+ private_class_method :new
17
+
18
+ # @overload [](type_info, spec = {})
19
+ #
20
+ # @param type_info [Hash{Symbol=>Object}, Proc, Knockapi::Internal::Type::Converter, Class]
21
+ #
22
+ # @param spec [Hash{Symbol=>Object}] .
23
+ #
24
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
25
+ #
26
+ # @option spec [Proc] :enum
27
+ #
28
+ # @option spec [Proc] :union
29
+ #
30
+ # @option spec [Boolean] :"nil?"
31
+ #
32
+ # @return [Knockapi::Internal::Type::HashOf]
33
+ def self.[](...) = new(...)
34
+
35
+ # @api public
36
+ #
37
+ # @param other [Object]
38
+ #
39
+ # @return [Boolean]
40
+ def ===(other)
41
+ type = item_type
42
+ case other
43
+ in Hash
44
+ other.all? do |key, val|
45
+ case [key, val]
46
+ in [Symbol | String, ^type]
47
+ true
48
+ else
49
+ false
50
+ end
51
+ end
52
+ else
53
+ false
54
+ end
55
+ end
56
+
57
+ # @api public
58
+ #
59
+ # @param other [Object]
60
+ #
61
+ # @return [Boolean]
62
+ def ==(other)
63
+ # rubocop:disable Layout/LineLength
64
+ other.is_a?(Knockapi::Internal::Type::HashOf) && other.nilable? == nilable? && other.item_type == item_type
65
+ # rubocop:enable Layout/LineLength
66
+ end
67
+
68
+ # @api public
69
+ #
70
+ # @return [Integer]
71
+ def hash = [self.class, item_type].hash
72
+
73
+ # @api private
74
+ #
75
+ # @param value [Hash{Object=>Object}, Object]
76
+ #
77
+ # @param state [Hash{Symbol=>Object}] .
78
+ #
79
+ # @option state [Boolean, :strong] :strictness
80
+ #
81
+ # @option state [Hash{Symbol=>Object}] :exactness
82
+ #
83
+ # @option state [Integer] :branched
84
+ #
85
+ # @return [Hash{Symbol=>Object}, Object]
86
+ def coerce(value, state:)
87
+ exactness = state.fetch(:exactness)
88
+
89
+ unless value.is_a?(Hash)
90
+ exactness[:no] += 1
91
+ return value
92
+ end
93
+
94
+ target = item_type
95
+ exactness[:yes] += 1
96
+ value
97
+ .to_h do |key, val|
98
+ k = key.is_a?(String) ? key.to_sym : key
99
+ v =
100
+ case [nilable?, val]
101
+ in [true, nil]
102
+ exactness[:yes] += 1
103
+ nil
104
+ else
105
+ Knockapi::Internal::Type::Converter.coerce(target, val, state: state)
106
+ end
107
+
108
+ exactness[:no] += 1 unless k.is_a?(Symbol)
109
+ [k, v]
110
+ end
111
+ end
112
+
113
+ # @api private
114
+ #
115
+ # @param value [Hash{Object=>Object}, Object]
116
+ #
117
+ # @param state [Hash{Symbol=>Object}] .
118
+ #
119
+ # @option state [Boolean] :can_retry
120
+ #
121
+ # @return [Hash{Symbol=>Object}, Object]
122
+ def dump(value, state:)
123
+ target = item_type
124
+ if value.is_a?(Hash)
125
+ value.transform_values do
126
+ Knockapi::Internal::Type::Converter.dump(target, _1, state: state)
127
+ end
128
+ else
129
+ super
130
+ end
131
+ end
132
+
133
+ # @api private
134
+ #
135
+ # @return [generic<Elem>]
136
+ protected def item_type = @item_type_fn.call
137
+
138
+ # @api private
139
+ #
140
+ # @return [Boolean]
141
+ protected def nilable? = @nilable
142
+
143
+ # @api private
144
+ #
145
+ # @param type_info [Hash{Symbol=>Object}, Proc, Knockapi::Internal::Type::Converter, Class]
146
+ #
147
+ # @param spec [Hash{Symbol=>Object}] .
148
+ #
149
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
150
+ #
151
+ # @option spec [Proc] :enum
152
+ #
153
+ # @option spec [Proc] :union
154
+ #
155
+ # @option spec [Boolean] :"nil?"
156
+ def initialize(type_info, spec = {})
157
+ @item_type_fn = Knockapi::Internal::Type::Converter.type_info(type_info || spec)
158
+ @nilable = spec.fetch(:nil?, false)
159
+ end
160
+
161
+ # @api private
162
+ #
163
+ # @param depth [Integer]
164
+ #
165
+ # @return [String]
166
+ def inspect(depth: 0)
167
+ items = Knockapi::Internal::Type::Converter.inspect(item_type, depth: depth.succ)
168
+
169
+ "#{self.class}[#{[items, nilable? ? 'nil' : nil].compact.join(' | ')}]"
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ module RequestParameters
8
+ # @!parse
9
+ # # Options to specify HTTP behaviour for this request.
10
+ # # @return [Knockapi::RequestOptions, Hash{Symbol=>Object}]
11
+ # attr_accessor :request_options
12
+
13
+ # @param mod [Module]
14
+ def self.included(mod)
15
+ raise ArgumentError.new(mod) unless mod <= Knockapi::Internal::Type::BaseModel
16
+
17
+ mod.optional(:request_options, Knockapi::RequestOptions)
18
+ end
19
+
20
+ # @api private
21
+ module Converter
22
+ # @api private
23
+ #
24
+ # @param params [Object]
25
+ #
26
+ # @return [Array(Object, Hash{Symbol=>Object})]
27
+ def dump_request(params)
28
+ state = {can_retry: true}
29
+ case (dumped = dump(params, state: state))
30
+ in Hash
31
+ options = Knockapi::Internal::Util.coerce_hash(dumped[:request_options])
32
+ request_options =
33
+ case [options, state.fetch(:can_retry)]
34
+ in [Hash | nil, false]
35
+ {**options.to_h, max_retries: 0}
36
+ else
37
+ options
38
+ end
39
+ [dumped.except(:request_options), request_options]
40
+ else
41
+ [dumped, nil]
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end