knockapi 1.0.0 → 1.1.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 (549) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/README.md +101 -49
  4. data/lib/knockapi/client.rb +4 -4
  5. data/lib/knockapi/errors.rb +1 -1
  6. data/lib/knockapi/file_part.rb +2 -2
  7. data/lib/knockapi/internal/entries_cursor.rb +3 -3
  8. data/lib/knockapi/internal/items_cursor.rb +3 -3
  9. data/lib/knockapi/internal/ms_teams_pagination.rb +3 -3
  10. data/lib/knockapi/internal/slack_channels_cursor.rb +3 -3
  11. data/lib/knockapi/internal/transport/base_client.rb +79 -7
  12. data/lib/knockapi/internal/transport/pooled_net_requester.rb +17 -1
  13. data/lib/knockapi/internal/type/array_of.rb +1 -1
  14. data/lib/knockapi/internal/type/base_model.rb +71 -39
  15. data/lib/knockapi/internal/type/converter.rb +18 -0
  16. data/lib/knockapi/internal/type/enum.rb +1 -0
  17. data/lib/knockapi/internal/type/hash_of.rb +1 -1
  18. data/lib/knockapi/internal/type/request_parameters.rb +6 -12
  19. data/lib/knockapi/internal/type/union.rb +4 -3
  20. data/lib/knockapi/internal/util.rb +74 -2
  21. data/lib/knockapi/internal.rb +6 -0
  22. data/lib/knockapi/models/activity.rb +6 -6
  23. data/lib/knockapi/models/audience_add_members_params.rb +10 -8
  24. data/lib/knockapi/models/audience_add_members_response.rb +7 -0
  25. data/lib/knockapi/models/audience_list_members_response.rb +6 -6
  26. data/lib/knockapi/models/audience_member.rb +5 -6
  27. data/lib/knockapi/models/audience_remove_members_params.rb +12 -7
  28. data/lib/knockapi/models/audience_remove_members_response.rb +7 -0
  29. data/lib/knockapi/models/bulk_operation.rb +7 -8
  30. data/lib/knockapi/models/channels/bulk_update_message_status_params.rb +11 -10
  31. data/lib/knockapi/models/condition.rb +4 -4
  32. data/lib/knockapi/models/identify_user_request.rb +16 -17
  33. data/lib/knockapi/models/inline_identify_user_request.rb +64 -7
  34. data/lib/knockapi/models/inline_object_request.rb +8 -6
  35. data/lib/knockapi/models/inline_tenant_request.rb +6 -2
  36. data/lib/knockapi/models/message.rb +19 -23
  37. data/lib/knockapi/models/message_delivery_log.rb +26 -18
  38. data/lib/knockapi/models/message_event.rb +9 -10
  39. data/lib/knockapi/models/message_get_content_response.rb +21 -0
  40. data/lib/knockapi/models/message_list_params.rb +9 -13
  41. data/lib/knockapi/models/messages/batch_archive_response.rb +1 -1
  42. data/lib/knockapi/models/messages/batch_get_content_response.rb +21 -0
  43. data/lib/knockapi/models/messages/batch_mark_as_interacted_response.rb +1 -1
  44. data/lib/knockapi/models/messages/batch_mark_as_read_response.rb +1 -1
  45. data/lib/knockapi/models/messages/batch_mark_as_seen_response.rb +1 -1
  46. data/lib/knockapi/models/messages/batch_mark_as_unread_response.rb +1 -1
  47. data/lib/knockapi/models/messages/batch_mark_as_unseen_response.rb +1 -1
  48. data/lib/knockapi/models/messages/batch_unarchive_response.rb +1 -1
  49. data/lib/knockapi/models/object.rb +9 -1
  50. data/lib/knockapi/models/object_add_subscriptions_params.rb +3 -4
  51. data/lib/knockapi/models/object_add_subscriptions_response.rb +1 -1
  52. data/lib/knockapi/models/object_delete_response.rb +7 -0
  53. data/lib/knockapi/models/object_delete_subscriptions_params.rb +3 -5
  54. data/lib/knockapi/models/object_delete_subscriptions_response.rb +1 -1
  55. data/lib/knockapi/models/object_list_messages_params.rb +11 -12
  56. data/lib/knockapi/models/object_list_params.rb +3 -4
  57. data/lib/knockapi/models/object_list_preferences_response.rb +1 -1
  58. data/lib/knockapi/models/object_list_subscriptions_params.rb +14 -14
  59. data/lib/knockapi/models/object_set_params.rb +15 -13
  60. data/lib/knockapi/models/object_unset_channel_data_response.rb +7 -0
  61. data/lib/knockapi/models/objects/bulk_add_subscriptions_params.rb +9 -9
  62. data/lib/knockapi/models/objects/bulk_set_params.rb +3 -3
  63. data/lib/knockapi/models/providers/ms_team_list_channels_params.rb +4 -7
  64. data/lib/knockapi/models/providers/ms_team_list_teams_params.rb +4 -9
  65. data/lib/knockapi/models/providers/slack_list_channels_params.rb +4 -7
  66. data/lib/knockapi/models/recipient.rb +7 -3
  67. data/lib/knockapi/models/recipient_reference.rb +6 -2
  68. data/lib/knockapi/models/recipient_request.rb +7 -3
  69. data/lib/knockapi/models/recipients/channel_data.rb +26 -14
  70. data/lib/knockapi/models/recipients/channel_data_request.rb +22 -10
  71. data/lib/knockapi/models/recipients/discord_channel_data.rb +25 -10
  72. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +36 -1
  73. data/lib/knockapi/models/recipients/inline_preference_set_request.rb +1 -1
  74. data/lib/knockapi/models/recipients/ms_teams_channel_data.rb +25 -10
  75. data/lib/knockapi/models/recipients/preference_set.rb +52 -28
  76. data/lib/knockapi/models/recipients/preference_set_channel_type_setting.rb +3 -3
  77. data/lib/knockapi/models/recipients/preference_set_channel_types.rb +60 -36
  78. data/lib/knockapi/models/recipients/preference_set_request.rb +52 -28
  79. data/lib/knockapi/models/recipients/slack_channel_data.rb +21 -10
  80. data/lib/knockapi/models/recipients/subscription.rb +6 -6
  81. data/lib/knockapi/models/schedule.rb +11 -12
  82. data/lib/knockapi/models/schedule_create_params.rb +10 -15
  83. data/lib/knockapi/models/schedule_create_response.rb +1 -1
  84. data/lib/knockapi/models/schedule_delete_response.rb +1 -1
  85. data/lib/knockapi/models/schedule_repeat_rule.rb +7 -7
  86. data/lib/knockapi/models/schedule_update_params.rb +9 -10
  87. data/lib/knockapi/models/schedule_update_response.rb +1 -1
  88. data/lib/knockapi/models/schedules/bulk_create_params.rb +16 -18
  89. data/lib/knockapi/models/tenant.rb +13 -16
  90. data/lib/knockapi/models/tenant_delete_response.rb +7 -0
  91. data/lib/knockapi/models/tenant_request.rb +20 -20
  92. data/lib/knockapi/models/tenant_set_params.rb +19 -19
  93. data/lib/knockapi/models/tenants/bulk_set_params.rb +3 -3
  94. data/lib/knockapi/models/user.rb +9 -11
  95. data/lib/knockapi/models/user_delete_response.rb +7 -0
  96. data/lib/knockapi/models/user_list_messages_params.rb +13 -12
  97. data/lib/knockapi/models/user_list_params.rb +3 -4
  98. data/lib/knockapi/models/user_list_preferences_response.rb +1 -1
  99. data/lib/knockapi/models/user_list_subscriptions_params.rb +3 -3
  100. data/lib/knockapi/models/user_unset_channel_data_response.rb +7 -0
  101. data/lib/knockapi/models/users/bulk_identify_params.rb +3 -3
  102. data/lib/knockapi/models/users/bulk_set_preferences_params.rb +3 -3
  103. data/lib/knockapi/models/users/feed_list_items_params.rb +6 -6
  104. data/lib/knockapi/models/users/feed_list_items_response.rb +15 -6
  105. data/lib/knockapi/models/workflow_cancel_params.rb +3 -5
  106. data/lib/knockapi/models/workflow_cancel_response.rb +7 -0
  107. data/lib/knockapi/models/workflow_trigger_params.rb +9 -12
  108. data/lib/knockapi/models/workflow_trigger_response.rb +0 -1
  109. data/lib/knockapi/models.rb +202 -0
  110. data/lib/knockapi/request_options.rb +4 -0
  111. data/lib/knockapi/resources/audiences.rb +4 -4
  112. data/lib/knockapi/resources/bulk_operations.rb +2 -2
  113. data/lib/knockapi/resources/channels/bulk.rb +7 -8
  114. data/lib/knockapi/resources/integrations/census.rb +1 -1
  115. data/lib/knockapi/resources/integrations/hightouch.rb +1 -1
  116. data/lib/knockapi/resources/messages/batch.rb +22 -22
  117. data/lib/knockapi/resources/messages.rb +32 -39
  118. data/lib/knockapi/resources/objects/bulk.rb +11 -11
  119. data/lib/knockapi/resources/objects.rb +52 -62
  120. data/lib/knockapi/resources/providers/ms_teams.rb +6 -6
  121. data/lib/knockapi/resources/providers/slack.rb +4 -4
  122. data/lib/knockapi/resources/schedules/bulk.rb +4 -4
  123. data/lib/knockapi/resources/schedules.rb +18 -23
  124. data/lib/knockapi/resources/tenants/bulk.rb +7 -7
  125. data/lib/knockapi/resources/tenants.rb +11 -11
  126. data/lib/knockapi/resources/users/bulk.rb +11 -11
  127. data/lib/knockapi/resources/users/feeds.rb +3 -3
  128. data/lib/knockapi/resources/users/guides.rb +4 -4
  129. data/lib/knockapi/resources/users.rb +46 -54
  130. data/lib/knockapi/resources/workflows.rb +6 -11
  131. data/lib/knockapi/version.rb +1 -1
  132. data/lib/knockapi.rb +11 -2
  133. data/rbi/knockapi/client.rbi +5 -4
  134. data/rbi/knockapi/errors.rbi +35 -16
  135. data/rbi/knockapi/file_part.rbi +9 -6
  136. data/rbi/knockapi/internal/entries_cursor.rbi +9 -4
  137. data/rbi/knockapi/internal/items_cursor.rbi +9 -4
  138. data/rbi/knockapi/internal/ms_teams_pagination.rbi +2 -1
  139. data/rbi/knockapi/internal/slack_channels_cursor.rbi +2 -1
  140. data/rbi/knockapi/internal/transport/base_client.rbi +158 -78
  141. data/rbi/knockapi/internal/transport/pooled_net_requester.rbi +32 -13
  142. data/rbi/knockapi/internal/type/array_of.rbi +34 -24
  143. data/rbi/knockapi/internal/type/base_model.rbi +151 -73
  144. data/rbi/knockapi/internal/type/base_page.rbi +12 -8
  145. data/rbi/knockapi/internal/type/boolean.rbi +16 -14
  146. data/rbi/knockapi/internal/type/converter.rbi +70 -28
  147. data/rbi/knockapi/internal/type/enum.rbi +28 -15
  148. data/rbi/knockapi/internal/type/file_input.rbi +8 -4
  149. data/rbi/knockapi/internal/type/hash_of.rbi +34 -24
  150. data/rbi/knockapi/internal/type/request_parameters.rbi +12 -4
  151. data/rbi/knockapi/internal/type/union.rbi +55 -19
  152. data/rbi/knockapi/internal/type/unknown.rbi +16 -6
  153. data/rbi/knockapi/internal/util.rbi +239 -87
  154. data/rbi/knockapi/internal.rbi +2 -0
  155. data/rbi/knockapi/models/activity.rbi +28 -22
  156. data/rbi/knockapi/models/audience_add_members_params.rbi +62 -27
  157. data/rbi/knockapi/models/audience_add_members_response.rbi +7 -0
  158. data/rbi/knockapi/models/audience_list_members_params.rbi +16 -5
  159. data/rbi/knockapi/models/audience_list_members_response.rbi +25 -11
  160. data/rbi/knockapi/models/audience_member.rbi +23 -11
  161. data/rbi/knockapi/models/audience_remove_members_params.rbi +65 -28
  162. data/rbi/knockapi/models/audience_remove_members_response.rbi +7 -0
  163. data/rbi/knockapi/models/bulk_operation.rbi +70 -42
  164. data/rbi/knockapi/models/bulk_operation_get_params.rbi +13 -5
  165. data/rbi/knockapi/models/channels/bulk_update_message_status_params.rbi +224 -79
  166. data/rbi/knockapi/models/condition.rbi +78 -31
  167. data/rbi/knockapi/models/identify_user_request.rbi +90 -36
  168. data/rbi/knockapi/models/inline_identify_user_request.rbi +135 -22
  169. data/rbi/knockapi/models/inline_object_request.rbi +76 -22
  170. data/rbi/knockapi/models/inline_tenant_request.rbi +7 -2
  171. data/rbi/knockapi/models/integrations/census_custom_destination_params.rbi +24 -15
  172. data/rbi/knockapi/models/integrations/census_custom_destination_response.rbi +21 -4
  173. data/rbi/knockapi/models/integrations/hightouch_embedded_destination_params.rbi +24 -15
  174. data/rbi/knockapi/models/integrations/hightouch_embedded_destination_response.rbi +21 -4
  175. data/rbi/knockapi/models/message.rbi +156 -72
  176. data/rbi/knockapi/models/message_archive_params.rbi +13 -5
  177. data/rbi/knockapi/models/message_delivery_log.rbi +153 -66
  178. data/rbi/knockapi/models/message_event.rbi +86 -37
  179. data/rbi/knockapi/models/message_get_content_params.rbi +13 -5
  180. data/rbi/knockapi/models/message_get_content_response.rbi +364 -203
  181. data/rbi/knockapi/models/message_get_params.rbi +13 -5
  182. data/rbi/knockapi/models/message_list_activities_params.rbi +24 -15
  183. data/rbi/knockapi/models/message_list_delivery_logs_params.rbi +23 -12
  184. data/rbi/knockapi/models/message_list_events_params.rbi +20 -12
  185. data/rbi/knockapi/models/message_list_params.rbi +147 -58
  186. data/rbi/knockapi/models/message_mark_as_interacted_params.rbi +21 -6
  187. data/rbi/knockapi/models/message_mark_as_read_params.rbi +13 -5
  188. data/rbi/knockapi/models/message_mark_as_seen_params.rbi +13 -5
  189. data/rbi/knockapi/models/message_mark_as_unread_params.rbi +16 -5
  190. data/rbi/knockapi/models/message_mark_as_unseen_params.rbi +16 -5
  191. data/rbi/knockapi/models/message_unarchive_params.rbi +13 -5
  192. data/rbi/knockapi/models/messages/batch_archive_params.rbi +23 -6
  193. data/rbi/knockapi/models/messages/batch_archive_response.rbi +4 -1
  194. data/rbi/knockapi/models/messages/batch_get_content_params.rbi +23 -6
  195. data/rbi/knockapi/models/messages/batch_get_content_response.rbi +367 -206
  196. data/rbi/knockapi/models/messages/batch_mark_as_interacted_params.rbi +22 -13
  197. data/rbi/knockapi/models/messages/batch_mark_as_interacted_response.rbi +4 -1
  198. data/rbi/knockapi/models/messages/batch_mark_as_read_params.rbi +23 -6
  199. data/rbi/knockapi/models/messages/batch_mark_as_read_response.rbi +4 -1
  200. data/rbi/knockapi/models/messages/batch_mark_as_seen_params.rbi +23 -6
  201. data/rbi/knockapi/models/messages/batch_mark_as_seen_response.rbi +4 -1
  202. data/rbi/knockapi/models/messages/batch_mark_as_unread_params.rbi +23 -6
  203. data/rbi/knockapi/models/messages/batch_mark_as_unread_response.rbi +4 -1
  204. data/rbi/knockapi/models/messages/batch_mark_as_unseen_params.rbi +23 -6
  205. data/rbi/knockapi/models/messages/batch_mark_as_unseen_response.rbi +4 -1
  206. data/rbi/knockapi/models/messages/batch_unarchive_params.rbi +23 -6
  207. data/rbi/knockapi/models/messages/batch_unarchive_response.rbi +4 -1
  208. data/rbi/knockapi/models/object.rbi +31 -10
  209. data/rbi/knockapi/models/object_add_subscriptions_params.rbi +44 -22
  210. data/rbi/knockapi/models/object_add_subscriptions_response.rbi +1 -1
  211. data/rbi/knockapi/models/object_delete_params.rbi +13 -5
  212. data/rbi/knockapi/models/object_delete_response.rbi +7 -0
  213. data/rbi/knockapi/models/object_delete_subscriptions_params.rbi +36 -14
  214. data/rbi/knockapi/models/object_delete_subscriptions_response.rbi +1 -1
  215. data/rbi/knockapi/models/object_get_channel_data_params.rbi +16 -5
  216. data/rbi/knockapi/models/object_get_params.rbi +13 -5
  217. data/rbi/knockapi/models/object_get_preferences_params.rbi +16 -5
  218. data/rbi/knockapi/models/object_list_messages_params.rbi +169 -60
  219. data/rbi/knockapi/models/object_list_params.rbi +43 -22
  220. data/rbi/knockapi/models/object_list_preferences_params.rbi +16 -5
  221. data/rbi/knockapi/models/object_list_preferences_response.rbi +1 -1
  222. data/rbi/knockapi/models/object_list_schedules_params.rbi +25 -16
  223. data/rbi/knockapi/models/object_list_subscriptions_params.rbi +150 -46
  224. data/rbi/knockapi/models/object_set_channel_data_params.rbi +16 -5
  225. data/rbi/knockapi/models/object_set_params.rbi +89 -33
  226. data/rbi/knockapi/models/object_set_preferences_params.rbi +16 -5
  227. data/rbi/knockapi/models/object_unset_channel_data_params.rbi +16 -5
  228. data/rbi/knockapi/models/object_unset_channel_data_response.rbi +7 -0
  229. data/rbi/knockapi/models/objects/bulk_add_subscriptions_params.rbi +77 -34
  230. data/rbi/knockapi/models/objects/bulk_delete_params.rbi +23 -6
  231. data/rbi/knockapi/models/objects/bulk_set_params.rbi +20 -11
  232. data/rbi/knockapi/models/page_info.rbi +22 -11
  233. data/rbi/knockapi/models/providers/ms_team_check_auth_params.rbi +23 -6
  234. data/rbi/knockapi/models/providers/ms_team_check_auth_response.rbi +53 -14
  235. data/rbi/knockapi/models/providers/ms_team_list_channels_params.rbi +53 -23
  236. data/rbi/knockapi/models/providers/ms_team_list_channels_response.rbi +57 -30
  237. data/rbi/knockapi/models/providers/ms_team_list_teams_params.rbi +62 -22
  238. data/rbi/knockapi/models/providers/ms_team_list_teams_response.rbi +23 -4
  239. data/rbi/knockapi/models/providers/ms_team_revoke_access_params.rbi +23 -6
  240. data/rbi/knockapi/models/providers/ms_team_revoke_access_response.rbi +14 -3
  241. data/rbi/knockapi/models/providers/slack_check_auth_params.rbi +23 -6
  242. data/rbi/knockapi/models/providers/slack_check_auth_response.rbi +53 -14
  243. data/rbi/knockapi/models/providers/slack_list_channels_params.rbi +58 -30
  244. data/rbi/knockapi/models/providers/slack_list_channels_response.rbi +29 -12
  245. data/rbi/knockapi/models/providers/slack_revoke_access_params.rbi +23 -6
  246. data/rbi/knockapi/models/providers/slack_revoke_access_response.rbi +14 -3
  247. data/rbi/knockapi/models/recipient.rbi +5 -2
  248. data/rbi/knockapi/models/recipient_reference.rbi +22 -5
  249. data/rbi/knockapi/models/recipient_request.rbi +11 -4
  250. data/rbi/knockapi/models/recipients/channel_data.rbi +123 -50
  251. data/rbi/knockapi/models/recipients/channel_data_request.rbi +54 -33
  252. data/rbi/knockapi/models/recipients/discord_channel_data.rbi +100 -53
  253. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +29 -1
  254. data/rbi/knockapi/models/recipients/inline_preference_set_request.rbi +3 -1
  255. data/rbi/knockapi/models/recipients/ms_teams_channel_data.rbi +109 -64
  256. data/rbi/knockapi/models/recipients/one_signal_channel_data.rbi +14 -3
  257. data/rbi/knockapi/models/recipients/preference_set.rbi +159 -88
  258. data/rbi/knockapi/models/recipients/preference_set_channel_type_setting.rbi +18 -6
  259. data/rbi/knockapi/models/recipients/preference_set_channel_types.rbi +276 -105
  260. data/rbi/knockapi/models/recipients/preference_set_request.rbi +162 -87
  261. data/rbi/knockapi/models/recipients/push_channel_data.rbi +14 -3
  262. data/rbi/knockapi/models/recipients/slack_channel_data.rbi +107 -49
  263. data/rbi/knockapi/models/recipients/subscription.rbi +29 -20
  264. data/rbi/knockapi/models/schedule.rbi +32 -27
  265. data/rbi/knockapi/models/schedule_create_params.rbi +52 -35
  266. data/rbi/knockapi/models/schedule_create_response.rbi +4 -1
  267. data/rbi/knockapi/models/schedule_delete_params.rbi +20 -6
  268. data/rbi/knockapi/models/schedule_delete_response.rbi +4 -1
  269. data/rbi/knockapi/models/schedule_list_params.rbi +23 -17
  270. data/rbi/knockapi/models/schedule_repeat_rule.rbi +69 -39
  271. data/rbi/knockapi/models/schedule_update_params.rbi +48 -27
  272. data/rbi/knockapi/models/schedule_update_response.rbi +4 -1
  273. data/rbi/knockapi/models/schedules/bulk_create_params.rbi +102 -61
  274. data/rbi/knockapi/models/tenant.rbi +71 -45
  275. data/rbi/knockapi/models/tenant_delete_params.rbi +13 -5
  276. data/rbi/knockapi/models/tenant_delete_response.rbi +7 -0
  277. data/rbi/knockapi/models/tenant_get_params.rbi +13 -5
  278. data/rbi/knockapi/models/tenant_list_params.rbi +22 -16
  279. data/rbi/knockapi/models/tenant_request.rbi +132 -57
  280. data/rbi/knockapi/models/tenant_set_params.rbi +134 -59
  281. data/rbi/knockapi/models/tenants/bulk_delete_params.rbi +23 -6
  282. data/rbi/knockapi/models/tenants/bulk_set_params.rbi +20 -11
  283. data/rbi/knockapi/models/user.rbi +32 -28
  284. data/rbi/knockapi/models/user_delete_params.rbi +13 -5
  285. data/rbi/knockapi/models/user_delete_response.rbi +7 -0
  286. data/rbi/knockapi/models/user_get_channel_data_params.rbi +13 -5
  287. data/rbi/knockapi/models/user_get_params.rbi +13 -5
  288. data/rbi/knockapi/models/user_get_preferences_params.rbi +19 -5
  289. data/rbi/knockapi/models/user_list_messages_params.rbi +168 -59
  290. data/rbi/knockapi/models/user_list_params.rbi +43 -22
  291. data/rbi/knockapi/models/user_list_preferences_params.rbi +16 -5
  292. data/rbi/knockapi/models/user_list_preferences_response.rbi +1 -1
  293. data/rbi/knockapi/models/user_list_schedules_params.rbi +22 -16
  294. data/rbi/knockapi/models/user_list_subscriptions_params.rbi +61 -23
  295. data/rbi/knockapi/models/user_merge_params.rbi +17 -6
  296. data/rbi/knockapi/models/user_set_channel_data_params.rbi +13 -5
  297. data/rbi/knockapi/models/user_set_preferences_params.rbi +13 -5
  298. data/rbi/knockapi/models/user_unset_channel_data_params.rbi +16 -5
  299. data/rbi/knockapi/models/user_unset_channel_data_response.rbi +7 -0
  300. data/rbi/knockapi/models/user_update_params.rbi +13 -5
  301. data/rbi/knockapi/models/users/bulk_delete_params.rbi +23 -6
  302. data/rbi/knockapi/models/users/bulk_identify_params.rbi +23 -11
  303. data/rbi/knockapi/models/users/bulk_set_preferences_params.rbi +26 -18
  304. data/rbi/knockapi/models/users/feed_get_settings_params.rbi +16 -5
  305. data/rbi/knockapi/models/users/feed_get_settings_response.rbi +47 -14
  306. data/rbi/knockapi/models/users/feed_list_items_params.rbi +119 -41
  307. data/rbi/knockapi/models/users/feed_list_items_response.rbi +197 -100
  308. data/rbi/knockapi/models/users/guide_get_channel_params.rbi +15 -5
  309. data/rbi/knockapi/models/users/guide_get_channel_response.rbi +84 -25
  310. data/rbi/knockapi/models/users/guide_mark_message_as_archived_params.rbi +29 -20
  311. data/rbi/knockapi/models/users/guide_mark_message_as_archived_response.rbi +14 -3
  312. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_params.rbi +29 -20
  313. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_response.rbi +14 -3
  314. data/rbi/knockapi/models/users/guide_mark_message_as_seen_params.rbi +29 -20
  315. data/rbi/knockapi/models/users/guide_mark_message_as_seen_response.rbi +14 -3
  316. data/rbi/knockapi/models/workflow_cancel_params.rbi +42 -17
  317. data/rbi/knockapi/models/workflow_cancel_response.rbi +7 -0
  318. data/rbi/knockapi/models/workflow_trigger_params.rbi +65 -37
  319. data/rbi/knockapi/models/workflow_trigger_response.rbi +14 -3
  320. data/rbi/knockapi/models.rbi +179 -0
  321. data/rbi/knockapi/request_options.rbi +18 -7
  322. data/rbi/knockapi/resources/audiences.rbi +22 -14
  323. data/rbi/knockapi/resources/bulk_operations.rbi +11 -3
  324. data/rbi/knockapi/resources/channels/bulk.rbi +15 -9
  325. data/rbi/knockapi/resources/channels.rbi +2 -1
  326. data/rbi/knockapi/resources/integrations/census.rbi +8 -4
  327. data/rbi/knockapi/resources/integrations/hightouch.rbi +8 -4
  328. data/rbi/knockapi/resources/integrations.rbi +2 -1
  329. data/rbi/knockapi/resources/messages/batch.rbi +58 -26
  330. data/rbi/knockapi/resources/messages.rbi +102 -43
  331. data/rbi/knockapi/resources/objects/bulk.rbi +25 -14
  332. data/rbi/knockapi/resources/objects.rbi +177 -107
  333. data/rbi/knockapi/resources/providers/ms_teams.rbi +35 -16
  334. data/rbi/knockapi/resources/providers/slack.rbi +28 -11
  335. data/rbi/knockapi/resources/providers.rbi +2 -1
  336. data/rbi/knockapi/resources/recipients/channel_data.rbi +2 -1
  337. data/rbi/knockapi/resources/recipients/preferences.rbi +2 -1
  338. data/rbi/knockapi/resources/recipients/subscriptions.rbi +2 -1
  339. data/rbi/knockapi/resources/recipients.rbi +2 -1
  340. data/rbi/knockapi/resources/schedules/bulk.rbi +9 -6
  341. data/rbi/knockapi/resources/schedules.rbi +44 -33
  342. data/rbi/knockapi/resources/shared.rbi +2 -1
  343. data/rbi/knockapi/resources/tenants/bulk.rbi +15 -9
  344. data/rbi/knockapi/resources/tenants.rbi +51 -20
  345. data/rbi/knockapi/resources/users/bulk.rbi +21 -14
  346. data/rbi/knockapi/resources/users/feeds.rbi +20 -9
  347. data/rbi/knockapi/resources/users/guides.rbi +23 -16
  348. data/rbi/knockapi/resources/users.rbi +160 -91
  349. data/rbi/knockapi/resources/workflows.rbi +38 -29
  350. data/sig/knockapi/internal/entries_cursor.rbs +0 -2
  351. data/sig/knockapi/internal/items_cursor.rbs +0 -2
  352. data/sig/knockapi/internal/transport/base_client.rbs +16 -1
  353. data/sig/knockapi/internal/transport/pooled_net_requester.rbs +4 -0
  354. data/sig/knockapi/internal/type/base_model.rbs +11 -5
  355. data/sig/knockapi/internal/type/base_page.rbs +1 -1
  356. data/sig/knockapi/internal/type/converter.rbs +2 -0
  357. data/sig/knockapi/internal/type/enum.rbs +1 -0
  358. data/sig/knockapi/internal/type/request_parameters.rbs +3 -1
  359. data/sig/knockapi/internal/type/union.rbs +1 -0
  360. data/sig/knockapi/internal/util.rbs +15 -0
  361. data/sig/knockapi/internal.rbs +2 -0
  362. data/sig/knockapi/models/activity.rbs +0 -2
  363. data/sig/knockapi/models/audience_add_members_params.rbs +6 -12
  364. data/sig/knockapi/models/audience_add_members_response.rbs +5 -0
  365. data/sig/knockapi/models/audience_list_members_params.rbs +0 -2
  366. data/sig/knockapi/models/audience_list_members_response.rbs +6 -8
  367. data/sig/knockapi/models/audience_member.rbs +3 -5
  368. data/sig/knockapi/models/audience_remove_members_params.rbs +6 -14
  369. data/sig/knockapi/models/audience_remove_members_response.rbs +5 -0
  370. data/sig/knockapi/models/bulk_operation.rbs +9 -13
  371. data/sig/knockapi/models/bulk_operation_get_params.rbs +0 -2
  372. data/sig/knockapi/models/channels/bulk_update_message_status_params.rbs +0 -2
  373. data/sig/knockapi/models/condition.rbs +4 -6
  374. data/sig/knockapi/models/identify_user_request.rbs +0 -2
  375. data/sig/knockapi/models/inline_identify_user_request.rbs +26 -4
  376. data/sig/knockapi/models/inline_object_request.rbs +0 -2
  377. data/sig/knockapi/models/inline_tenant_request.rbs +2 -2
  378. data/sig/knockapi/models/integrations/census_custom_destination_params.rbs +0 -2
  379. data/sig/knockapi/models/integrations/census_custom_destination_response.rbs +0 -2
  380. data/sig/knockapi/models/integrations/hightouch_embedded_destination_params.rbs +0 -2
  381. data/sig/knockapi/models/integrations/hightouch_embedded_destination_response.rbs +0 -2
  382. data/sig/knockapi/models/message.rbs +15 -23
  383. data/sig/knockapi/models/message_archive_params.rbs +0 -2
  384. data/sig/knockapi/models/message_delivery_log.rbs +24 -30
  385. data/sig/knockapi/models/message_event.rbs +4 -6
  386. data/sig/knockapi/models/message_get_content_params.rbs +0 -2
  387. data/sig/knockapi/models/message_get_content_response.rbs +2 -24
  388. data/sig/knockapi/models/message_get_params.rbs +0 -2
  389. data/sig/knockapi/models/message_list_activities_params.rbs +0 -2
  390. data/sig/knockapi/models/message_list_delivery_logs_params.rbs +0 -2
  391. data/sig/knockapi/models/message_list_events_params.rbs +0 -2
  392. data/sig/knockapi/models/message_list_params.rbs +17 -21
  393. data/sig/knockapi/models/message_mark_as_interacted_params.rbs +0 -2
  394. data/sig/knockapi/models/message_mark_as_read_params.rbs +0 -2
  395. data/sig/knockapi/models/message_mark_as_seen_params.rbs +0 -2
  396. data/sig/knockapi/models/message_mark_as_unread_params.rbs +0 -2
  397. data/sig/knockapi/models/message_mark_as_unseen_params.rbs +0 -2
  398. data/sig/knockapi/models/message_unarchive_params.rbs +0 -2
  399. data/sig/knockapi/models/messages/batch_archive_params.rbs +0 -2
  400. data/sig/knockapi/models/messages/batch_archive_response.rbs +1 -1
  401. data/sig/knockapi/models/messages/batch_get_content_params.rbs +0 -2
  402. data/sig/knockapi/models/messages/batch_get_content_response.rbs +2 -24
  403. data/sig/knockapi/models/messages/batch_mark_as_interacted_params.rbs +0 -2
  404. data/sig/knockapi/models/messages/batch_mark_as_interacted_response.rbs +1 -2
  405. data/sig/knockapi/models/messages/batch_mark_as_read_params.rbs +0 -2
  406. data/sig/knockapi/models/messages/batch_mark_as_read_response.rbs +1 -1
  407. data/sig/knockapi/models/messages/batch_mark_as_seen_params.rbs +0 -2
  408. data/sig/knockapi/models/messages/batch_mark_as_seen_response.rbs +1 -1
  409. data/sig/knockapi/models/messages/batch_mark_as_unread_params.rbs +0 -2
  410. data/sig/knockapi/models/messages/batch_mark_as_unread_response.rbs +1 -1
  411. data/sig/knockapi/models/messages/batch_mark_as_unseen_params.rbs +0 -2
  412. data/sig/knockapi/models/messages/batch_mark_as_unseen_response.rbs +1 -1
  413. data/sig/knockapi/models/messages/batch_unarchive_params.rbs +0 -2
  414. data/sig/knockapi/models/messages/batch_unarchive_response.rbs +1 -1
  415. data/sig/knockapi/models/object.rbs +8 -4
  416. data/sig/knockapi/models/object_add_subscriptions_params.rbs +0 -2
  417. data/sig/knockapi/models/object_add_subscriptions_response.rbs +1 -1
  418. data/sig/knockapi/models/object_delete_params.rbs +0 -2
  419. data/sig/knockapi/models/object_delete_response.rbs +5 -0
  420. data/sig/knockapi/models/object_delete_subscriptions_params.rbs +0 -2
  421. data/sig/knockapi/models/object_delete_subscriptions_response.rbs +1 -1
  422. data/sig/knockapi/models/object_get_channel_data_params.rbs +0 -2
  423. data/sig/knockapi/models/object_get_params.rbs +0 -2
  424. data/sig/knockapi/models/object_get_preferences_params.rbs +0 -2
  425. data/sig/knockapi/models/object_list_messages_params.rbs +17 -21
  426. data/sig/knockapi/models/object_list_params.rbs +6 -8
  427. data/sig/knockapi/models/object_list_preferences_params.rbs +0 -2
  428. data/sig/knockapi/models/object_list_preferences_response.rbs +1 -1
  429. data/sig/knockapi/models/object_list_schedules_params.rbs +0 -2
  430. data/sig/knockapi/models/object_list_subscriptions_params.rbs +11 -15
  431. data/sig/knockapi/models/object_set_channel_data_params.rbs +0 -2
  432. data/sig/knockapi/models/object_set_params.rbs +0 -2
  433. data/sig/knockapi/models/object_set_preferences_params.rbs +0 -2
  434. data/sig/knockapi/models/object_unset_channel_data_params.rbs +0 -2
  435. data/sig/knockapi/models/object_unset_channel_data_response.rbs +5 -0
  436. data/sig/knockapi/models/objects/bulk_add_subscriptions_params.rbs +3 -7
  437. data/sig/knockapi/models/objects/bulk_delete_params.rbs +0 -2
  438. data/sig/knockapi/models/objects/bulk_set_params.rbs +3 -5
  439. data/sig/knockapi/models/page_info.rbs +0 -2
  440. data/sig/knockapi/models/providers/ms_team_check_auth_params.rbs +0 -2
  441. data/sig/knockapi/models/providers/ms_team_check_auth_response.rbs +0 -4
  442. data/sig/knockapi/models/providers/ms_team_list_channels_params.rbs +5 -9
  443. data/sig/knockapi/models/providers/ms_team_list_channels_response.rbs +0 -4
  444. data/sig/knockapi/models/providers/ms_team_list_teams_params.rbs +5 -9
  445. data/sig/knockapi/models/providers/ms_team_list_teams_response.rbs +0 -2
  446. data/sig/knockapi/models/providers/ms_team_revoke_access_params.rbs +0 -2
  447. data/sig/knockapi/models/providers/ms_team_revoke_access_response.rbs +0 -2
  448. data/sig/knockapi/models/providers/slack_check_auth_params.rbs +0 -2
  449. data/sig/knockapi/models/providers/slack_check_auth_response.rbs +0 -4
  450. data/sig/knockapi/models/providers/slack_list_channels_params.rbs +5 -9
  451. data/sig/knockapi/models/providers/slack_list_channels_response.rbs +0 -2
  452. data/sig/knockapi/models/providers/slack_revoke_access_params.rbs +0 -2
  453. data/sig/knockapi/models/providers/slack_revoke_access_response.rbs +0 -2
  454. data/sig/knockapi/models/recipient.rbs +2 -2
  455. data/sig/knockapi/models/recipient_reference.rbs +2 -4
  456. data/sig/knockapi/models/recipient_request.rbs +3 -3
  457. data/sig/knockapi/models/recipients/channel_data.rbs +15 -17
  458. data/sig/knockapi/models/recipients/channel_data_request.rbs +9 -11
  459. data/sig/knockapi/models/recipients/discord_channel_data.rbs +9 -17
  460. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +14 -1
  461. data/sig/knockapi/models/recipients/inline_preference_set_request.rbs +1 -1
  462. data/sig/knockapi/models/recipients/ms_teams_channel_data.rbs +9 -17
  463. data/sig/knockapi/models/recipients/one_signal_channel_data.rbs +0 -2
  464. data/sig/knockapi/models/recipients/preference_set.rbs +25 -31
  465. data/sig/knockapi/models/recipients/preference_set_channel_type_setting.rbs +3 -7
  466. data/sig/knockapi/models/recipients/preference_set_channel_types.rbs +42 -48
  467. data/sig/knockapi/models/recipients/preference_set_request.rbs +25 -31
  468. data/sig/knockapi/models/recipients/push_channel_data.rbs +0 -2
  469. data/sig/knockapi/models/recipients/slack_channel_data.rbs +9 -17
  470. data/sig/knockapi/models/recipients/subscription.rbs +3 -5
  471. data/sig/knockapi/models/schedule.rbs +3 -5
  472. data/sig/knockapi/models/schedule_create_params.rbs +3 -5
  473. data/sig/knockapi/models/schedule_create_response.rbs +1 -1
  474. data/sig/knockapi/models/schedule_delete_params.rbs +0 -2
  475. data/sig/knockapi/models/schedule_delete_response.rbs +1 -1
  476. data/sig/knockapi/models/schedule_list_params.rbs +0 -2
  477. data/sig/knockapi/models/schedule_repeat_rule.rbs +8 -10
  478. data/sig/knockapi/models/schedule_update_params.rbs +5 -7
  479. data/sig/knockapi/models/schedule_update_response.rbs +1 -1
  480. data/sig/knockapi/models/schedules/bulk_create_params.rbs +8 -14
  481. data/sig/knockapi/models/tenant.rbs +9 -15
  482. data/sig/knockapi/models/tenant_delete_params.rbs +0 -2
  483. data/sig/knockapi/models/tenant_delete_response.rbs +5 -0
  484. data/sig/knockapi/models/tenant_get_params.rbs +0 -2
  485. data/sig/knockapi/models/tenant_list_params.rbs +0 -2
  486. data/sig/knockapi/models/tenant_request.rbs +13 -19
  487. data/sig/knockapi/models/tenant_set_params.rbs +13 -19
  488. data/sig/knockapi/models/tenants/bulk_delete_params.rbs +0 -2
  489. data/sig/knockapi/models/tenants/bulk_set_params.rbs +0 -2
  490. data/sig/knockapi/models/user.rbs +0 -2
  491. data/sig/knockapi/models/user_delete_params.rbs +0 -2
  492. data/sig/knockapi/models/user_delete_response.rbs +5 -0
  493. data/sig/knockapi/models/user_get_channel_data_params.rbs +0 -2
  494. data/sig/knockapi/models/user_get_params.rbs +0 -2
  495. data/sig/knockapi/models/user_get_preferences_params.rbs +0 -2
  496. data/sig/knockapi/models/user_list_messages_params.rbs +17 -21
  497. data/sig/knockapi/models/user_list_params.rbs +6 -8
  498. data/sig/knockapi/models/user_list_preferences_params.rbs +0 -2
  499. data/sig/knockapi/models/user_list_preferences_response.rbs +1 -1
  500. data/sig/knockapi/models/user_list_schedules_params.rbs +0 -2
  501. data/sig/knockapi/models/user_list_subscriptions_params.rbs +6 -8
  502. data/sig/knockapi/models/user_merge_params.rbs +0 -2
  503. data/sig/knockapi/models/user_set_channel_data_params.rbs +0 -2
  504. data/sig/knockapi/models/user_set_preferences_params.rbs +0 -2
  505. data/sig/knockapi/models/user_unset_channel_data_params.rbs +0 -2
  506. data/sig/knockapi/models/user_unset_channel_data_response.rbs +5 -0
  507. data/sig/knockapi/models/user_update_params.rbs +0 -2
  508. data/sig/knockapi/models/users/bulk_delete_params.rbs +0 -2
  509. data/sig/knockapi/models/users/bulk_identify_params.rbs +3 -5
  510. data/sig/knockapi/models/users/bulk_set_preferences_params.rbs +3 -5
  511. data/sig/knockapi/models/users/feed_get_settings_params.rbs +0 -2
  512. data/sig/knockapi/models/users/feed_get_settings_response.rbs +0 -4
  513. data/sig/knockapi/models/users/feed_list_items_params.rbs +0 -2
  514. data/sig/knockapi/models/users/feed_list_items_response.rbs +4 -14
  515. data/sig/knockapi/models/users/guide_get_channel_params.rbs +0 -2
  516. data/sig/knockapi/models/users/guide_get_channel_response.rbs +0 -6
  517. data/sig/knockapi/models/users/guide_mark_message_as_archived_params.rbs +0 -2
  518. data/sig/knockapi/models/users/guide_mark_message_as_archived_response.rbs +0 -2
  519. data/sig/knockapi/models/users/guide_mark_message_as_interacted_params.rbs +0 -2
  520. data/sig/knockapi/models/users/guide_mark_message_as_interacted_response.rbs +0 -2
  521. data/sig/knockapi/models/users/guide_mark_message_as_seen_params.rbs +0 -2
  522. data/sig/knockapi/models/users/guide_mark_message_as_seen_response.rbs +0 -2
  523. data/sig/knockapi/models/workflow_cancel_params.rbs +0 -2
  524. data/sig/knockapi/models/workflow_cancel_response.rbs +5 -0
  525. data/sig/knockapi/models/workflow_trigger_params.rbs +0 -2
  526. data/sig/knockapi/models/workflow_trigger_response.rbs +0 -2
  527. data/sig/knockapi/models.rbs +173 -0
  528. data/sig/knockapi/request_options.rbs +1 -1
  529. data/sig/knockapi/resources/audiences.rbs +2 -2
  530. data/sig/knockapi/resources/bulk_operations.rbs +1 -1
  531. data/sig/knockapi/resources/channels/bulk.rbs +1 -1
  532. data/sig/knockapi/resources/messages.rbs +15 -17
  533. data/sig/knockapi/resources/objects/bulk.rbs +5 -5
  534. data/sig/knockapi/resources/objects.rbs +19 -19
  535. data/sig/knockapi/resources/providers/ms_teams.rbs +2 -2
  536. data/sig/knockapi/resources/providers/slack.rbs +1 -1
  537. data/sig/knockapi/resources/schedules/bulk.rbs +2 -2
  538. data/sig/knockapi/resources/schedules.rbs +3 -3
  539. data/sig/knockapi/resources/tenants/bulk.rbs +2 -2
  540. data/sig/knockapi/resources/tenants.rbs +4 -4
  541. data/sig/knockapi/resources/users/bulk.rbs +5 -5
  542. data/sig/knockapi/resources/users.rbs +19 -19
  543. metadata +29 -8
  544. data/lib/knockapi/models/messages/activity_list_params.rb +0 -48
  545. data/lib/knockapi/resources/messages/activities.rb +0 -47
  546. data/rbi/knockapi/models/messages/activity_list_params.rbi +0 -75
  547. data/rbi/knockapi/resources/messages/activities.rbi +0 -38
  548. data/sig/knockapi/models/messages/activity_list_params.rbs +0 -45
  549. data/sig/knockapi/resources/messages/activities.rbs +0 -18
