knockapi 1.38.0 → 1.40.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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/models/audience_add_members_params.rb +3 -30
  5. data/lib/knockapi/models/audience_member_request.rb +32 -0
  6. data/lib/knockapi/models/audience_remove_members_params.rb +3 -30
  7. data/lib/knockapi/models/list_messages_response.rb +26 -0
  8. data/lib/knockapi/models/list_schedules_response.rb +26 -0
  9. data/lib/knockapi/models/list_subscriptions_response.rb +26 -0
  10. data/lib/knockapi/models/message.rb +37 -11
  11. data/lib/knockapi/models/{message_get_content_response.rb → message_contents.rb} +30 -156
  12. data/lib/knockapi/models/message_event.rb +3 -3
  13. data/lib/knockapi/models/message_in_app_feed_button_set_block.rb +76 -0
  14. data/lib/knockapi/models/message_in_app_feed_content_block.rb +55 -0
  15. data/lib/knockapi/models/messages/batch_archive_params.rb +2 -10
  16. data/lib/knockapi/models/messages/batch_get_content_response.rb +1 -495
  17. data/lib/knockapi/models/messages/batch_mark_as_read_params.rb +2 -10
  18. data/lib/knockapi/models/messages/batch_mark_as_seen_params.rb +2 -10
  19. data/lib/knockapi/models/messages/batch_mark_as_unread_params.rb +2 -10
  20. data/lib/knockapi/models/messages/batch_mark_as_unseen_params.rb +2 -10
  21. data/lib/knockapi/models/messages/batch_messages_status_request.rb +20 -0
  22. data/lib/knockapi/models/messages/batch_unarchive_params.rb +2 -10
  23. data/lib/knockapi/models/preference_set_commercial_subscribed_setting.rb +19 -0
  24. data/lib/knockapi/models/recipients/preference_set.rb +26 -4
  25. data/lib/knockapi/models/recipients/preference_set_request.rb +26 -4
  26. data/lib/knockapi/models/recipients/slack_channel_data.rb +9 -1
  27. data/lib/knockapi/models/users/bulk_set_preferences_params.rb +26 -4
  28. data/lib/knockapi/models/users/feed_list_items_response.rb +5 -128
  29. data/lib/knockapi/models/users/{guide_mark_message_as_archived_response.rb → guide_action_response.rb} +1 -1
  30. data/lib/knockapi/models/users/guide_archived_request.rb +72 -0
  31. data/lib/knockapi/models/users/guide_interacted_request.rb +60 -0
  32. data/lib/knockapi/models/users/guide_mark_message_as_archived_params.rb +2 -82
  33. data/lib/knockapi/models/users/guide_mark_message_as_interacted_params.rb +2 -82
  34. data/lib/knockapi/models/users/guide_mark_message_as_seen_params.rb +2 -82
  35. data/lib/knockapi/models/users/guide_reset_guide_engagements_params.rb +39 -0
  36. data/lib/knockapi/models/users/guide_seen_request.rb +68 -0
  37. data/lib/knockapi/models/users/guide_unarchive_guide_message_params.rb +39 -0
  38. data/lib/knockapi/models/users/preference_center_branding_config.rb +50 -0
  39. data/lib/knockapi/models/users/preference_center_generate_signed_url_params.rb +22 -0
  40. data/lib/knockapi/models/users/preference_center_generate_signed_url_response.rb +34 -0
  41. data/lib/knockapi/models/users/preference_center_get_config_params.rb +22 -0
  42. data/lib/knockapi/models/users/preference_center_get_config_response.rb +221 -0
  43. data/lib/knockapi/models.rb +16 -0
  44. data/lib/knockapi/resources/audiences.rb +2 -2
  45. data/lib/knockapi/resources/messages/batch.rb +2 -2
  46. data/lib/knockapi/resources/messages.rb +2 -2
  47. data/lib/knockapi/resources/objects.rb +1 -1
  48. data/lib/knockapi/resources/users/guides.rb +79 -42
  49. data/lib/knockapi/resources/users/preference_center.rb +60 -0
  50. data/lib/knockapi/resources/users.rb +7 -1
  51. data/lib/knockapi/version.rb +1 -1
  52. data/lib/knockapi.rb +21 -4
  53. data/rbi/knockapi/models/audience_add_members_params.rbi +3 -56
  54. data/rbi/knockapi/models/audience_member_request.rbi +55 -0
  55. data/rbi/knockapi/models/audience_remove_members_params.rbi +3 -57
  56. data/rbi/knockapi/models/list_messages_response.rbi +46 -0
  57. data/rbi/knockapi/models/list_schedules_response.rbi +49 -0
  58. data/rbi/knockapi/models/list_subscriptions_response.rbi +52 -0
  59. data/rbi/knockapi/models/message.rbi +50 -18
  60. data/rbi/knockapi/models/{message_get_content_response.rbi → message_contents.rbi} +43 -299
  61. data/rbi/knockapi/models/message_event.rbi +9 -9
  62. data/rbi/knockapi/models/message_in_app_feed_button_set_block.rbi +133 -0
  63. data/rbi/knockapi/models/message_in_app_feed_content_block.rbi +97 -0
  64. data/rbi/knockapi/models/messages/batch_archive_params.rbi +6 -22
  65. data/rbi/knockapi/models/messages/batch_get_content_response.rbi +1 -879
  66. data/rbi/knockapi/models/messages/batch_mark_as_read_params.rbi +6 -22
  67. data/rbi/knockapi/models/messages/batch_mark_as_seen_params.rbi +6 -22
  68. data/rbi/knockapi/models/messages/batch_mark_as_unread_params.rbi +6 -22
  69. data/rbi/knockapi/models/messages/batch_mark_as_unseen_params.rbi +6 -22
  70. data/rbi/knockapi/models/messages/batch_messages_status_request.rbi +33 -0
  71. data/rbi/knockapi/models/messages/batch_unarchive_params.rbi +6 -22
  72. data/rbi/knockapi/models/preference_set_commercial_subscribed_setting.rbi +36 -0
  73. data/rbi/knockapi/models/recipients/preference_set.rbi +50 -5
  74. data/rbi/knockapi/models/recipients/preference_set_request.rbi +56 -5
  75. data/rbi/knockapi/models/recipients/slack_channel_data.rbi +8 -0
  76. data/rbi/knockapi/models/users/bulk_set_preferences_params.rbi +56 -5
  77. data/rbi/knockapi/models/users/feed_list_items_response.rbi +4 -251
  78. data/rbi/knockapi/models/users/{guide_mark_message_as_seen_response.rbi → guide_action_response.rbi} +2 -2
  79. data/rbi/knockapi/models/users/guide_archived_request.rbi +102 -0
  80. data/rbi/knockapi/models/users/guide_interacted_request.rbi +89 -0
  81. data/rbi/knockapi/models/users/guide_mark_message_as_archived_params.rbi +3 -99
  82. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_params.rbi +3 -99
  83. data/rbi/knockapi/models/users/guide_mark_message_as_seen_params.rbi +3 -99
  84. data/rbi/knockapi/models/users/guide_reset_guide_engagements_params.rbi +65 -0
  85. data/rbi/knockapi/models/users/guide_seen_request.rbi +97 -0
  86. data/rbi/knockapi/models/users/guide_unarchive_guide_message_params.rbi +65 -0
  87. data/rbi/knockapi/models/users/preference_center_branding_config.rbi +72 -0
  88. data/rbi/knockapi/models/users/preference_center_generate_signed_url_params.rbi +40 -0
  89. data/rbi/knockapi/models/users/preference_center_generate_signed_url_response.rbi +41 -0
  90. data/rbi/knockapi/models/users/preference_center_get_config_params.rbi +40 -0
  91. data/rbi/knockapi/models/users/preference_center_get_config_response.rbi +476 -0
  92. data/rbi/knockapi/models.rbi +18 -0
  93. data/rbi/knockapi/resources/audiences.rbi +2 -3
  94. data/rbi/knockapi/resources/messages/batch.rbi +1 -3
  95. data/rbi/knockapi/resources/messages.rbi +1 -1
  96. data/rbi/knockapi/resources/objects.rbi +10 -2
  97. data/rbi/knockapi/resources/users/guides.rbi +56 -42
  98. data/rbi/knockapi/resources/users/preference_center.rbi +48 -0
  99. data/rbi/knockapi/resources/users.rbi +15 -2
  100. data/sig/knockapi/models/audience_add_members_params.rbs +4 -23
  101. data/sig/knockapi/models/audience_member_request.rbs +22 -0
  102. data/sig/knockapi/models/audience_remove_members_params.rbs +4 -26
  103. data/sig/knockapi/models/list_messages_response.rbs +22 -0
  104. data/sig/knockapi/models/list_schedules_response.rbs +22 -0
  105. data/sig/knockapi/models/list_subscriptions_response.rbs +25 -0
  106. data/sig/knockapi/models/message.rbs +28 -5
  107. data/sig/knockapi/models/message_contents.rbs +286 -0
  108. data/sig/knockapi/models/message_event.rbs +6 -6
  109. data/sig/knockapi/models/message_in_app_feed_button_set_block.rbs +54 -0
  110. data/sig/knockapi/models/message_in_app_feed_content_block.rbs +46 -0
  111. data/sig/knockapi/models/messages/batch_archive_params.rbs +4 -13
  112. data/sig/knockapi/models/messages/batch_get_content_response.rbs +1 -391
  113. data/sig/knockapi/models/messages/batch_mark_as_read_params.rbs +4 -13
  114. data/sig/knockapi/models/messages/batch_mark_as_seen_params.rbs +4 -13
  115. data/sig/knockapi/models/messages/batch_mark_as_unread_params.rbs +4 -13
  116. data/sig/knockapi/models/messages/batch_mark_as_unseen_params.rbs +4 -13
  117. data/sig/knockapi/models/messages/batch_messages_status_request.rbs +15 -0
  118. data/sig/knockapi/models/messages/batch_unarchive_params.rbs +4 -13
  119. data/sig/knockapi/models/preference_set_commercial_subscribed_setting.rbs +14 -0
  120. data/sig/knockapi/models/recipients/preference_set.rbs +13 -4
  121. data/sig/knockapi/models/recipients/preference_set_request.rbs +13 -4
  122. data/sig/knockapi/models/recipients/slack_channel_data.rbs +10 -1
  123. data/sig/knockapi/models/users/bulk_set_preferences_params.rbs +13 -4
  124. data/sig/knockapi/models/users/feed_list_items_response.rbs +2 -100
  125. data/sig/knockapi/models/users/{guide_mark_message_as_seen_response.rbs → guide_action_response.rbs} +2 -2
  126. data/sig/knockapi/models/users/guide_archived_request.rbs +58 -0
  127. data/sig/knockapi/models/users/guide_interacted_request.rbs +51 -0
  128. data/sig/knockapi/models/users/guide_mark_message_as_archived_params.rbs +4 -63
  129. data/sig/knockapi/models/users/guide_mark_message_as_interacted_params.rbs +4 -63
  130. data/sig/knockapi/models/users/guide_mark_message_as_seen_params.rbs +4 -63
  131. data/sig/knockapi/models/users/guide_reset_guide_engagements_params.rbs +36 -0
  132. data/sig/knockapi/models/users/guide_seen_request.rbs +56 -0
  133. data/sig/knockapi/models/users/guide_unarchive_guide_message_params.rbs +36 -0
  134. data/sig/knockapi/models/users/preference_center_branding_config.rbs +37 -0
  135. data/sig/knockapi/models/users/preference_center_generate_signed_url_params.rbs +25 -0
  136. data/sig/knockapi/models/users/preference_center_generate_signed_url_response.rbs +18 -0
  137. data/sig/knockapi/models/users/preference_center_get_config_params.rbs +25 -0
  138. data/sig/knockapi/models/users/preference_center_get_config_response.rbs +189 -0
  139. data/sig/knockapi/models.rbs +16 -0
  140. data/sig/knockapi/resources/audiences.rbs +2 -2
  141. data/sig/knockapi/resources/messages.rbs +1 -1
  142. data/sig/knockapi/resources/objects.rbs +1 -1
  143. data/sig/knockapi/resources/users/guides.rbs +22 -18
  144. data/sig/knockapi/resources/users/preference_center.rbs +19 -0
  145. data/sig/knockapi/resources/users.rbs +3 -1
  146. metadata +65 -14
  147. data/lib/knockapi/models/users/guide_mark_message_as_interacted_response.rb +0 -21
  148. data/lib/knockapi/models/users/guide_mark_message_as_seen_response.rb +0 -21
  149. data/rbi/knockapi/models/users/guide_mark_message_as_archived_response.rbi +0 -33
  150. data/rbi/knockapi/models/users/guide_mark_message_as_interacted_response.rbi +0 -33
  151. data/sig/knockapi/models/message_get_content_response.rbs +0 -384
  152. data/sig/knockapi/models/users/guide_mark_message_as_archived_response.rbs +0 -15
  153. data/sig/knockapi/models/users/guide_mark_message_as_interacted_response.rbs +0 -15
