knockapi 1.32.1 → 1.34.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 (254) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/client.rb +13 -0
  5. data/lib/knockapi/internal/util.rb +31 -0
  6. data/lib/knockapi/models/audience_add_members_params.rb +8 -1
  7. data/lib/knockapi/models/audience_list_members_params.rb +7 -1
  8. data/lib/knockapi/models/audience_remove_members_params.rb +8 -1
  9. data/lib/knockapi/models/bulk_operation_get_params.rb +7 -1
  10. data/lib/knockapi/models/channels/bulk_update_message_status_params.rb +15 -1
  11. data/lib/knockapi/models/condition.rb +1 -0
  12. data/lib/knockapi/models/message_archive_params.rb +7 -1
  13. data/lib/knockapi/models/message_get_content_params.rb +7 -1
  14. data/lib/knockapi/models/message_get_params.rb +7 -1
  15. data/lib/knockapi/models/message_list_activities_params.rb +8 -1
  16. data/lib/knockapi/models/message_list_delivery_logs_params.rb +8 -1
  17. data/lib/knockapi/models/message_list_events_params.rb +8 -1
  18. data/lib/knockapi/models/message_mark_as_interacted_params.rb +8 -1
  19. data/lib/knockapi/models/message_mark_as_read_params.rb +7 -1
  20. data/lib/knockapi/models/message_mark_as_seen_params.rb +7 -1
  21. data/lib/knockapi/models/message_mark_as_unread_params.rb +7 -1
  22. data/lib/knockapi/models/message_mark_as_unseen_params.rb +7 -1
  23. data/lib/knockapi/models/message_unarchive_params.rb +7 -1
  24. data/lib/knockapi/models/object_add_subscriptions_params.rb +15 -1
  25. data/lib/knockapi/models/object_delete_params.rb +13 -1
  26. data/lib/knockapi/models/object_delete_subscriptions_params.rb +15 -1
  27. data/lib/knockapi/models/object_get_channel_data_params.rb +19 -1
  28. data/lib/knockapi/models/object_get_params.rb +13 -1
  29. data/lib/knockapi/models/object_get_preferences_params.rb +19 -1
  30. data/lib/knockapi/models/object_list_messages_params.rb +15 -1
  31. data/lib/knockapi/models/object_list_params.rb +8 -1
  32. data/lib/knockapi/models/object_list_preferences_params.rb +13 -1
  33. data/lib/knockapi/models/object_list_schedules_params.rb +15 -1
  34. data/lib/knockapi/models/object_list_subscriptions_params.rb +15 -1
  35. data/lib/knockapi/models/object_set_channel_data_params.rb +19 -1
  36. data/lib/knockapi/models/object_set_params.rb +15 -1
  37. data/lib/knockapi/models/object_set_preferences_params.rb +19 -1
  38. data/lib/knockapi/models/object_unset_channel_data_params.rb +19 -1
  39. data/lib/knockapi/models/objects/bulk_add_subscriptions_params.rb +8 -1
  40. data/lib/knockapi/models/objects/bulk_delete_params.rb +8 -1
  41. data/lib/knockapi/models/objects/bulk_delete_subscriptions_params.rb +8 -1
  42. data/lib/knockapi/models/objects/bulk_set_params.rb +8 -1
  43. data/lib/knockapi/models/providers/ms_team_check_auth_params.rb +8 -1
  44. data/lib/knockapi/models/providers/ms_team_list_channels_params.rb +8 -1
  45. data/lib/knockapi/models/providers/ms_team_list_teams_params.rb +8 -1
  46. data/lib/knockapi/models/providers/ms_team_revoke_access_params.rb +8 -1
  47. data/lib/knockapi/models/providers/slack_check_auth_params.rb +8 -1
  48. data/lib/knockapi/models/providers/slack_list_channels_params.rb +8 -1
  49. data/lib/knockapi/models/providers/slack_revoke_access_params.rb +8 -1
  50. data/lib/knockapi/models/tenant_delete_params.rb +7 -1
  51. data/lib/knockapi/models/tenant_get_params.rb +8 -1
  52. data/lib/knockapi/models/tenant_set_params.rb +8 -1
  53. data/lib/knockapi/models/user_delete_params.rb +7 -1
  54. data/lib/knockapi/models/user_get_channel_data_params.rb +13 -1
  55. data/lib/knockapi/models/user_get_params.rb +7 -1
  56. data/lib/knockapi/models/user_get_preferences_params.rb +15 -1
  57. data/lib/knockapi/models/user_list_messages_params.rb +8 -1
  58. data/lib/knockapi/models/user_list_preferences_params.rb +7 -1
  59. data/lib/knockapi/models/user_list_schedules_params.rb +8 -1
  60. data/lib/knockapi/models/user_list_subscriptions_params.rb +8 -1
  61. data/lib/knockapi/models/user_merge_params.rb +8 -1
  62. data/lib/knockapi/models/user_set_channel_data_params.rb +13 -1
  63. data/lib/knockapi/models/user_set_preferences_params.rb +13 -1
  64. data/lib/knockapi/models/user_unset_channel_data_params.rb +13 -1
  65. data/lib/knockapi/models/user_update_params.rb +7 -1
  66. data/lib/knockapi/models/users/feed_get_settings_params.rb +13 -1
  67. data/lib/knockapi/models/users/feed_list_items_params.rb +15 -1
  68. data/lib/knockapi/models/users/guide_get_channel_params.rb +15 -1
  69. data/lib/knockapi/models/users/guide_mark_message_as_archived_params.rb +15 -1
  70. data/lib/knockapi/models/users/guide_mark_message_as_interacted_params.rb +15 -1
  71. data/lib/knockapi/models/users/guide_mark_message_as_seen_params.rb +15 -1
  72. data/lib/knockapi/models/workflow_cancel_params.rb +8 -1
  73. data/lib/knockapi/models/workflow_trigger_params.rb +8 -1
  74. data/lib/knockapi/resources/audiences.rb +4 -2
  75. data/lib/knockapi/resources/bulk_operations.rb +2 -0
  76. data/lib/knockapi/resources/channels/bulk.rb +2 -0
  77. data/lib/knockapi/resources/channels.rb +2 -0
  78. data/lib/knockapi/resources/messages/batch.rb +3 -1
  79. data/lib/knockapi/resources/messages.rb +10 -4
  80. data/lib/knockapi/resources/objects/bulk.rb +2 -0
  81. data/lib/knockapi/resources/objects.rb +11 -4
  82. data/lib/knockapi/resources/providers/ms_teams.rb +10 -4
  83. data/lib/knockapi/resources/providers/slack.rb +8 -3
  84. data/lib/knockapi/resources/providers.rb +4 -0
  85. data/lib/knockapi/resources/schedules/bulk.rb +2 -0
  86. data/lib/knockapi/resources/schedules.rb +6 -1
  87. data/lib/knockapi/resources/tenants/bulk.rb +4 -1
  88. data/lib/knockapi/resources/tenants.rb +11 -4
  89. data/lib/knockapi/resources/users/bulk.rb +2 -0
  90. data/lib/knockapi/resources/users/feeds.rb +4 -1
  91. data/lib/knockapi/resources/users/guides.rb +4 -1
  92. data/lib/knockapi/resources/users.rb +18 -5
  93. data/lib/knockapi/resources/workflows.rb +2 -0
  94. data/lib/knockapi/version.rb +1 -1
  95. data/rbi/knockapi/client.rbi +13 -0
  96. data/rbi/knockapi/internal/util.rbi +20 -0
  97. data/rbi/knockapi/models/audience_add_members_params.rbi +6 -0
  98. data/rbi/knockapi/models/audience_list_members_params.rbi +13 -5
  99. data/rbi/knockapi/models/audience_remove_members_params.rbi +6 -0
  100. data/rbi/knockapi/models/bulk_operation_get_params.rbi +13 -5
  101. data/rbi/knockapi/models/channels/bulk_update_message_status_params.rbi +18 -0
  102. data/rbi/knockapi/models/condition.rbi +2 -0
  103. data/rbi/knockapi/models/message_archive_params.rbi +13 -5
  104. data/rbi/knockapi/models/message_get_content_params.rbi +13 -5
  105. data/rbi/knockapi/models/message_get_params.rbi +13 -5
  106. data/rbi/knockapi/models/message_list_activities_params.rbi +6 -0
  107. data/rbi/knockapi/models/message_list_delivery_logs_params.rbi +6 -0
  108. data/rbi/knockapi/models/message_list_events_params.rbi +6 -0
  109. data/rbi/knockapi/models/message_mark_as_interacted_params.rbi +6 -0
  110. data/rbi/knockapi/models/message_mark_as_read_params.rbi +13 -5
  111. data/rbi/knockapi/models/message_mark_as_seen_params.rbi +13 -5
  112. data/rbi/knockapi/models/message_mark_as_unread_params.rbi +13 -5
  113. data/rbi/knockapi/models/message_mark_as_unseen_params.rbi +13 -5
  114. data/rbi/knockapi/models/message_unarchive_params.rbi +13 -5
  115. data/rbi/knockapi/models/object_add_subscriptions_params.rbi +12 -0
  116. data/rbi/knockapi/models/object_delete_params.rbi +21 -5
  117. data/rbi/knockapi/models/object_delete_subscriptions_params.rbi +12 -0
  118. data/rbi/knockapi/models/object_get_channel_data_params.rbi +26 -5
  119. data/rbi/knockapi/models/object_get_params.rbi +21 -5
  120. data/rbi/knockapi/models/object_get_preferences_params.rbi +26 -5
  121. data/rbi/knockapi/models/object_list_messages_params.rbi +12 -0
  122. data/rbi/knockapi/models/object_list_params.rbi +6 -0
  123. data/rbi/knockapi/models/object_list_preferences_params.rbi +21 -5
  124. data/rbi/knockapi/models/object_list_schedules_params.rbi +12 -0
  125. data/rbi/knockapi/models/object_list_subscriptions_params.rbi +12 -0
  126. data/rbi/knockapi/models/object_set_channel_data_params.rbi +26 -5
  127. data/rbi/knockapi/models/object_set_params.rbi +12 -0
  128. data/rbi/knockapi/models/object_set_preferences_params.rbi +26 -5
  129. data/rbi/knockapi/models/object_unset_channel_data_params.rbi +26 -5
  130. data/rbi/knockapi/models/objects/bulk_add_subscriptions_params.rbi +6 -0
  131. data/rbi/knockapi/models/objects/bulk_delete_params.rbi +6 -0
  132. data/rbi/knockapi/models/objects/bulk_delete_subscriptions_params.rbi +6 -0
  133. data/rbi/knockapi/models/objects/bulk_set_params.rbi +6 -0
  134. data/rbi/knockapi/models/providers/ms_team_check_auth_params.rbi +6 -0
  135. data/rbi/knockapi/models/providers/ms_team_list_channels_params.rbi +6 -0
  136. data/rbi/knockapi/models/providers/ms_team_list_teams_params.rbi +6 -0
  137. data/rbi/knockapi/models/providers/ms_team_revoke_access_params.rbi +6 -0
  138. data/rbi/knockapi/models/providers/slack_check_auth_params.rbi +6 -0
  139. data/rbi/knockapi/models/providers/slack_list_channels_params.rbi +6 -0
  140. data/rbi/knockapi/models/providers/slack_revoke_access_params.rbi +6 -0
  141. data/rbi/knockapi/models/tenant_delete_params.rbi +13 -5
  142. data/rbi/knockapi/models/tenant_get_params.rbi +6 -0
  143. data/rbi/knockapi/models/tenant_set_params.rbi +6 -0
  144. data/rbi/knockapi/models/user_delete_params.rbi +13 -5
  145. data/rbi/knockapi/models/user_get_channel_data_params.rbi +21 -5
  146. data/rbi/knockapi/models/user_get_params.rbi +13 -5
  147. data/rbi/knockapi/models/user_get_preferences_params.rbi +16 -1
  148. data/rbi/knockapi/models/user_list_messages_params.rbi +6 -0
  149. data/rbi/knockapi/models/user_list_preferences_params.rbi +13 -5
  150. data/rbi/knockapi/models/user_list_schedules_params.rbi +6 -0
  151. data/rbi/knockapi/models/user_list_subscriptions_params.rbi +6 -0
  152. data/rbi/knockapi/models/user_merge_params.rbi +10 -1
  153. data/rbi/knockapi/models/user_set_channel_data_params.rbi +21 -5
  154. data/rbi/knockapi/models/user_set_preferences_params.rbi +21 -5
  155. data/rbi/knockapi/models/user_unset_channel_data_params.rbi +21 -5
  156. data/rbi/knockapi/models/user_update_params.rbi +13 -5
  157. data/rbi/knockapi/models/users/feed_get_settings_params.rbi +21 -5
  158. data/rbi/knockapi/models/users/feed_list_items_params.rbi +12 -0
  159. data/rbi/knockapi/models/users/guide_get_channel_params.rbi +12 -0
  160. data/rbi/knockapi/models/users/guide_mark_message_as_archived_params.rbi +12 -0
  161. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_params.rbi +12 -0
  162. data/rbi/knockapi/models/users/guide_mark_message_as_seen_params.rbi +12 -0
  163. data/rbi/knockapi/models/workflow_cancel_params.rbi +6 -0
  164. data/rbi/knockapi/models/workflow_trigger_params.rbi +6 -0
  165. data/rbi/knockapi/resources/audiences.rbi +1 -0
  166. data/rbi/knockapi/resources/bulk_operations.rbi +2 -0
  167. data/rbi/knockapi/resources/channels/bulk.rbi +2 -0
  168. data/rbi/knockapi/resources/channels.rbi +2 -0
  169. data/rbi/knockapi/resources/messages/batch.rbi +1 -0
  170. data/rbi/knockapi/resources/messages.rbi +2 -0
  171. data/rbi/knockapi/resources/objects/bulk.rbi +2 -0
  172. data/rbi/knockapi/resources/objects.rbi +3 -0
  173. data/rbi/knockapi/resources/providers/ms_teams.rbi +2 -0
  174. data/rbi/knockapi/resources/providers/slack.rbi +2 -0
  175. data/rbi/knockapi/resources/providers.rbi +4 -0
  176. data/rbi/knockapi/resources/schedules/bulk.rbi +2 -0
  177. data/rbi/knockapi/resources/schedules.rbi +4 -0
  178. data/rbi/knockapi/resources/tenants/bulk.rbi +2 -0
  179. data/rbi/knockapi/resources/tenants.rbi +4 -0
  180. data/rbi/knockapi/resources/users/bulk.rbi +2 -0
  181. data/rbi/knockapi/resources/users/feeds.rbi +2 -0
  182. data/rbi/knockapi/resources/users/guides.rbi +2 -0
  183. data/rbi/knockapi/resources/users.rbi +8 -0
  184. data/rbi/knockapi/resources/workflows.rbi +2 -0
  185. data/sig/knockapi/internal/util.rbs +10 -0
  186. data/sig/knockapi/models/audience_add_members_params.rbs +5 -0
  187. data/sig/knockapi/models/audience_list_members_params.rbs +8 -3
  188. data/sig/knockapi/models/audience_remove_members_params.rbs +8 -1
  189. data/sig/knockapi/models/bulk_operation_get_params.rbs +8 -3
  190. data/sig/knockapi/models/channels/bulk_update_message_status_params.rbs +10 -0
  191. data/sig/knockapi/models/condition.rbs +2 -0
  192. data/sig/knockapi/models/message_archive_params.rbs +11 -3
  193. data/sig/knockapi/models/message_get_content_params.rbs +11 -3
  194. data/sig/knockapi/models/message_get_params.rbs +11 -3
  195. data/sig/knockapi/models/message_list_activities_params.rbs +5 -0
  196. data/sig/knockapi/models/message_list_delivery_logs_params.rbs +5 -1
  197. data/sig/knockapi/models/message_list_events_params.rbs +5 -1
  198. data/sig/knockapi/models/message_mark_as_interacted_params.rbs +5 -1
  199. data/sig/knockapi/models/message_mark_as_read_params.rbs +11 -3
  200. data/sig/knockapi/models/message_mark_as_seen_params.rbs +11 -3
  201. data/sig/knockapi/models/message_mark_as_unread_params.rbs +11 -3
  202. data/sig/knockapi/models/message_mark_as_unseen_params.rbs +11 -3
  203. data/sig/knockapi/models/message_unarchive_params.rbs +11 -3
  204. data/sig/knockapi/models/object_add_subscriptions_params.rbs +10 -0
  205. data/sig/knockapi/models/object_delete_params.rbs +16 -3
  206. data/sig/knockapi/models/object_delete_subscriptions_params.rbs +13 -1
  207. data/sig/knockapi/models/object_get_channel_data_params.rbs +20 -3
  208. data/sig/knockapi/models/object_get_params.rbs +17 -3
  209. data/sig/knockapi/models/object_get_preferences_params.rbs +20 -3
  210. data/sig/knockapi/models/object_list_messages_params.rbs +10 -0
  211. data/sig/knockapi/models/object_list_params.rbs +5 -0
  212. data/sig/knockapi/models/object_list_preferences_params.rbs +16 -3
  213. data/sig/knockapi/models/object_list_schedules_params.rbs +10 -0
  214. data/sig/knockapi/models/object_list_subscriptions_params.rbs +10 -0
  215. data/sig/knockapi/models/object_set_channel_data_params.rbs +26 -3
  216. data/sig/knockapi/models/object_set_params.rbs +10 -0
  217. data/sig/knockapi/models/object_set_preferences_params.rbs +26 -3
  218. data/sig/knockapi/models/object_unset_channel_data_params.rbs +20 -3
  219. data/sig/knockapi/models/objects/bulk_add_subscriptions_params.rbs +5 -0
  220. data/sig/knockapi/models/objects/bulk_delete_params.rbs +5 -1
  221. data/sig/knockapi/models/objects/bulk_delete_subscriptions_params.rbs +5 -0
  222. data/sig/knockapi/models/objects/bulk_set_params.rbs +8 -1
  223. data/sig/knockapi/models/providers/ms_team_check_auth_params.rbs +5 -1
  224. data/sig/knockapi/models/providers/ms_team_list_channels_params.rbs +5 -0
  225. data/sig/knockapi/models/providers/ms_team_list_teams_params.rbs +5 -0
  226. data/sig/knockapi/models/providers/ms_team_revoke_access_params.rbs +5 -1
  227. data/sig/knockapi/models/providers/slack_check_auth_params.rbs +5 -1
  228. data/sig/knockapi/models/providers/slack_list_channels_params.rbs +5 -0
  229. data/sig/knockapi/models/providers/slack_revoke_access_params.rbs +5 -1
  230. data/sig/knockapi/models/tenant_delete_params.rbs +8 -3
  231. data/sig/knockapi/models/tenant_get_params.rbs +5 -1
  232. data/sig/knockapi/models/tenant_set_params.rbs +5 -0
  233. data/sig/knockapi/models/user_delete_params.rbs +11 -3
  234. data/sig/knockapi/models/user_get_channel_data_params.rbs +16 -3
  235. data/sig/knockapi/models/user_get_params.rbs +12 -3
  236. data/sig/knockapi/models/user_get_preferences_params.rbs +10 -1
  237. data/sig/knockapi/models/user_list_messages_params.rbs +5 -0
  238. data/sig/knockapi/models/user_list_preferences_params.rbs +11 -3
  239. data/sig/knockapi/models/user_list_schedules_params.rbs +5 -0
  240. data/sig/knockapi/models/user_list_subscriptions_params.rbs +5 -0
  241. data/sig/knockapi/models/user_merge_params.rbs +6 -1
  242. data/sig/knockapi/models/user_set_channel_data_params.rbs +20 -3
  243. data/sig/knockapi/models/user_set_preferences_params.rbs +20 -3
  244. data/sig/knockapi/models/user_unset_channel_data_params.rbs +16 -3
  245. data/sig/knockapi/models/user_update_params.rbs +13 -3
  246. data/sig/knockapi/models/users/feed_get_settings_params.rbs +16 -3
  247. data/sig/knockapi/models/users/feed_list_items_params.rbs +10 -0
  248. data/sig/knockapi/models/users/guide_get_channel_params.rbs +15 -1
  249. data/sig/knockapi/models/users/guide_mark_message_as_archived_params.rbs +10 -0
  250. data/sig/knockapi/models/users/guide_mark_message_as_interacted_params.rbs +10 -0
  251. data/sig/knockapi/models/users/guide_mark_message_as_seen_params.rbs +10 -0
  252. data/sig/knockapi/models/workflow_cancel_params.rbs +5 -0
  253. data/sig/knockapi/models/workflow_trigger_params.rbs +5 -0
  254. metadata +2 -2
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Providers
6
+ # A provider represents a third-party service that Knock integrates with and is
7
+ # configured via a channel.
6
8
  class MsTeams