@@ -6,6 +6,7 @@ module Knockapi
6
6
  # @abstract
7
7
  class BaseModel
8
8
  extend Knockapi::Internal::Type::Converter
9
+ extend Knockapi::Internal::Util::SorbetRuntimeSupport
9
10
 
10
11
  class << self
11
12
  # @api private
@@ -13,11 +14,17 @@ module Knockapi
13
14
  # Assumes superclass fields are totally defined before fields are accessed /
14
15
  # defined on subclasses.
15
16
  #
16
- # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
17
- def known_fields
18
- @known_fields ||= (self < Knockapi::Internal::Type::BaseModel ? superclass.known_fields.dup : {})
17
+ # @param child [Class<Knockapi::Internal::Type::BaseModel>]
18
+ def inherited(child)
19
+ super
20
+ child.known_fields.replace(known_fields.dup)
19
21
  end
20
22
 
23
+ # @api private
24
+ #
25
+ # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
26
+ def known_fields = @known_fields ||= {}
27
+
21
28
  # @api private
22
29
  #
23
30
  # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
@@ -206,7 +213,7 @@ module Knockapi
206
213
  #
207
214
  # @option state [Integer] :branched
208
215
  #
209
- # @return [Knockapi::Internal::Type::BaseModel, Object]
216
+ # @return [self, Object]
210
217
  def coerce(value, state:)