@@ -111,14 +111,14 @@ module Knockapi
111
111
  #
112
112
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
113
113
  #
114
- # @return [Knockapi::Models::MessageGetContentResponse]
114
+ # @return [Knockapi::Models::MessageContents]
115
115
  #
116
116
  # @see Knockapi::Models::MessageGetContentParams
117
117
  def get_content(message_id, params = {})
118
118
  @client.request(
119
119
  method: :get,
120
120
  path: ["v1/messages/%1$s/content", message_id],
121
- model: Knockapi::Models::MessageGetContentResponse,
121
+ model: Knockapi::MessageContents,
122
122
  options: params[:request_options]
123
123
  )
124
124
  end
@@ -459,7 +459,7 @@ module Knockapi
459
459
  #
460
460
  # @param channels [Hash{Symbol=>Boolean, Knockapi::Models::Recipients::PreferenceSetChannelSetting}, nil] Channel preferences.
461
461
  #
462
- # @param commercial_subscribed [Boolean, nil] Whether the recipient is subscribed to commercial communications. When false, th
462
+ # @param commercial_subscribed [Boolean, Knockapi::Models::PreferenceSetCommercialSubscribedSetting, nil] Whether the recipient is subscribed to commercial communications. When false, th
463
463
  #
464
464
  # @param workflows [Hash{Symbol=>Boolean, Knockapi::Models::Recipients::PreferenceSetRequest::Workflow::PreferenceSetWorkflowCategorySettingObject}, nil] An object where the key is the workflow key and the values are the preference se