7
9
  # Check if a connection to Microsoft Teams has been authorized for a given
8
10
  # Microsoft Teams tenant object.
@@ -20,10 +22,11 @@ module Knockapi
20
22
  # @see Knockapi::Models::Providers::MsTeamCheckAuthParams
21
23
  def check_auth(channel_id, params)
22
24
  parsed, options = Knockapi::Providers::MsTeamCheckAuthParams.dump_request(params)
25
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
23
26
  @client.request(
24
27
  method: :get,
25
28
  path: ["v1/providers/ms-teams/%1$s/auth_check", channel_id],
26
- query: parsed,
29
+ query: query,
27
30
  model: Knockapi::Models::Providers::MsTeamCheckAuthResponse,
28
31
  options: options
29
32
  )
@@ -49,10 +52,11 @@ module Knockapi
49
52
  # @see Knockapi::Models::Providers::MsTeamListChannelsParams
50
53
  def list_channels(channel_id, params)
51
54
  parsed, options = Knockapi::Providers::MsTeamListChannelsParams.dump_request(params)
55
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
52
56
  @client.request(
53
57
  method: :get,
54
58
  path: ["v1/providers/ms-teams/%1$s/channels", channel_id],
55
- query: parsed,
59
+ query: query,
56
60
  model: Knockapi::Models::Providers::MsTeamListChannelsResponse,
57
61
  options: options
58
62
  )