211
218
  exactness = state.fetch(:exactness)
212
219
 
@@ -265,7 +272,7 @@ module Knockapi
265
272
 
266
273
  # @api private
267
274
  #
268
- # @param value [Knockapi::Internal::Type::BaseModel, Object]
275
+ # @param value [self, Object]
269
276
  #
270
277
  # @param state [Hash{Symbol=>Object}] .
271
278
  #
@@ -306,6 +313,39 @@ module Knockapi
306
313
  end
307
314
  end
308
315
 
316
+ class << self
317
+ # @api private
318
+ #
319
+ # @param model [Knockapi::Internal::Type::BaseModel]
320
+ # @param convert [Boolean]
321
+ #
322
+ # @return [Hash{Symbol=>Object}]
323
+ def recursively_to_h(model, convert:)
324
+ rec = ->(x) do
325
+ case x
326
+ in Knockapi::Internal::Type::BaseModel
327
+ if convert
328
+ fields = x.class.known_fields
329
+ x.to_h.to_h do |key, val|
330
+ [key, rec.call(fields.key?(key) ? x.public_send(key) : val)]
331
+ rescue Knockapi::Errors::ConversionError
332
+ [key, rec.call(val)]
333
+ end
334
+ else
335
+ rec.call(x.to_h)
336
+ end
337
+ in Hash
338
+ x.transform_values(&rec)
339
+ in Array
340
+ x.map(&rec)
341
+ else
342
+ x
343
+ end
344
+ end
345
+ rec.call(model)
346
+ end
347
+ end
348
+
309
349
  # @api public