465
465
  #
@@ -37,15 +37,16 @@ module Knockapi
37
37
  )
38
38
  end
39
39
 
40
+ # Some parameter documentations has been truncated, see
41
+ # {Knockapi::Models::Users::GuideMarkMessageAsArchivedParams} for more details.
42
+ #
40
43
  # Records that a guide has been archived by a user, triggering any associated
41
44
  # archived events.
42
45
  #
43
- # @overload mark_message_as_archived(user_id, message_id, channel_id:, guide_id:, guide_key:, guide_step_ref:, content: nil, data: nil, is_final: nil, metadata: nil, tenant: nil, request_options: {})
46
+ # @overload mark_message_as_archived(user_id, channel_id:, guide_id:, guide_key:, guide_step_ref:, is_final: nil, tenant: nil, unthrottled: nil, request_options: {})
44
47
  #
45
48
  # @param user_id [String] The unique identifier of the user.
46
49
  #
47
- # @param message_id [String]
48
- #
49
50
  # @param channel_id [String] The unique identifier for the channel.
50
51
  #
51
52
  # @param guide_id [String] The unique identifier for the guide.
@@ -54,28 +55,24 @@ module Knockapi
54
55
  #
55
56
  # @param guide_step_ref [String] The step reference of the guide.
56
57
  #