@@ -76,10 +80,11 @@ module Knockapi
76
80
  # @see Knockapi::Models::Providers::MsTeamListTeamsParams
77
81
  def list_teams(channel_id, params)
78
82
  parsed, options = Knockapi::Providers::MsTeamListTeamsParams.dump_request(params)
83
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
79
84
  @client.request(
80
85
  method: :get,
81
86
  path: ["v1/providers/ms-teams/%1$s/teams", channel_id],
82
- query: parsed,
87
+ query: query,
83
88
  page: Knockapi::Internal::MsTeamsPagination,
84
89
  model: Knockapi::Models::Providers::MsTeamListTeamsResponse,
85
90
  options: options
@@ -101,10 +106,11 @@ module Knockapi
101
106
  # @see Knockapi::Models::Providers::MsTeamRevokeAccessParams
102
107
  def revoke_access(channel_id, params)
103
108
  parsed, options = Knockapi::Providers::MsTeamRevokeAccessParams.dump_request(params)
109
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
104
110
  @client.request(
105
111
  method: :put,
106
112
  path: ["v1/providers/ms-teams/%1$s/revoke_access", channel_id],
107
- query: parsed,
113
+ query: query,
108
114
  model: Knockapi::Models::Providers::MsTeamRevokeAccessResponse,
109
115
  options: options
110
116
  )
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Providers
6
+ # A provider represents a third-party service that Knock integrates with and is
7
+ # configured via a channel.
6
8
  class Slack
7
9
  # Check if a Slack channel is authenticated.
8
10
  #
@@ -19,10 +21,11 @@ module Knockapi
19
21
  # @see Knockapi::Models::Providers::SlackCheckAuthParams
20
22
  def check_auth(channel_id, params)
21
23
  parsed, options = Knockapi::Providers::SlackCheckAuthParams.dump_request(params)
24
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
22
25
  @client.request(
23
26
  method: :get,
24
27
  path: ["v1/providers/slack/%1$s/auth_check", channel_id],
25
- query: parsed,
28
+ query: query,
26
29
  model: Knockapi::Models::Providers::SlackCheckAuthResponse,
27
30
  options: options
28
31
  )
@@ -45,10 +48,11 @@ module Knockapi
45
48
  # @see Knockapi::Models::Providers::SlackListChannelsParams
46
49
  def list_channels(channel_id, params)
47
50
  parsed, options = Knockapi::Providers::SlackListChannelsParams.dump_request(params)
51
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
48
52
  @client.request(
49
53
  method: :get,
50
54
  path: ["v1/providers/slack/%1$s/channels", channel_id],
51
- query: parsed,
55
+ query: query,
52
56
  page: Knockapi::Internal::SlackChannelsCursor,
53
57
  model: Knockapi::Models::Providers::SlackListChannelsResponse,
54
58
  options: options
@@ -70,10 +74,11 @@ module Knockapi
70
74
  # @see Knockapi::Models::Providers::SlackRevokeAccessParams
71
75
  def revoke_access(channel_id, params)
72
76
  parsed, options = Knockapi::Providers::SlackRevokeAccessParams.dump_request(params)
77
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
73
78
  @client.request(
74
79
  method: :put,
75
80
  path: ["v1/providers/slack/%1$s/revoke_access", channel_id],
76
- query: parsed,
81
+ query: query,
77
82
  model: Knockapi::Models::Providers::SlackRevokeAccessResponse,
78
83
  options: options
79
84
  )
@@ -3,9 +3,13 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Providers
6
+ # A provider represents a third-party service that Knock integrates with and is
7
+ # configured via a channel.
6
8
  # @return [Knockapi::Resources::Providers::Slack]
7
9
  attr_reader :slack
8
10
 
11
+ # A provider represents a third-party service that Knock integrates with and is
12
+ # configured via a channel.
9
13
  # @return [Knockapi::Resources::Providers::MsTeams]
10
14
  attr_reader :ms_teams
11
15
 
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Schedules
6
+ # A bulk operation is a set of changes applied across zero or more records
7
+ # triggered via a call to the Knock API and performed asynchronously.
6
8
  class Bulk
7
9
  # Bulk creates up to 1,000 schedules at a time. This endpoint also handles
8
10
  # [inline identifications](/managing-recipients/identifying-recipients#inline-identifying-recipients)
@@ -2,7 +2,11 @@
2
2
 
3
3
  module Knockapi
4
4
  module Resources
5
+ # A schedule is a per-recipient, timezone-aware configuration for when to invoke a
6
+ # workflow.
5
7
  class Schedules
8
+ # A bulk operation is a set of changes applied across zero or more records
9
+ # triggered via a call to the Knock API and performed asynchronously.
6
10
  # @return [Knockapi::Resources::Schedules::Bulk]
7
11
  attr_reader :bulk
8
12
 
@@ -114,10 +118,11 @@ module Knockapi
114
118
  # @see Knockapi::Models::ScheduleListParams
115
119
  def list(params)
116
120
  parsed, options = Knockapi::ScheduleListParams.dump_request(params)
121
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
117
122
  @client.request(
118
123
  method: :get,
119
124
  path: "v1/schedules",
120
- query: parsed,
125
+ query: query,
121
126
  page: Knockapi::Internal::EntriesCursor,
122
127
  model: Knockapi::Schedule,
123
128
  options: options
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Tenants
6
+ # A bulk operation is a set of changes applied across zero or more records
7
+ # triggered via a call to the Knock API and performed asynchronously.
6
8
  class Bulk
7
9
  # Delete up to 1,000 tenants at a time in a single operation. This operation
8
10
  # cannot be undone.
@@ -18,10 +20,11 @@ module Knockapi
18
20
  # @see Knockapi::Models::Tenants::BulkDeleteParams
19
21
  def delete(params)
20
22
  parsed, options = Knockapi::Tenants::BulkDeleteParams.dump_request(params)
23
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
21
24
  @client.request(
22
25
  method: :post,
23
26
  path: "v1/tenants/bulk/delete",
24
- query: parsed,
27
+ query: query,
25
28
  model: Knockapi::BulkOperation,
26
29
  options: options
27
30
  )
@@ -2,7 +2,11 @@
2
2
 
3
3
  module Knockapi
4
4
  module Resources
5
+ # A tenant represents a top-level entity from your system, like a company,
6
+ # organization, account, or workspace.
5
7
  class Tenants
8
+ # A bulk operation is a set of changes applied across zero or more records
9
+ # triggered via a call to the Knock API and performed asynchronously.
6
10
  # @return [Knockapi::Resources::Tenants::Bulk]
7
11
  attr_reader :bulk
8
12
 
@@ -27,10 +31,11 @@ module Knockapi
27
31
  # @see Knockapi::Models::TenantListParams
28
32
  def list(params = {})
29
33
  parsed, options = Knockapi::TenantListParams.dump_request(params)
34
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
30
35
  @client.request(
31
36
  method: :get,
32
37
  path: "v1/tenants",
33
- query: parsed,
38
+ query: query,
34
39
  page: Knockapi::Internal::EntriesCursor,
35
40
  model: Knockapi::Tenant,
36
41
  options: options
@@ -75,10 +80,11 @@ module Knockapi
75
80
  # @see Knockapi::Models::TenantGetParams
76
81
  def get(id, params = {})
77
82
  parsed, options = Knockapi::TenantGetParams.dump_request(params)
83
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
78
84
  @client.request(
79
85
  method: :get,
80
86
  path: ["v1/tenants/%1$s", id],
81
- query: parsed,
87
+ query: query,
82
88
  model: Knockapi::Tenant,
83
89
  options: options
84
90
  )
@@ -108,12 +114,13 @@ module Knockapi
108
114
  #
109
115
  # @see Knockapi::Models::TenantSetParams
110
116
  def set(id, params = {})
111
- parsed, options = Knockapi::TenantSetParams.dump_request(params)
112
117
  query_params = [:resolve_full_preference_settings]
118
+ parsed, options = Knockapi::TenantSetParams.dump_request(params)
119
+ query = Knockapi::Internal::Util.encode_query_params(parsed.slice(*query_params))
113
120
  @client.request(
114
121
  method: :put,
115
122
  path: ["v1/tenants/%1$s", id],
116
- query: parsed.slice(*query_params),
123
+ query: query,
117
124
  body: parsed.except(*query_params),
118
125
  model: Knockapi::Tenant,
119
126
  options: options
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Users
6
+ # A bulk operation is a set of changes applied across zero or more records
7
+ # triggered via a call to the Knock API and performed asynchronously.
6
8
  class Bulk
7
9
  # Permanently deletes up to 1,000 users at a time.
8
10
  #
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Users
6
+ # A user is an individual from your system, represented in Knock. They are most
7
+ # commonly a recipient of a notification.
6
8
  class Feeds
7
9
  # Returns the feed settings for a user.
8
10
  #
@@ -88,10 +90,11 @@ module Knockapi
88
90
  # @see Knockapi::Models::Users::FeedListItemsParams
89
91
  def list_items(user_id, id, params = {})
90
92
  parsed, options = Knockapi::Users::FeedListItemsParams.dump_request(params)
93
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
91
94
  @client.request(
92
95
  method: :get,
93
96
  path: ["v1/users/%1$s/feeds/%2$s", user_id, id],
94
- query: parsed,
97
+ query: query,
95
98
  page: Knockapi::Internal::EntriesCursor,
96
99
  model: Knockapi::Models::Users::FeedListItemsResponse,
97
100
  options: options
@@ -3,6 +3,8 @@
3
3
  module Knockapi
4
4
  module Resources
5
5
  class Users
6
+ # A user is an individual from your system, represented in Knock. They are most
7
+ # commonly a recipient of a notification.
6
8
  class Guides
7
9
  # Returns a list of eligible in-app guides for a specific user and channel.
8
10
  #
@@ -25,10 +27,11 @@ module Knockapi
25
27
  # @see Knockapi::Models::Users::GuideGetChannelParams
26
28
  def get_channel(user_id, channel_id, params = {})
27
29
  parsed, options = Knockapi::Users::GuideGetChannelParams.dump_request(params)
30
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
28
31
  @client.request(
29
32
  method: :get,
30
33
  path: ["v1/users/%1$s/guides/%2$s", user_id, channel_id],
31
- query: parsed,
34
+ query: query,
32
35
  model: Knockapi::Models::Users::GuideGetChannelResponse,
33
36
  options: options
34
37
  )
@@ -2,13 +2,21 @@
2
2
 
3
3
  module Knockapi
4
4
  module Resources
5
+ # A user is an individual from your system, represented in Knock. They are most
6
+ # commonly a recipient of a notification.
5
7
  class Users
8
+ # A user is an individual from your system, represented in Knock. They are most
9
+ # commonly a recipient of a notification.
6
10
  # @return [Knockapi::Resources::Users::Feeds]
7
11
  attr_reader :feeds
8
12
 
13
+ # A user is an individual from your system, represented in Knock. They are most
14
+ # commonly a recipient of a notification.
9
15
  # @return [Knockapi::Resources::Users::Guides]
10
16
  attr_reader :guides
11
17
 
18
+ # A bulk operation is a set of changes applied across zero or more records
19
+ # triggered via a call to the Knock API and performed asynchronously.
12
20
  # @return [Knockapi::Resources::Users::Bulk]
13
21
  attr_reader :bulk
14
22
 
@@ -77,10 +85,11 @@ module Knockapi
77
85
  # @see Knockapi::Models::UserListParams
78
86
  def list(params = {})
79
87
  parsed, options = Knockapi::UserListParams.dump_request(params)
88
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
80
89
  @client.request(
81
90
  method: :get,
82
91
  path: "v1/users",
83
- query: parsed,
92
+ query: query,
84
93
  page: Knockapi::Internal::EntriesCursor,
85
94
  model: Knockapi::User,
86
95
  options: options
@@ -167,10 +176,11 @@ module Knockapi
167
176
  # @see Knockapi::Models::UserGetPreferencesParams
168
177
  def get_preferences(user_id, id, params = {})
169
178
  parsed, options = Knockapi::UserGetPreferencesParams.dump_request(params)
179
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
170
180
  @client.request(
171
181
  method: :get,
172
182
  path: ["v1/users/%1$s/preferences/%2$s", user_id, id],
173
- query: parsed,
183
+ query: query,
174
184
  model: Knockapi::Recipients::PreferenceSet,
175
185
  options: options
176
186
  )
@@ -222,10 +232,11 @@ module Knockapi
222
232
  # @see Knockapi::Models::UserListMessagesParams
223
233
  def list_messages(user_id, params = {})
224
234
  parsed, options = Knockapi::UserListMessagesParams.dump_request(params)
235
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
225
236
  @client.request(
226
237
  method: :get,
227
238
  path: ["v1/users/%1$s/messages", user_id],
228
- query: parsed,
239
+ query: query,
229
240
  page: Knockapi::Internal::ItemsCursor,
230
241
  model: Knockapi::Message,
231
242
  options: options
@@ -275,10 +286,11 @@ module Knockapi
275
286
  # @see Knockapi::Models::UserListSchedulesParams
276
287
  def list_schedules(user_id, params = {})
277
288
  parsed, options = Knockapi::UserListSchedulesParams.dump_request(params)
289
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
278
290
  @client.request(
279
291
  method: :get,
280
292
  path: ["v1/users/%1$s/schedules", user_id],
281
- query: parsed,
293
+ query: query,
282
294
  page: Knockapi::Internal::EntriesCursor,
283
295
  model: Knockapi::Schedule,
284
296
  options: options
@@ -309,10 +321,11 @@ module Knockapi
309
321
  # @see Knockapi::Models::UserListSubscriptionsParams
310
322
  def list_subscriptions(user_id, params = {})
311
323
  parsed, options = Knockapi::UserListSubscriptionsParams.dump_request(params)
324
+ query = Knockapi::Internal::Util.encode_query_params(parsed)
312
325
  @client.request(
313
326
  method: :get,
314
327
  path: ["v1/users/%1$s/subscriptions", user_id],
315
- query: parsed,
328
+ query: query,
316
329
  page: Knockapi::Internal::EntriesCursor,
317
330
  model: Knockapi::Recipients::Subscription,
318
331
  options: options
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Knockapi
4
4
  module Resources
5
+ # A workflow is a structured set of steps that is triggered to produce
6
+ # notifications sent over channels.
5
7
  class Workflows
6
8
  # Some parameter documentations has been truncated, see
7
9
  # {Knockapi::Models::WorkflowCancelParams} for more details.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.32.1"
4
+ VERSION = "1.34.0"
5
5
  end
@@ -20,18 +20,26 @@ module Knockapi
20
20
  sig { returns(Knockapi::Resources::Recipients) }
21
21
  attr_reader :recipients
22
22
 
23
+ # A user is an individual from your system, represented in Knock. They are most
24
+ # commonly a recipient of a notification.
23
25
  sig { returns(Knockapi::Resources::Users) }
24
26
  attr_reader :users
25
27
 
28
+ # An object represents a resource in your system that you want to map into Knock.
26
29
  sig { returns(Knockapi::Resources::Objects) }
27
30
  attr_reader :objects
28
31
 
32
+ # A tenant represents a top-level entity from your system, like a company,
33
+ # organization, account, or workspace.
29
34
  sig { returns(Knockapi::Resources::Tenants) }
30
35
  attr_reader :tenants
31
36
 
37
+ # A bulk operation is a set of changes applied across zero or more records
38
+ # triggered via a call to the Knock API and performed asynchronously.
32
39
  sig { returns(Knockapi::Resources::BulkOperations) }
33
40
  attr_reader :bulk_operations
34
41
 
42
+ # A message sent to a single recipient on a channel.
35
43
  sig { returns(Knockapi::Resources::Messages) }
36
44
  attr_reader :messages
37
45
 
@@ -41,15 +49,20 @@ module Knockapi
41
49
  sig { returns(Knockapi::Resources::Integrations) }
42
50
  attr_reader :integrations
43
51
 
52
+ # A workflow is a structured set of steps that is triggered to produce
53
+ # notifications sent over channels.
44
54
  sig { returns(Knockapi::Resources::Workflows) }
45
55
  attr_reader :workflows
46
56
 
57
+ # A schedule is a per-recipient, timezone-aware configuration for when to invoke a
58
+ # workflow.
47
59
  sig { returns(Knockapi::Resources::Schedules) }
48
60
  attr_reader :schedules
49
61
 
50
62
  sig { returns(Knockapi::Resources::Channels) }
51
63
  attr_reader :channels
52
64
 
65
+ # An Audience is a segment of users.
53
66
  sig { returns(Knockapi::Resources::Audiences) }
54
67
  attr_reader :audiences
55
68
 
@@ -301,6 +301,26 @@ module Knockapi
301
301
  T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
302
 
303
303
  class << self
304
+ # @api private
305
+ sig do
306
+ params(query: Knockapi::Internal::AnyHash).returns(
307
+ Knockapi::Internal::AnyHash
308
+ )
309
+ end
310
+ def encode_query_params(query)
311
+ end
312
+
313
+ # @api private
314
+ sig do
315
+ params(
316
+ collection: Knockapi::Internal::AnyHash,
317
+ key: String,
318
+ element: T.anything
319
+ ).void
320
+ end
321
+ private def write_query_param_element!(collection, key, element)
322
+ end
323
+
304
324
  # @api private
305
325
  sig do
306
326
  params(
@@ -11,6 +11,9 @@ module Knockapi
11
11
  T.any(Knockapi::AudienceAddMembersParams, Knockapi::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :key
16
+
14
17
  # A list of audience members to add. You can add up to 1,000 members per request.
15
18
  sig { returns(T::Array[Knockapi::AudienceAddMembersParams::Member]) }
16
19
  attr_accessor :members
@@ -24,12 +27,14 @@ module Knockapi
24
27
 
25
28
  sig do
26
29
  params(
30
+ key: String,
27
31
  members: T::Array[Knockapi::AudienceAddMembersParams::Member::OrHash],
28
32
  create_audience: T::Boolean,
29
33
  request_options: Knockapi::RequestOptions::OrHash
30
34
  ).returns(T.attached_class)
31
35
  end
32
36
  def self.new(
37
+ key:,
33
38
  # A list of audience members to add. You can add up to 1,000 members per request.
34
39
  members:,
35
40
  # Create the audience if it does not exist.
@@ -41,6 +46,7 @@ module Knockapi
41
46
  sig do
42
47
  override.returns(
43
48
  {
49
+ key: String,
44
50
  members: T::Array[Knockapi::AudienceAddMembersParams::Member],
45
51
  create_audience: T::Boolean,
46
52
  request_options: Knockapi::RequestOptions
@@ -14,15 +14,23 @@ module Knockapi
14
14
  )
15
15
  end
16
16
 
17
+ sig { returns(String) }
18
+ attr_accessor :key
19
+
17
20
  sig do
18
- params(request_options: Knockapi::RequestOptions::OrHash).returns(
19
- T.attached_class
20
- )
21
+ params(
22
+ key: String,
23
+ request_options: Knockapi::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
21
25
  end
22
- def self.new(request_options: {})
26
+ def self.new(key:, request_options: {})
23
27
  end
24
28
 
25
- sig { override.returns({ request_options: Knockapi::RequestOptions }) }
29
+ sig do
30
+ override.returns(
31
+ { key: String, request_options: Knockapi::RequestOptions }
32
+ )
33
+ end
26
34
  def to_hash
27
35
  end
28
36
  end
@@ -14,6 +14,9 @@ module Knockapi
14
14
  )
15
15
  end
16
16
 
17
+ sig { returns(String) }
18
+ attr_accessor :key
19
+
17
20
  # A list of audience members to remove. You can remove up to 1,000 members per
18
21
  # request.
19
22
  sig { returns(T::Array[Knockapi::AudienceRemoveMembersParams::Member]) }
@@ -21,12 +24,14 @@ module Knockapi
21
24
 
22
25
  sig do
23
26
  params(
27
+ key: String,
24
28
  members:
25
29
  T::Array[Knockapi::AudienceRemoveMembersParams::Member::OrHash],
26
30
  request_options: Knockapi::RequestOptions::OrHash
27
31
  ).returns(T.attached_class)
28
32
  end
29
33
  def self.new(
34
+ key:,
30
35
  # A list of audience members to remove. You can remove up to 1,000 members per
31
36
  # request.
32
37
  members:,
@@ -37,6 +42,7 @@ module Knockapi
37
42
  sig do
38
43
  override.returns(
39
44
  {
45
+ key: String,
40
46
  members: T::Array[Knockapi::AudienceRemoveMembersParams::Member],
41
47
  request_options: Knockapi::RequestOptions
42
48
  }
@@ -11,15 +11,23 @@ module Knockapi
11
11
  T.any(Knockapi::BulkOperationGetParams, Knockapi::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  sig do
15
- params(request_options: Knockapi::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
18
+ params(
19
+ id: String,
20
+ request_options: Knockapi::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
18
22
  end
19
- def self.new(request_options: {})
23
+ def self.new(id:, request_options: {})
20
24
  end
21
25
 
22
- sig { override.returns({ request_options: Knockapi::RequestOptions }) }
26
+ sig do
27
+ override.returns(
28
+ { id: String, request_options: Knockapi::RequestOptions }
29
+ )
30
+ end
23
31
  def to_hash
24
32
  end
25
33
  end
@@ -15,6 +15,16 @@ module Knockapi
15
15
  )
16
16
  end
17
17
 
18
+ sig { returns(String) }
19
+ attr_accessor :channel_id
20
+
21
+ sig do
22
+ returns(
23
+ Knockapi::Channels::BulkUpdateMessageStatusParams::Action::OrSymbol
24
+ )
25
+ end
26
+ attr_accessor :action
27
+
18
28
  # Limits the results to messages with the given archived status.
19
29
  sig do
20
30
  returns(
@@ -122,6 +132,9 @@ module Knockapi
122
132
 
123
133
  sig do
124
134
  params(
135
+ channel_id: String,
136
+ action:
137
+ Knockapi::Channels::BulkUpdateMessageStatusParams::Action::OrSymbol,
125
138
  archived:
126
139
  Knockapi::Channels::BulkUpdateMessageStatusParams::Archived::OrSymbol,
127
140
  delivery_status:
@@ -139,6 +152,8 @@ module Knockapi
139
152
  ).returns(T.attached_class)
140
153
  end
141
154
  def self.new(
155
+ channel_id:,
156
+ action:,
142
157
  # Limits the results to messages with the given archived status.
143
158
  archived: nil,
144
159
  # Limits the results to messages with the given delivery status.
@@ -168,6 +183,9 @@ module Knockapi
168
183
  sig do
169
184
  override.returns(
170
185
  {
186
+ channel_id: String,
187
+ action:
188
+ Knockapi::Channels::BulkUpdateMessageStatusParams::Action::OrSymbol,
171
189
  archived:
172
190
  Knockapi::Channels::BulkUpdateMessageStatusParams::Archived::OrSymbol,
173
191
  delivery_status:
@@ -113,6 +113,8 @@ module Knockapi
113
113
  :is_timestamp_between,
114
114
  Knockapi::Condition::Operator::TaggedSymbol
115
115
  )
116
+ IS_BETWEEN =
117
+ T.let(:is_between, Knockapi::Condition::Operator::TaggedSymbol)
116
118
  IS_AUDIENCE_MEMBER =
117
119
  T.let(
118
120
  :is_audience_member,