310
350
  #
311
351
  # Returns the raw value associated with the given key, if found. Otherwise, nil is
@@ -342,9 +382,25 @@ module Knockapi
342
382
 
343
383
  alias_method :to_hash, :to_h
344
384
 
385
+ # @api public
386
+ #
387
+ # In addition to the behaviour of `#to_h`, this method will recursively call
388
+ # `#to_h` on nested models.
389
+ #
390
+ # @return [Hash{Symbol=>Object}]
391
+ def deep_to_h = self.class.recursively_to_h(@data, convert: false)
392
+
345
393
  # @param keys [Array<Symbol>, nil]
346
394
  #
347
395
  # @return [Hash{Symbol=>Object}]
396
+ #
397
+ # @example
398
+ # # `condition` is a `Knockapi::Condition`
399
+ # condition => {
400
+ # argument: argument,
401
+ # operator: operator,
402
+ # variable: variable
403
+ # }
348
404
  def deconstruct_keys(keys)
349
405
  (keys || self.class.known_fields.keys)
350
406
  .filter_map do |k|
@@ -357,29 +413,6 @@ module Knockapi
357
413
  .to_h
358
414
  end
359
415
 
360
- class << self
361
- # @api private
362
- #
363
- # @param model [Knockapi::Internal::Type::BaseModel]
364
- #
365
- # @return [Hash{Symbol=>Object}]
366
- def walk(model)
367
- walk = ->(x) do
368
- case x
369
- in Knockapi::Internal::Type::BaseModel
370
- walk.call(x.to_h)
371
- in Hash
372
- x.transform_values(&walk)
373
- in Array
374
- x.map(&walk)
375
- else
376
- x
377
- end
378
- end
379
- walk.call(model)
380
- end
381
- end
382
-
383
416
  # @api public