57
- # @param content [Hash{Symbol=>Object}] The content of the guide.
58
- #
59
- # @param data [Hash{Symbol=>Object}] The data of the guide.
60
- #
61
58
  # @param is_final [Boolean] Whether the guide is final.
62
59
  #
63
- # @param metadata [Hash{Symbol=>Object}] The metadata of the guide.
60
+ # @param tenant [String] The tenant ID of the guide.
64
61
  #
65
- # @param tenant [String, nil] The tenant ID of the guide.
62
+ # @param unthrottled [Boolean] Whether the guide bypasses its guide group's throttle settings. When true, archi
66
63
  #
67
64
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
68
65
  #
69
- # @return [Knockapi::Models::Users::GuideMarkMessageAsArchivedResponse]
66
+ # @return [Knockapi::Models::Users::GuideActionResponse]
70
67
  #
71
68
  # @see Knockapi::Models::Users::GuideMarkMessageAsArchivedParams
72
- def mark_message_as_archived(user_id, message_id, params)
69
+ def mark_message_as_archived(user_id, params)
73
70
  parsed, options = Knockapi::Users::GuideMarkMessageAsArchivedParams.dump_request(params)
74
71
  @client.request(
75
72
  method: :put,
76
- path: ["v1/users/%1$s/guides/messages/%2$s/archived", user_id, message_id],
73
+ path: ["v1/users/%1$s/guides/messages/archived", user_id],
77
74
  body: parsed,
78
- model: Knockapi::Models::Users::GuideMarkMessageAsArchivedResponse,
75
+ model: Knockapi::Users::GuideActionResponse,
79
76
  options: options
80
77
  )
81
78
  end
@@ -83,12 +80,10 @@ module Knockapi
83
80
  # Records that a user has interacted with a guide, triggering any associated
84
81
  # interacted events.
85
82
  #
86
- # @overload mark_message_as_interacted(user_id, message_id, channel_id:, guide_id:, guide_key:, guide_step_ref:, content: nil, data: nil, is_final: nil, metadata: nil, tenant: nil, request_options: {})
83
+ # @overload mark_message_as_interacted(user_id, channel_id:, guide_id:, guide_key:, guide_step_ref:, metadata: nil, tenant: nil, request_options: {})
87
84
  #
88
85
  # @param user_id [String] The unique identifier of the user.
89
86
  #
90
- # @param message_id [String]
91
- #
92
87
  # @param channel_id [String] The unique identifier for the channel.
93
88
  #
94
89
  # @param guide_id [String] The unique identifier for the guide.
@@ -97,28 +92,22 @@ module Knockapi
97
92
  #
98
93
  # @param guide_step_ref [String] The step reference of the guide.
99
94
  #
100
- # @param content [Hash{Symbol=>Object}] The content of the guide.
101
- #
102
- # @param data [Hash{Symbol=>Object}] The data of the guide.
95
+ # @param metadata [Hash{Symbol=>Object}] Metadata about the interaction.
103
96
  #
104
- # @param is_final [Boolean] Whether the guide is final.
105
- #
106
- # @param metadata [Hash{Symbol=>Object}] The metadata of the guide.
107
- #
108
- # @param tenant [String, nil] The tenant ID of the guide.
97
+ # @param tenant [String] The tenant ID of the guide.
109
98
  #
110
99
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
111
100
  #
112
- # @return [Knockapi::Models::Users::GuideMarkMessageAsInteractedResponse]
101
+ # @return [Knockapi::Models::Users::GuideActionResponse]
113
102
  #
114
103
  # @see Knockapi::Models::Users::GuideMarkMessageAsInteractedParams
115
- def mark_message_as_interacted(user_id, message_id, params)
104
+ def mark_message_as_interacted(user_id, params)
116
105
  parsed, options = Knockapi::Users::GuideMarkMessageAsInteractedParams.dump_request(params)
117
106
  @client.request(
118
107
  method: :put,
119
- path: ["v1/users/%1$s/guides/messages/%2$s/interacted", user_id, message_id],
108
+ path: ["v1/users/%1$s/guides/messages/interacted", user_id],
120
109
  body: parsed,
121
- model: Knockapi::Models::Users::GuideMarkMessageAsInteractedResponse,
110
+ model: Knockapi::Users::GuideActionResponse,
122
111
  options: options
123
112
  )
124
113
  end
@@ -126,42 +115,90 @@ module Knockapi
126
115
  # Records that a guide has been seen by a user, triggering any associated seen
127
116
  # events.
128
117
  #
129
- # @overload mark_message_as_seen(user_id, message_id, channel_id:, guide_id:, guide_key:, guide_step_ref:, content: nil, data: nil, is_final: nil, metadata: nil, tenant: nil, request_options: {})
118
+ # @overload mark_message_as_seen(user_id, channel_id:, content:, guide_id:, guide_key:, guide_step_ref:, data: nil, tenant: nil, request_options: {})
130
119
  #
131
120
  # @param user_id [String] The unique identifier of the user.
132
121
  #
133
- # @param message_id [String]
134
- #
135
122
  # @param channel_id [String] The unique identifier for the channel.
136
123
  #
124
+ # @param content [Hash{Symbol=>Object}] The content of the guide.
125
+ #
137
126
  # @param guide_id [String] The unique identifier for the guide.
138
127
  #