384
417
  #
385
418
  # @param a [Object]
@@ -397,15 +430,7 @@ module Knockapi
397
430
  # Create a new instance of a model.
398
431
  #
399
432
  # @param data [Hash{Symbol=>Object}, self]
400
- def initialize(data = {})
401
- case Knockapi::Internal::Util.coerce_hash(data)
402
- in Hash => coerced
403
- @data = coerced
404
- else
405
- message = "Expected a #{Hash} or #{Knockapi::Internal::Type::BaseModel}, got #{data.inspect}"
406
- raise ArgumentError.new(message)
407
- end
408
- end
433
+ def initialize(data = {}) = (@data = Knockapi::Internal::Util.coerce_hash!(data).to_h)
409
434
 
410
435
  class << self
411
436
  # @api private
@@ -433,12 +458,19 @@ module Knockapi
433
458
  # @api public
434
459
  #
435
460
  # @return [String]
436
- def to_s = self.class.walk(@data).to_s
461
+ def to_s = deep_to_h.to_s
437
462
 
438
463
  # @api private
439
464
  #
440
465
  # @return [String]
441
- def inspect = "#<#{self.class}:0x#{object_id.to_s(16)} #{self}>"
466
+ def inspect
467
+ converted = self.class.recursively_to_h(self, convert: true)
468
+ "#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>"
469
+ end
470
+
471
+ define_sorbet_constant!(:KnownField) do
472
+ T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} }
473
+ end
442
474
  end
443
475
  end
444
476
  end
@@ -5,6 +5,8 @@ module Knockapi
5
5
  module Type
6
6
  # @api private
7
7
  module Converter
8
+ extend Knockapi::Internal::Util::SorbetRuntimeSupport
9
+
8
10
  # rubocop:disable Lint/UnusedMethodArgument
9
11
 
10
12
  # @api private
@@ -268,6 +270,22 @@ module Knockapi
268
270
  end
269
271
  end
270
272
  end
273
+
274
+ define_sorbet_constant!(:Input) do
275
+ T.type_alias { T.any(Knockapi::Internal::Type::Converter, T::Class[T.anything]) }
276
+ end
277
+ define_sorbet_constant!(:CoerceState) do
278
+ T.type_alias do
279
+ {
280
+ strictness: T.any(T::Boolean, Symbol),
281
+ exactness: {yes: Integer, no: Integer, maybe: Integer},
282
+ branched: Integer
283
+ }
284
+ end
285
+ end
286
+ define_sorbet_constant!(:DumpState) do
287
+ T.type_alias { {can_retry: T::Boolean} }
288
+ end
271
289
  end
272
290
  end
273
291
  end
@@ -17,6 +17,7 @@ module Knockapi
17
17
  # values safely.
18
18
  module Enum
19
19
  include Knockapi::Internal::Type::Converter
20
+ include Knockapi::Internal::Util::SorbetRuntimeSupport
20
21
 
21
22
  # All of the valid Symbol values for this enum.
22
23
  #
@@ -29,7 +29,7 @@ module Knockapi
29
29
  #
30
30
  # @option spec [Boolean] :"nil?"
31
31
  #
32
- # @return [Knockapi::Internal::Type::HashOf]
32
+ # @return [self]
33
33
  def self.[](...) = new(...)
34
34
 
35
35
  # @api public
@@ -5,10 +5,10 @@ module Knockapi
5
5
  module Type
6
6
  # @api private
7
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
8
+ # @!attribute request_options
9
+ # Options to specify HTTP behaviour for this request.
10
+ #
11
+ # @return [Knockapi::RequestOptions, Hash{Symbol=>Object}]
12
12
 
13
13
  # @param mod [Module]
14
14
  def self.included(mod)
@@ -28,14 +28,8 @@ module Knockapi
28
28
  state = {can_retry: true}
29
29
  case (dumped = dump(params, state: state))