139
128
  # @param guide_key [String] The key of the guide.
140
129
  #
141
130
  # @param guide_step_ref [String] The step reference of the guide.
142
131
  #
143
- # @param content [Hash{Symbol=>Object}] The content of the guide.
144
- #
145
132
  # @param data [Hash{Symbol=>Object}] The data of the guide.
146
133
  #
147
- # @param is_final [Boolean] Whether the guide is final.
148
- #
149
- # @param metadata [Hash{Symbol=>Object}] The metadata of the guide.
150
- #
151
- # @param tenant [String, nil] The tenant ID of the guide.
134
+ # @param tenant [String] The tenant ID of the guide.
152
135
  #
153
136
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
154
137
  #
155
- # @return [Knockapi::Models::Users::GuideMarkMessageAsSeenResponse]
138
+ # @return [Knockapi::Models::Users::GuideActionResponse]
156
139
  #
157
140
  # @see Knockapi::Models::Users::GuideMarkMessageAsSeenParams
158
- def mark_message_as_seen(user_id, message_id, params)
141
+ def mark_message_as_seen(user_id, params)
159
142
  parsed, options = Knockapi::Users::GuideMarkMessageAsSeenParams.dump_request(params)
160
143
  @client.request(
161
144
  method: :put,
162
- path: ["v1/users/%1$s/guides/messages/%2$s/seen", user_id, message_id],
145
+ path: ["v1/users/%1$s/guides/messages/seen", user_id],
146
+ body: parsed,
147
+ model: Knockapi::Users::GuideActionResponse,
148
+ options: options
149
+ )
150
+ end
151
+
152
+ # Resets the engagement state of a guide for a user, removing the guide's
153
+ # engagement log entry so the next interaction creates a fresh engagement.
154
+ #
155
+ # @overload reset_guide_engagements(user_id, guide_key:, tenant: nil, request_options: {})
156
+ #
157
+ # @param user_id [String] The unique identifier of the user.
158
+ #
159
+ # @param guide_key [String] The key of the guide.
160
+ #
161
+ # @param tenant [String] The tenant ID of the guide.
162
+ #
163
+ # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
164
+ #
165
+ # @return [Knockapi::Models::Users::GuideActionResponse]
166
+ #
167
+ # @see Knockapi::Models::Users::GuideResetGuideEngagementsParams
168
+ def reset_guide_engagements(user_id, params)
169
+ parsed, options = Knockapi::Users::GuideResetGuideEngagementsParams.dump_request(params)
170
+ @client.request(
171
+ method: :put,
172
+ path: ["v1/users/%1$s/guides/engagements/reset", user_id],
173
+ body: parsed,
174
+ model: Knockapi::Users::GuideActionResponse,
175
+ options: options
176
+ )
177
+ end
178
+
179
+ # Records that a guide has been unarchived, triggering any associated unarchived
180
+ # events.
181
+ #
182
+ # @overload unarchive_guide_message(user_id, guide_key:, tenant: nil, request_options: {})
183
+ #
184
+ # @param user_id [String] The unique identifier of the user.
185
+ #
186
+ # @param guide_key [String] The key of the guide.
187
+ #
188
+ # @param tenant [String] The tenant ID of the guide.
189
+ #
190
+ # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
191
+ #
192
+ # @return [Knockapi::Models::Users::GuideActionResponse]
193
+ #
194
+ # @see Knockapi::Models::Users::GuideUnarchiveGuideMessageParams
195
+ def unarchive_guide_message(user_id, params)
196
+ parsed, options = Knockapi::Users::GuideUnarchiveGuideMessageParams.dump_request(params)
197
+ @client.request(
198
+ method: :delete,
199
+ path: ["v1/users/%1$s/guides/messages/archived", user_id],
163
200
  body: parsed,
164
- model: Knockapi::Models::Users::GuideMarkMessageAsSeenResponse,
201
+ model: Knockapi::Users::GuideActionResponse,
165
202
  options: options
166
203
  )
167
204
  end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Knockapi
4
+ module Resources
5
+ class Users
6
+ # The preference center is a hosted page where users can manage their notification
7
+ # preferences.
8
+ class PreferenceCenter
9
+ # Generates a signed preference center URL and token for the given user in the
10
+ # current environment.
11
+ #
12
+ # @overload generate_signed_url(user_id, request_options: {})
13
+ #
14
+ # @param user_id [String] The unique identifier of the user.
15
+ #
16
+ # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
17
+ #
18
+ # @return [Knockapi::Models::Users::PreferenceCenterGenerateSignedURLResponse]
19
+ #
20
+ # @see Knockapi::Models::Users::PreferenceCenterGenerateSignedURLParams
21
+ def generate_signed_url(user_id, params = {})
22
+ @client.request(
23
+ method: :post,
24
+ path: ["v1/users/%1$s/preference_center/signed_url", user_id],
25
+ model: Knockapi::Models::Users::PreferenceCenterGenerateSignedURLResponse,
26
+ options: params[:request_options]
27
+ )
28
+ end
29
+
30
+ # Returns the preference center config with environment metadata for the given
31
+ # user.
32
+ #
33
+ # @overload get_config(user_id, request_options: {})
34
+ #
35
+ # @param user_id [String] The unique identifier of the user.
36
+ #
37
+ # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
38
+ #
39
+ # @return [Knockapi::Models::Users::PreferenceCenterGetConfigResponse]
40
+ #
41
+ # @see Knockapi::Models::Users::PreferenceCenterGetConfigParams
42
+ def get_config(user_id, params = {})
43
+ @client.request(
44
+ method: :get,
45
+ path: ["v1/users/%1$s/preference_center/config", user_id],
46
+ model: Knockapi::Models::Users::PreferenceCenterGetConfigResponse,
47
+ options: params[:request_options]
48
+ )
49
+ end
50
+
51
+ # @api private
52
+ #
53
+ # @param client [Knockapi::Client]
54
+ def initialize(client:)
55
+ @client = client
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -20,6 +20,11 @@ module Knockapi
20
20
  # @return [Knockapi::Resources::Users::Bulk]