30
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
31
+ options = Knockapi::Internal::Util.coerce_hash!(dumped[:request_options]).to_h
32
+ request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
39
33
  [dumped.except(:request_options), request_options]
40
34
  else
41
35
  [dumped, nil]
@@ -6,17 +6,18 @@ module Knockapi
6
6
  # @api private
7
7
  #
8
8
  # @example
9
- # # `recipient` is a `Knockapi::Models::Recipient`
9
+ # # `recipient` is a `Knockapi::Recipient`
10
10
  # case recipient
11
- # when Knockapi::Models::User
11
+ # when Knockapi::User
12
12
  # puts(recipient.id)
13
- # when Knockapi::Models::Object
13
+ # when Knockapi::Object
14
14
  # puts(recipient._typename)
15
15
  # else
16
16
  # puts(recipient)
17
17
  # end
18
18
  module Union
19
19
  include Knockapi::Internal::Type::Converter
20
+ include Knockapi::Internal::Util::SorbetRuntimeSupport
20
21
 
21
22
  # @api private
22
23
  #
@@ -128,6 +128,22 @@ module Knockapi
128
128
  input.respond_to?(:to_h) ? input.to_h : input
129
129
  end
130
130
  end
131
+
132
+ # @api private
133
+ #
134
+ # @param input [Object]
135
+ #
136
+ # @raise [ArgumentError]
137
+ # @return [Hash{Object=>Object}, nil]
138
+ def coerce_hash!(input)
139
+ case coerce_hash(input)
140
+ in Hash | nil => coerced
141
+ coerced
142
+ else
143
+ message = "Expected a #{Hash} or #{Knockapi::Internal::Type::BaseModel}, got #{data.inspect}"
144
+ raise ArgumentError.new(message)
145
+ end
146
+ end
131
147
  end
132
148
 
133
149
  class << self
@@ -454,7 +470,7 @@ module Knockapi
454
470
  # @type [Regexp]
455
471
  JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
456
472
  # @type [Regexp]
457
- JSONL_CONTENT = %r{^application/(?:x-)?jsonl}
473
+ JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
458
474
 
459
475
  class << self
460
476
  # @api private
@@ -519,7 +535,7 @@ module Knockapi
519
535
  filename = ERB::Util.url_encode(val.filename)
520
536
  y << "; filename=\"#{filename}\""
521
537
  in Pathname | IO
522
- filename = ERB::Util.url_encode(File.basename(val.to_path))
538
+ filename = ERB::Util.url_encode(::File.basename(val.to_path))
523
539
  y << "; filename=\"#{filename}\""
524
540
  else
525
541
  end
@@ -785,6 +801,62 @@ module Knockapi
785
801
  end
786
802
  end
787
803
  end
804
+
805
+ # @api private
806
+ module SorbetRuntimeSupport
807
+ class MissingSorbetRuntimeError < ::RuntimeError
808
+ end
809
+
810
+ # @api private
811
+ #
812
+ # @return [Hash{Symbol=>Object}]
813
+ private def sorbet_runtime_constants = @sorbet_runtime_constants ||= {}
814
+
815
+ # @api private
816
+ #
817
+ # @param name [Symbol]
818
+ def const_missing(name)
819
+ super unless sorbet_runtime_constants.key?(name)
820
+
821
+ unless Object.const_defined?(:T)
822
+ message = "Trying to access a Sorbet constant #{name.inspect} without `sorbet-runtime`."
823
+ raise MissingSorbetRuntimeError.new(message)
824
+ end
825
+
826
+ sorbet_runtime_constants.fetch(name).call
827
+ end
828
+
829
+ # @api private
830
+ #
831
+ # @param name [Symbol]
832
+ # @param blk [Proc]
833
+ def define_sorbet_constant!(name, &blk) = sorbet_runtime_constants.store(name, blk)
834
+ end
835
+
836
+ extend Knockapi::Internal::Util::SorbetRuntimeSupport
837
+
838
+ define_sorbet_constant!(:ParsedUri) do
839
+ T.type_alias do
840
+ {
841
+ scheme: T.nilable(String),
842
+ host: T.nilable(String),
843
+ port: T.nilable(Integer),
844
+ path: T.nilable(String),
845
+ query: T::Hash[String, T::Array[String]]
846
+ }
847
+ end
848
+ end
849
+
850
+ define_sorbet_constant!(:ServerSentEvent) do
851
+ T.type_alias do
852
+ {
853
+ event: T.nilable(String),
854
+ data: T.nilable(String),
855
+ id: T.nilable(String),
856
+ retry: T.nilable(Integer)
857
+ }
858
+ end
859
+ end
788
860
  end
789
861
  end
790
862
  end
@@ -2,10 +2,16 @@
2
2
 
3
3
  module Knockapi
4
4
  module Internal
5
+ extend Knockapi::Internal::Util::SorbetRuntimeSupport
6
+
5
7
  OMIT =
6
8
  Object.new.tap do
7
9
  _1.define_singleton_method(:inspect) { "#<#{Knockapi::Internal}::OMIT>" }
8
10
  end
9
11
  .freeze
12
+
13
+ define_sorbet_constant!(:AnyHash) do
14
+ T.type_alias { T::Hash[Symbol, T.anything] }
15
+ end
10
16
  end
11
17
  end
@@ -19,8 +19,8 @@ module Knockapi
19
19
  # @!attribute actor
20
20
  # A recipient of a notification, which is either a user or an object.
21
21
  #
22
- # @return [Knockapi::Models::User, Knockapi::Models::Object, nil]
23
- optional :actor, union: -> { Knockapi::Models::Recipient }, nil?: true
22
+ # @return [Knockapi::User, Knockapi::Object, nil]
23
+ optional :actor, union: -> { Knockapi::Recipient }, nil?: true
24
24
 
25
25
  # @!attribute data
26
26
  # The workflow trigger `data` payload associated with the activity.
@@ -37,8 +37,8 @@ module Knockapi
37
37
  # @!attribute recipient
38
38
  # A recipient of a notification, which is either a user or an object.
39
39
  #
40
- # @return [Knockapi::Models::User, Knockapi::Models::Object, nil]
41
- optional :recipient, union: -> { Knockapi::Models::Recipient }
40
+ # @return [Knockapi::User, Knockapi::Object, nil]
41
+ optional :recipient, union: -> { Knockapi::Recipient }
42
42
 
43
43
  # @!attribute updated_at
44
44
  # Timestamp when the activity was last updated.
@@ -56,13 +56,13 @@ module Knockapi
56
56
  #
57
57
  # @param _typename [String] The typename of the schema.
58
58
  #
59
- # @param actor [Knockapi::Models::User, Knockapi::Models::Object, nil] A recipient of a notification, which is either a user or an object.
59
+ # @param actor [Knockapi::User, Knockapi::Object, nil] A recipient of a notification, which is either a user or an object.
60
60
  #
61
61
  # @param data [Hash{Symbol=>Object}, nil] The workflow trigger `data` payload associated with the activity.
62
62
  #
63
63
  # @param inserted_at [Time] Timestamp when the activity was created.
64
64
  #
65
- # @param recipient [Knockapi::Models::User, Knockapi::Models::Object] A recipient of a notification, which is either a user or an object.
65
+ # @param recipient [Knockapi::User, Knockapi::Object] A recipient of a notification, which is either a user or an object.
66
66
  #
67
67
  # @param updated_at [Time] Timestamp when the activity was last updated.
68
68
  end
@@ -10,20 +10,20 @@ module Knockapi
10
10
  # @!attribute members
11
11
  # A list of audience members to add.
12
12
  #
13
- # @return [Array<Knockapi::Models::AudienceAddMembersParams::Member>]
14
- required :members,
15
- -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::AudienceAddMembersParams::Member] }
13
+ # @return [Array<Knockapi::AudienceAddMembersParams::Member>]
14
+ required :members, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::AudienceAddMembersParams::Member] }
16
15
 
17
16
  # @!method initialize(members:, request_options: {})
18
- # @param members [Array<Knockapi::Models::AudienceAddMembersParams::Member>] A list of audience members to add.
17
+ # @param members [Array<Knockapi::AudienceAddMembersParams::Member>] A list of audience members to add.
19
18
  #
20
19
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}]
21
20
 
22
21
  class Member < Knockapi::Internal::Type::BaseModel
23
22
  # @!attribute user
23
+ # An object containing the user's ID.
24
24
  #
25
- # @return [Knockapi::Models::AudienceAddMembersParams::Member::User]
26
- required :user, -> { Knockapi::Models::AudienceAddMembersParams::Member::User }
25
+ # @return [Knockapi::AudienceAddMembersParams::Member::User]
26
+ required :user, -> { Knockapi::AudienceAddMembersParams::Member::User }
27
27
 
28
28
  # @!attribute tenant
29
29
  # The unique identifier for the tenant.
@@ -34,11 +34,11 @@ module Knockapi
34
34
  # @!method initialize(user:, tenant: nil)
35
35
  # An audience member.
36
36
  #
37
- # @param user [Knockapi::Models::AudienceAddMembersParams::Member::User]
37
+ # @param user [Knockapi::AudienceAddMembersParams::Member::User] An object containing the user's ID.
38
38
  #
39
39
  # @param tenant [String, nil] The unique identifier for the tenant.
40
40
 
41
- # @see Knockapi::Models::AudienceAddMembersParams::Member#user
41
+ # @see Knockapi::AudienceAddMembersParams::Member#user
42
42
  class User < Knockapi::Internal::Type::BaseModel
43
43
  # @!attribute id
44
44
  # The ID for the user that you set when identifying them in Knock.
@@ -47,6 +47,8 @@ module Knockapi
47
47
  optional :id, String
48
48
 
49
49
  # @!method initialize(id: nil)
50
+ # An object containing the user's ID.
51
+ #
50
52
  # @param id [String] The ID for the user that you set when identifying them in Knock.
51
53
  end
52
54
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Models
5
+ AudienceAddMembersResponse = String
6
+ end
7
+ end
@@ -7,21 +7,21 @@ module Knockapi
7
7
  # @!attribute entries
8
8
  # A list of audience members.
9
9
  #
10
- # @return [Array<Knockapi::Models::AudienceMember>]
11
- required :entries, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::AudienceMember] }
10
+ # @return [Array<Knockapi::AudienceMember>]
11
+ required :entries, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::AudienceMember] }
12
12
 
13
13
  # @!attribute page_info
14
14
  # Pagination information for a list of resources.
15
15
  #
16
- # @return [Knockapi::Models::PageInfo]
17
- required :page_info, -> { Knockapi::Models::PageInfo }
16
+ # @return [Knockapi::PageInfo]
17
+ required :page_info, -> { Knockapi::PageInfo }
18
18
 
19
19
  # @!method initialize(entries:, page_info:)
20
20
  # A paginated list of audience members.
21
21
  #
22
- # @param entries [Array<Knockapi::Models::AudienceMember>] A list of audience members.
22
+ # @param entries [Array<Knockapi::AudienceMember>] A list of audience members.
23
23
  #
24
- # @param page_info [Knockapi::Models::PageInfo] Pagination information for a list of resources.
24
+ # @param page_info [Knockapi::PageInfo] Pagination information for a list of resources.
25
25
  end
26
26
  end
27
27
  end
@@ -20,8 +20,8 @@ module Knockapi
20
20
  # receive notifications through Knock. Users are the most common recipients of
21
21
  # notifications and are always referenced by your internal identifier.
22
22
  #
23
- # @return [Knockapi::Models::User]
24
- required :user, -> { Knockapi::Models::User }
23
+ # @return [Knockapi::User]
24
+ required :user, -> { Knockapi::User }
25
25
 
26
26
  # @!attribute user_id
27
27
  # The ID for the user that you set when identifying them in Knock.
@@ -36,8 +36,8 @@ module Knockapi
36
36
  optional :tenant, String, nil?: true
37
37
 
38
38
  # @!method initialize(_typename:, added_at:, user:, user_id:, tenant: nil)
39
- # Some parameter documentations has been truncated, see
40
- # {Knockapi::Models::AudienceMember} for more details.
39
+ # Some parameter documentations has been truncated, see {Knockapi::AudienceMember}
40
+ # for more details.
41
41
  #
42
42
  # An audience member.
43
43
  #
@@ -45,8 +45,7 @@ module Knockapi
45
45
  #
46
46
  # @param added_at [Time] Timestamp when the resource was created.
47
47
  #
48
- # @param user [Knockapi::Models::User] A [User](/concepts/users) represents an individual in your system who can receiv
49
- # ...
48
+ # @param user [Knockapi::User] A [User](/concepts/users) represents an individual in your system who can receiv
50
49
  #
51
50
  # @param user_id [String] The ID for the user that you set when identifying them in Knock.
52
51
  #
@@ -10,20 +10,23 @@ module Knockapi
10
10
  # @!attribute members
11
11
  # A list of audience members to remove.
12
12
  #
13
- # @return [Array<Knockapi::Models::AudienceRemoveMembersParams::Member>]
13
+ # @return [Array<Knockapi::AudienceRemoveMembersParams::Member>]
14
14
  required :members,
15
- -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::AudienceRemoveMembersParams::Member] }
15
+ -> {
16
+ Knockapi::Internal::Type::ArrayOf[Knockapi::AudienceRemoveMembersParams::Member]
17
+ }
16
18
 
17
19
  # @!method initialize(members:, request_options: {})
18
- # @param members [Array<Knockapi::Models::AudienceRemoveMembersParams::Member>] A list of audience members to remove.
20
+ # @param members [Array<Knockapi::AudienceRemoveMembersParams::Member>] A list of audience members to remove.
19
21
  #
20
22
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}]
21
23
 
22
24
  class Member < Knockapi::Internal::Type::BaseModel
23
25
  # @!attribute user
26
+ # An object containing the user's ID.
24
27
  #
25
- # @return [Knockapi::Models::AudienceRemoveMembersParams::Member::User]
26
- required :user, -> { Knockapi::Models::AudienceRemoveMembersParams::Member::User }
28
+ # @return [Knockapi::AudienceRemoveMembersParams::Member::User]
29
+ required :user, -> { Knockapi::AudienceRemoveMembersParams::Member::User }
27
30
 
28
31
  # @!attribute tenant
29
32
  # The unique identifier for the tenant.
@@ -34,11 +37,11 @@ module Knockapi
34
37
  # @!method initialize(user:, tenant: nil)
35
38
  # An audience member.
36
39
  #
37
- # @param user [Knockapi::Models::AudienceRemoveMembersParams::Member::User]
40
+ # @param user [Knockapi::AudienceRemoveMembersParams::Member::User] An object containing the user's ID.
38
41
  #
39
42
  # @param tenant [String, nil] The unique identifier for the tenant.
40
43
 
41
- # @see Knockapi::Models::AudienceRemoveMembersParams::Member#user
44
+ # @see Knockapi::AudienceRemoveMembersParams::Member#user
42
45
  class User < Knockapi::Internal::Type::BaseModel
43
46
  # @!attribute id
44
47
  # The ID for the user that you set when identifying them in Knock.
@@ -47,6 +50,8 @@ module Knockapi
47
50
  optional :id, String
48
51
 
49
52
  # @!method initialize(id: nil)
53
+ # An object containing the user's ID.
54
+ #
50
55
  # @param id [String] The ID for the user that you set when identifying them in Knock.
51
56
  end
52
57
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Models
5
+ AudienceRemoveMembersResponse = String
6
+ end
7
+ end
@@ -43,8 +43,8 @@ module Knockapi
43
43
  # @!attribute status
44
44
  # The status of the bulk operation.
45
45
  #
46
- # @return [Symbol, Knockapi::Models::BulkOperation::Status]
47
- required :status, enum: -> { Knockapi::Models::BulkOperation::Status }
46
+ # @return [Symbol, Knockapi::BulkOperation::Status]
47
+ required :status, enum: -> { Knockapi::BulkOperation::Status }
48
48
 
49
49
  # @!attribute success_count
50
50
  # The number of successful operations.
@@ -73,9 +73,8 @@ module Knockapi
73
73
  # @!attribute error_items
74
74
  # A list of items that failed to be processed.
75
75
  #
76
- # @return [Array<Knockapi::Models::BulkOperation::ErrorItem>, nil]
77
- optional :error_items,
78
- -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::BulkOperation::ErrorItem] }
76
+ # @return [Array<Knockapi::BulkOperation::ErrorItem>, nil]
77
+ optional :error_items, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::BulkOperation::ErrorItem] }
79
78
 
80
79
  # @!attribute failed_at
81
80
  # Timestamp when the bulk operation failed.
@@ -110,7 +109,7 @@ module Knockapi
110
109
  #
111
110
  # @param processed_rows [Integer] The number of rows processed so far.
112
111
  #
113
- # @param status [Symbol, Knockapi::Models::BulkOperation::Status] The status of the bulk operation.
112
+ # @param status [Symbol, Knockapi::BulkOperation::Status] The status of the bulk operation.
114
113
  #
115
114
  # @param success_count [Integer] The number of successful operations.
116
115
  #
@@ -120,7 +119,7 @@ module Knockapi
120
119
  #
121
120
  # @param error_count [Integer] The number of failed operations.
122
121
  #
123
- # @param error_items [Array<Knockapi::Models::BulkOperation::ErrorItem>] A list of items that failed to be processed.
122
+ # @param error_items [Array<Knockapi::BulkOperation::ErrorItem>] A list of items that failed to be processed.
124
123
  #
125
124
  # @param failed_at [Time, nil] Timestamp when the bulk operation failed.
126
125
  #
@@ -130,7 +129,7 @@ module Knockapi
130
129
 
131
130
  # The status of the bulk operation.
132
131
  #
133
- # @see Knockapi::Models::BulkOperation#status
132
+ # @see Knockapi::BulkOperation#status
134
133
  module Status
135
134
  extend Knockapi::Internal::Type::Enum
136
135