21
21
  attr_reader :bulk
22
22
 
23
+ # The preference center is a hosted page where users can manage their notification
24
+ # preferences.
25
+ # @return [Knockapi::Resources::Users::PreferenceCenter]
26
+ attr_reader :preference_center
27
+
23
28
  # Some parameter documentations has been truncated, see
24
29
  # {Knockapi::Models::UserUpdateParams} for more details.
25
30
  #
@@ -407,7 +412,7 @@ module Knockapi
407
412
  #
408
413
  # @param channels [Hash{Symbol=>Boolean, Knockapi::Models::Recipients::PreferenceSetChannelSetting}, nil] Channel preferences.
409
414
  #
410
- # @param commercial_subscribed [Boolean, nil] Whether the recipient is subscribed to commercial communications. When false, th
415
+ # @param commercial_subscribed [Boolean, Knockapi::Models::PreferenceSetCommercialSubscribedSetting, nil] Whether the recipient is subscribed to commercial communications. When false, th
411
416
  #
412
417
  # @param workflows [Hash{Symbol=>Boolean, Knockapi::Models::Recipients::PreferenceSetRequest::Workflow::PreferenceSetWorkflowCategorySettingObject}, nil] An object where the key is the workflow key and the values are the preference se
413
418
  #
@@ -479,6 +484,7 @@ module Knockapi
479
484
  @feeds = Knockapi::Resources::Users::Feeds.new(client: client)
480
485
  @guides = Knockapi::Resources::Users::Guides.new(client: client)
481
486
  @bulk = Knockapi::Resources::Users::Bulk.new(client: client)
487
+ @preference_center = Knockapi::Resources::Users::PreferenceCenter.new(client: client)
482
488
  end
483
489
  end
484
490
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.38.0"
4
+ VERSION = "1.40.0"
5
5
  end
data/lib/knockapi.rb CHANGED
@@ -56,8 +56,13 @@ require_relative "knockapi/internal/entries_cursor"
56
56
  require_relative "knockapi/internal/items_cursor"
57
57
  require_relative "knockapi/internal/ms_teams_pagination"
58
58
  require_relative "knockapi/internal/slack_channels_cursor"
59
+ require_relative "knockapi/models/messages/batch_messages_status_request"
59
60
  require_relative "knockapi/models/recipients/channel_data_request"
60
61
  require_relative "knockapi/models/recipients/preference_set_request"
62
+ require_relative "knockapi/models/users/guide_archived_request"
63
+ require_relative "knockapi/models/users/guide_interacted_request"
64
+ require_relative "knockapi/models/users/guide_seen_request"
65
+ require_relative "knockapi/models/users/preference_center_branding_config"
61
66
  require_relative "knockapi/models/identify_user_request"
62
67
  require_relative "knockapi/models/workflow_recipient_run"
63
68
  require_relative "knockapi/models/activity"
@@ -65,6 +70,7 @@ require_relative "knockapi/models/audience_add_members_params"
65
70
  require_relative "knockapi/models/audience_list_members_params"
66
71
  require_relative "knockapi/models/audience_list_members_response"
67
72
  require_relative "knockapi/models/audience_member"
73
+ require_relative "knockapi/models/audience_member_request"
68
74
  require_relative "knockapi/models/audience_remove_members_params"
69
75
  require_relative "knockapi/models/bulk_operation"
70
76
  require_relative "knockapi/models/bulk_operation_get_params"
@@ -77,13 +83,18 @@ require_relative "knockapi/models/integrations/census_custom_destination_params"
77
83
  require_relative "knockapi/models/integrations/census_custom_destination_response"
78
84
  require_relative "knockapi/models/integrations/hightouch_embedded_destination_params"
79
85
  require_relative "knockapi/models/integrations/hightouch_embedded_destination_response"
86
+ require_relative "knockapi/models/list_messages_response"
87
+ require_relative "knockapi/models/list_schedules_response"
88
+ require_relative "knockapi/models/list_subscriptions_response"
80
89
  require_relative "knockapi/models/message"
81
90
  require_relative "knockapi/models/message_archive_params"
91
+ require_relative "knockapi/models/message_contents"
82
92
  require_relative "knockapi/models/message_delivery_log"
83
93
  require_relative "knockapi/models/message_event"
84
94
  require_relative "knockapi/models/message_get_content_params"
85
- require_relative "knockapi/models/message_get_content_response"
86
95
  require_relative "knockapi/models/message_get_params"
96
+ require_relative "knockapi/models/message_in_app_feed_button_set_block"
97
+ require_relative "knockapi/models/message_in_app_feed_content_block"
87
98
  require_relative "knockapi/models/message_list_activities_params"
88
99
  require_relative "knockapi/models/message_list_delivery_logs_params"
89
100
  require_relative "knockapi/models/message_list_events_params"
@@ -135,6 +146,7 @@ require_relative "knockapi/models/object_set_preferences_params"
135
146
  require_relative "knockapi/models/object_unset_channel_data_params"
136
147
  require_relative "knockapi/models/object_unset_preferences_params"
137
148
  require_relative "knockapi/models/page_info"
149
+ require_relative "knockapi/models/preference_set_commercial_subscribed_setting"
138
150
  require_relative "knockapi/models/providers/ms_team_check_auth_params"
139
151
  require_relative "knockapi/models/providers/ms_team_check_auth_response"
140
152
  require_relative "knockapi/models/providers/ms_team_list_channels_params"
@@ -205,14 +217,18 @@ require_relative "knockapi/models/users/feed_get_settings_params"
205
217
  require_relative "knockapi/models/users/feed_get_settings_response"
206
218
  require_relative "knockapi/models/users/feed_list_items_params"
207
219
  require_relative "knockapi/models/users/feed_list_items_response"
220
+ require_relative "knockapi/models/users/guide_action_response"
208
221
  require_relative "knockapi/models/users/guide_get_channel_params"
209
222
  require_relative "knockapi/models/users/guide_get_channel_response"
210
223
  require_relative "knockapi/models/users/guide_mark_message_as_archived_params"
211
- require_relative "knockapi/models/users/guide_mark_message_as_archived_response"
212
224
  require_relative "knockapi/models/users/guide_mark_message_as_interacted_params"
213
- require_relative "knockapi/models/users/guide_mark_message_as_interacted_response"
214
225
  require_relative "knockapi/models/users/guide_mark_message_as_seen_params"
215
- require_relative "knockapi/models/users/guide_mark_message_as_seen_response"
226
+ require_relative "knockapi/models/users/guide_reset_guide_engagements_params"
227
+ require_relative "knockapi/models/users/guide_unarchive_guide_message_params"
228
+ require_relative "knockapi/models/users/preference_center_generate_signed_url_params"
229
+ require_relative "knockapi/models/users/preference_center_generate_signed_url_response"
230
+ require_relative "knockapi/models/users/preference_center_get_config_params"
231
+ require_relative "knockapi/models/users/preference_center_get_config_response"
216
232
  require_relative "knockapi/models/user_set_channel_data_params"
217
233
  require_relative "knockapi/models/user_set_preferences_params"
218
234
  require_relative "knockapi/models/user_unset_channel_data_params"
@@ -252,5 +268,6 @@ require_relative "knockapi/resources/users"
252
268
  require_relative "knockapi/resources/users/bulk"
253
269
  require_relative "knockapi/resources/users/feeds"
254
270
  require_relative "knockapi/resources/users/guides"
271
+ require_relative "knockapi/resources/users/preference_center"
255
272
  require_relative "knockapi/resources/workflow_recipient_runs"
256
273
  require_relative "knockapi/resources/workflows"
@@ -15,7 +15,7 @@ module Knockapi
15
15
  attr_accessor :key
16
16
 
17
17
  # A list of audience members to add. You can add up to 1,000 members per request.
18
- sig { returns(T::Array[Knockapi::AudienceAddMembersParams::Member]) }
18
+ sig { returns(T::Array[Knockapi::AudienceMemberRequest]) }
19
19
  attr_accessor :members
20
20
 
21
21
  # Create the audience if it does not exist.
@@ -28,7 +28,7 @@ module Knockapi
28
28
  sig do
29
29
  params(
30
30
  key: String,
31
- members: T::Array[Knockapi::AudienceAddMembersParams::Member::OrHash],
31
+ members: T::Array[Knockapi::AudienceMemberRequest::OrHash],
32
32
  create_audience: T::Boolean,
33
33
  request_options: Knockapi::RequestOptions::OrHash
34
34
  ).returns(T.attached_class)
@@ -47,7 +47,7 @@ module Knockapi
47
47
  override.returns(
48
48
  {
49
49
  key: String,
50
- members: T::Array[Knockapi::AudienceAddMembersParams::Member],
50
+ members: T::Array[Knockapi::AudienceMemberRequest],
51
51
  create_audience: T::Boolean,
52
52
  request_options: Knockapi::RequestOptions
53
53
  }
@@ -55,59 +55,6 @@ module Knockapi
55
55
  end
56
56
  def to_hash
57
57
  end
58
-
59
- class Member < Knockapi::Internal::Type::BaseModel
60
- OrHash =
61
- T.type_alias do
62
- T.any(
63
- Knockapi::AudienceAddMembersParams::Member,
64
- Knockapi::Internal::AnyHash
65
- )
66
- end
67
-
68
- # A set of parameters to inline-identify a user with. Inline identifying the user
69
- # will ensure that the user is available before the request is executed in Knock.
70
- # It will perform an upsert for the user you're supplying, replacing any
71
- # properties specified.
72
- sig { returns(Knockapi::InlineIdentifyUserRequest) }
73
- attr_reader :user
74
-
75
- sig { params(user: Knockapi::InlineIdentifyUserRequest::OrHash).void }
76
- attr_writer :user
77
-
78
- # The unique identifier for the tenant.
79
- sig { returns(T.nilable(String)) }
80
- attr_accessor :tenant
81
-
82
- # An audience member.
83
- sig do
84
- params(
85
- user: Knockapi::InlineIdentifyUserRequest::OrHash,
86
- tenant: T.nilable(String)
87
- ).returns(T.attached_class)
88
- end
89
- def self.new(
90
- # A set of parameters to inline-identify a user with. Inline identifying the user
91
- # will ensure that the user is available before the request is executed in Knock.
92
- # It will perform an upsert for the user you're supplying, replacing any
93
- # properties specified.
94
- user:,
95
- # The unique identifier for the tenant.
96
- tenant: nil
97
- )
98
- end
99
-
100
- sig do
101
- override.returns(
102
- {
103
- user: Knockapi::InlineIdentifyUserRequest,
104
- tenant: T.nilable(String)
105
- }
106
- )
107
- end
108
- def to_hash
109
- end
110
- end
111
58
  end
112
59
  end
113
60
  end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module Knockapi
4
+ module Models
5
+ class AudienceMemberRequest < Knockapi::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Knockapi::AudienceMemberRequest, Knockapi::Internal::AnyHash)
9
+ end
10
+
11
+ # A set of parameters to inline-identify a user with. Inline identifying the user
12
+ # will ensure that the user is available before the request is executed in Knock.
13
+ # It will perform an upsert for the user you're supplying, replacing any
14
+ # properties specified.
15
+ sig { returns(Knockapi::InlineIdentifyUserRequest) }
16
+ attr_reader :user
17
+
18
+ sig { params(user: Knockapi::InlineIdentifyUserRequest::OrHash).void }
19
+ attr_writer :user
20
+
21
+ # The unique identifier for the tenant.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :tenant
24
+
25
+ # An audience member.
26
+ sig do
27
+ params(
28
+ user: Knockapi::InlineIdentifyUserRequest::OrHash,
29
+ tenant: T.nilable(String)
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # A set of parameters to inline-identify a user with. Inline identifying the user
34
+ # will ensure that the user is available before the request is executed in Knock.
35
+ # It will perform an upsert for the user you're supplying, replacing any
36
+ # properties specified.
37
+ user:,
38
+ # The unique identifier for the tenant.
39
+ tenant: nil
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ user: Knockapi::InlineIdentifyUserRequest,
47
+ tenant: T.nilable(String)
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end
@@ -19,14 +19,13 @@ module Knockapi
19
19
 
20
20
  # A list of audience members to remove. You can remove up to 1,000 members per
21
21
  # request.
22
- sig { returns(T::Array[Knockapi::AudienceRemoveMembersParams::Member]) }
22
+ sig { returns(T::Array[Knockapi::AudienceMemberRequest]) }
23
23
  attr_accessor :members
24
24
 
25
25
  sig do
26
26
  params(
27
27
  key: String,
28
- members:
29
- T::Array[Knockapi::AudienceRemoveMembersParams::Member::OrHash],
28
+ members: T::Array[Knockapi::AudienceMemberRequest::OrHash],
30
29
  request_options: Knockapi::RequestOptions::OrHash
31
30
  ).returns(T.attached_class)
32
31
  end
@@ -43,66 +42,13 @@ module Knockapi
43
42
  override.returns(
44
43
  {
45
44
  key: String,
46
- members: T::Array[Knockapi::AudienceRemoveMembersParams::Member],
45
+ members: T::Array[Knockapi::AudienceMemberRequest],
47
46
  request_options: Knockapi::RequestOptions
48
47
  }
49
48
  )
50
49
  end
51
50
  def to_hash
52
51
  end
53
-
54
- class Member < Knockapi::Internal::Type::BaseModel
55
- OrHash =
56
- T.type_alias do
57
- T.any(
58
- Knockapi::AudienceRemoveMembersParams::Member,
59
- Knockapi::Internal::AnyHash
60
- )
61
- end
62
-
63
- # A set of parameters to inline-identify a user with. Inline identifying the user
64
- # will ensure that the user is available before the request is executed in Knock.
65
- # It will perform an upsert for the user you're supplying, replacing any
66
- # properties specified.
67
- sig { returns(Knockapi::InlineIdentifyUserRequest) }
68
- attr_reader :user
69
-
70
- sig { params(user: Knockapi::InlineIdentifyUserRequest::OrHash).void }
71
- attr_writer :user
72
-
73
- # The unique identifier for the tenant.
74
- sig { returns(T.nilable(String)) }
75
- attr_accessor :tenant
76
-
77
- # An audience member.
78
- sig do
79
- params(
80
- user: Knockapi::InlineIdentifyUserRequest::OrHash,
81
- tenant: T.nilable(String)
82
- ).returns(T.attached_class)
83
- end
84
- def self.new(
85
- # A set of parameters to inline-identify a user with. Inline identifying the user
86
- # will ensure that the user is available before the request is executed in Knock.
87
- # It will perform an upsert for the user you're supplying, replacing any
88
- # properties specified.
89
- user:,
90
- # The unique identifier for the tenant.
91
- tenant: nil
92
- )
93
- end
94
-
95
- sig do
96
- override.returns(
97
- {
98
- user: Knockapi::InlineIdentifyUserRequest,
99
- tenant: T.nilable(String)
100
- }
101
- )
102
- end
103
- def to_hash
104
- end
105
- end
106
52
  end
107
53
  end
108
54
  end