getstream-ruby 5.0.0 → 6.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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -0
  3. data/lib/getstream_ruby/generated/chat_client.rb +70 -0
  4. data/lib/getstream_ruby/generated/feed.rb +10 -0
  5. data/lib/getstream_ruby/generated/feeds_client.rb +122 -6
  6. data/lib/getstream_ruby/generated/models/action_log_response.rb +5 -0
  7. data/lib/getstream_ruby/generated/models/{coordinates.rb → activity_filter_config.rb} +6 -11
  8. data/lib/getstream_ruby/generated/models/activity_request.rb +1 -1
  9. data/lib/getstream_ruby/generated/models/activity_response.rb +1 -1
  10. data/lib/getstream_ruby/generated/models/activity_selector_config.rb +1 -1
  11. data/lib/getstream_ruby/generated/models/activity_selector_config_response.rb +1 -1
  12. data/lib/getstream_ruby/generated/models/add_activity_request.rb +6 -1
  13. data/lib/getstream_ruby/generated/models/add_comment_bookmark_request.rb +51 -0
  14. data/lib/getstream_ruby/generated/models/{custom_action_request.rb → add_comment_bookmark_response.rb} +10 -10
  15. data/lib/getstream_ruby/generated/models/add_comment_request.rb +5 -0
  16. data/lib/getstream_ruby/generated/models/aggregation_config.rb +5 -0
  17. data/lib/getstream_ruby/generated/models/app_response_fields.rb +5 -0
  18. data/lib/getstream_ruby/generated/models/async_export_error_event.rb +1 -1
  19. data/lib/getstream_ruby/generated/models/ban_action_request_payload.rb +5 -0
  20. data/lib/getstream_ruby/generated/models/{delete_moderation_template_request.rb → bodyguard_profile_summary.rb} +8 -3
  21. data/lib/getstream_ruby/generated/models/bookmark_response.rb +20 -0
  22. data/lib/getstream_ruby/generated/models/{delete_bookmark_folder_request.rb → bulk_delete_action_config_request.rb} +6 -1
  23. data/lib/getstream_ruby/generated/models/bulk_delete_action_config_response.rb +36 -0
  24. data/lib/getstream_ruby/generated/models/bulk_upsert_action_config_request.rb +41 -0
  25. data/lib/getstream_ruby/generated/models/bulk_upsert_action_config_response.rb +36 -0
  26. data/lib/getstream_ruby/generated/models/{delivery_receipts.rb → bypass_action_request.rb} +1 -1
  27. data/lib/getstream_ruby/generated/models/{typing_indicators.rb → bypass_request.rb} +9 -4
  28. data/lib/getstream_ruby/generated/models/{block_action_request.rb → bypass_response.rb} +5 -5
  29. data/lib/getstream_ruby/generated/models/call_stats_participant_counts.rb +20 -0
  30. data/lib/getstream_ruby/generated/models/call_stats_participant_session.rb +20 -0
  31. data/lib/getstream_ruby/generated/models/call_stats_report_ready_event.rb +5 -0
  32. data/lib/getstream_ruby/generated/models/call_stats_session_response.rb +61 -0
  33. data/lib/getstream_ruby/generated/models/campaign_channel_template.rb +6 -6
  34. data/lib/getstream_ruby/generated/models/campaign_message_template.rb +8 -8
  35. data/lib/getstream_ruby/generated/models/change_feed_visibility_request.rb +36 -0
  36. data/lib/getstream_ruby/generated/models/{reject_appeal_request.rb → change_feed_visibility_response.rb} +10 -5
  37. data/lib/getstream_ruby/generated/models/channel_message_count_rule_parameters.rb +36 -0
  38. data/lib/getstream_ruby/generated/models/{message.rb → chat_message_response.rb} +23 -58
  39. data/lib/getstream_ruby/generated/models/comment_response.rb +5 -0
  40. data/lib/getstream_ruby/generated/models/config_response.rb +5 -0
  41. data/lib/getstream_ruby/generated/models/create_campaign_request.rb +96 -0
  42. data/lib/getstream_ruby/generated/models/create_campaign_response.rb +41 -0
  43. data/lib/getstream_ruby/generated/models/create_feed_group_request.rb +5 -0
  44. data/lib/getstream_ruby/generated/models/delete_action_config_response.rb +36 -0
  45. data/lib/getstream_ruby/generated/models/{read_receipts.rb → delete_campaign_response.rb} +7 -7
  46. data/lib/getstream_ruby/generated/models/{any_event.rb → delete_comment_bookmark_response.rb} +10 -10
  47. data/lib/getstream_ruby/generated/models/emau_stats_response.rb +41 -0
  48. data/lib/getstream_ruby/generated/models/enrichment_options.rb +5 -0
  49. data/lib/getstream_ruby/generated/models/entity_creator_response.rb +5 -0
  50. data/lib/getstream_ruby/generated/models/error_result.rb +5 -0
  51. data/lib/getstream_ruby/generated/models/event_hook.rb +6 -1
  52. data/lib/getstream_ruby/generated/models/feed_group.rb +5 -0
  53. data/lib/getstream_ruby/generated/models/feed_group_response.rb +5 -0
  54. data/lib/getstream_ruby/generated/models/feed_input.rb +6 -1
  55. data/lib/getstream_ruby/generated/models/feed_request.rb +6 -1
  56. data/lib/getstream_ruby/generated/models/feed_response.rb +5 -0
  57. data/lib/getstream_ruby/generated/models/feed_suggestion_response.rb +5 -0
  58. data/lib/getstream_ruby/generated/models/follow_batch_request.rb +5 -0
  59. data/lib/getstream_ruby/generated/models/follow_request.rb +10 -0
  60. data/lib/getstream_ruby/generated/models/full_user_response.rb +5 -0
  61. data/lib/getstream_ruby/generated/models/get_action_config_response.rb +36 -0
  62. data/lib/getstream_ruby/generated/models/get_import_v2_task_response.rb +6 -1
  63. data/lib/getstream_ruby/generated/models/get_or_create_feed_group_request.rb +5 -0
  64. data/lib/getstream_ruby/generated/models/grouped_channels_bucket.rb +36 -0
  65. data/lib/getstream_ruby/generated/models/{delete_collections_request.rb → grouped_query_channels_request.rb} +6 -1
  66. data/lib/getstream_ruby/generated/models/grouped_query_channels_response.rb +36 -0
  67. data/lib/getstream_ruby/generated/models/import_v2_task_item.rb +6 -1
  68. data/lib/getstream_ruby/generated/models/import_v2_task_settings.rb +5 -0
  69. data/lib/getstream_ruby/generated/models/insert_action_log_request.rb +10 -0
  70. data/lib/getstream_ruby/generated/models/label_result_response.rb +101 -0
  71. data/lib/getstream_ruby/generated/models/labels_request.rb +56 -0
  72. data/lib/getstream_ruby/generated/models/labels_response.rb +71 -0
  73. data/lib/getstream_ruby/generated/models/location.rb +10 -15
  74. data/lib/getstream_ruby/generated/models/message_new_event.rb +5 -0
  75. data/lib/getstream_ruby/generated/models/moderation_action_config_response.rb +5 -0
  76. data/lib/getstream_ruby/generated/models/moderation_dashboard_preferences.rb +5 -0
  77. data/lib/getstream_ruby/generated/models/notification_mark_unread_event.rb +5 -0
  78. data/lib/getstream_ruby/generated/models/query_activities_request.rb +5 -0
  79. data/lib/getstream_ruby/generated/models/query_call_session_stats_request.rb +51 -0
  80. data/lib/getstream_ruby/generated/models/query_call_session_stats_response.rb +46 -0
  81. data/lib/getstream_ruby/generated/models/query_comments_request.rb +2 -2
  82. data/lib/getstream_ruby/generated/models/query_feeds_usage_stats_response.rb +6 -1
  83. data/lib/getstream_ruby/generated/models/query_label_results_request.rb +61 -0
  84. data/lib/getstream_ruby/generated/models/query_label_results_response.rb +46 -0
  85. data/lib/getstream_ruby/generated/models/query_reactions_request.rb +2 -2
  86. data/lib/getstream_ruby/generated/models/query_review_queue_request.rb +5 -0
  87. data/lib/getstream_ruby/generated/models/query_review_queue_response.rb +5 -0
  88. data/lib/getstream_ruby/generated/models/query_revision_history_request.rb +51 -0
  89. data/lib/getstream_ruby/generated/models/query_revision_history_response.rb +46 -0
  90. data/lib/getstream_ruby/generated/models/query_threads_request.rb +2 -2
  91. data/lib/getstream_ruby/generated/models/raw_record_settings.rb +6 -1
  92. data/lib/getstream_ruby/generated/models/raw_recording_settings_request.rb +6 -1
  93. data/lib/getstream_ruby/generated/models/raw_recording_settings_response.rb +6 -1
  94. data/lib/getstream_ruby/generated/models/review_queue_item_response.rb +1 -1
  95. data/lib/getstream_ruby/generated/models/revision_history_response.rb +66 -0
  96. data/lib/getstream_ruby/generated/models/rule_builder_condition.rb +5 -0
  97. data/lib/getstream_ruby/generated/models/submit_action_request.rb +5 -0
  98. data/lib/getstream_ruby/generated/models/threaded_comment_response.rb +5 -0
  99. data/lib/getstream_ruby/generated/models/unban_action_request_payload.rb +6 -1
  100. data/lib/getstream_ruby/generated/models/update_activities_partial_batch_request.rb +6 -1
  101. data/lib/getstream_ruby/generated/models/update_activity_partial_request.rb +5 -0
  102. data/lib/getstream_ruby/generated/models/update_activity_request.rb +6 -1
  103. data/lib/getstream_ruby/generated/models/update_bookmark_request.rb +2 -2
  104. data/lib/getstream_ruby/generated/models/update_campaign_request.rb +96 -0
  105. data/lib/getstream_ruby/generated/models/update_comment_bookmark_request.rb +56 -0
  106. data/lib/getstream_ruby/generated/models/update_comment_bookmark_response.rb +36 -0
  107. data/lib/getstream_ruby/generated/models/update_comment_partial_request.rb +5 -0
  108. data/lib/getstream_ruby/generated/models/update_comment_request.rb +5 -0
  109. data/lib/getstream_ruby/generated/models/update_feed_group_request.rb +5 -0
  110. data/lib/getstream_ruby/generated/models/update_feed_request.rb +11 -1
  111. data/lib/getstream_ruby/generated/models/update_follow_request.rb +10 -0
  112. data/lib/getstream_ruby/generated/models/{moderation_action_config.rb → upsert_action_config_item.rb} +22 -12
  113. data/lib/getstream_ruby/generated/models/upsert_action_config_request.rb +76 -0
  114. data/lib/getstream_ruby/generated/models/upsert_action_config_response.rb +36 -0
  115. data/lib/getstream_ruby/generated/models/upsert_activities_request.rb +6 -1
  116. data/lib/getstream_ruby/generated/models/upsert_config_request.rb +1 -1
  117. data/lib/getstream_ruby/generated/models/upsert_moderation_rule_request.rb +22 -12
  118. data/lib/getstream_ruby/generated/models/user_response.rb +5 -0
  119. data/lib/getstream_ruby/generated/models/webhook_failover_config.rb +46 -0
  120. data/lib/getstream_ruby/generated/moderation_client.rb +159 -3
  121. data/lib/getstream_ruby/generated/video_client.rb +17 -0
  122. data/lib/getstream_ruby/version.rb +1 -1
  123. metadata +45 -94
  124. data/lib/getstream_ruby/generated/models/activity_location.rb +0 -36
  125. data/lib/getstream_ruby/generated/models/activity_marked_event.rb +0 -66
  126. data/lib/getstream_ruby/generated/models/automod_details.rb +0 -51
  127. data/lib/getstream_ruby/generated/models/ban.rb +0 -61
  128. data/lib/getstream_ruby/generated/models/ban_action_request.rb +0 -56
  129. data/lib/getstream_ruby/generated/models/channel.rb +0 -161
  130. data/lib/getstream_ruby/generated/models/channel_batch_updated_completed_event.rb +0 -81
  131. data/lib/getstream_ruby/generated/models/channel_batch_updated_started_event.rb +0 -81
  132. data/lib/getstream_ruby/generated/models/channel_member.rb +0 -141
  133. data/lib/getstream_ruby/generated/models/channel_member_lookup.rb +0 -66
  134. data/lib/getstream_ruby/generated/models/channel_messages.rb +0 -36
  135. data/lib/getstream_ruby/generated/models/channel_push_preferences.rb +0 -36
  136. data/lib/getstream_ruby/generated/models/config_overrides.rb +0 -96
  137. data/lib/getstream_ruby/generated/models/delete_activity_reaction_request.rb +0 -14
  138. data/lib/getstream_ruby/generated/models/delete_activity_request.rb +0 -14
  139. data/lib/getstream_ruby/generated/models/delete_block_list_request.rb +0 -14
  140. data/lib/getstream_ruby/generated/models/delete_bookmark_request.rb +0 -14
  141. data/lib/getstream_ruby/generated/models/delete_call_type_request.rb +0 -14
  142. data/lib/getstream_ruby/generated/models/delete_channel_request.rb +0 -14
  143. data/lib/getstream_ruby/generated/models/delete_command_request.rb +0 -14
  144. data/lib/getstream_ruby/generated/models/delete_comment_reaction_request.rb +0 -14
  145. data/lib/getstream_ruby/generated/models/delete_comment_request.rb +0 -14
  146. data/lib/getstream_ruby/generated/models/delete_custom_role_request.rb +0 -14
  147. data/lib/getstream_ruby/generated/models/delete_device_request.rb +0 -14
  148. data/lib/getstream_ruby/generated/models/delete_draft_request.rb +0 -14
  149. data/lib/getstream_ruby/generated/models/delete_external_storage_request.rb +0 -14
  150. data/lib/getstream_ruby/generated/models/delete_feed_group_request.rb +0 -14
  151. data/lib/getstream_ruby/generated/models/delete_feed_request.rb +0 -14
  152. data/lib/getstream_ruby/generated/models/delete_feed_view_request.rb +0 -14
  153. data/lib/getstream_ruby/generated/models/delete_import_v2_task_request.rb +0 -14
  154. data/lib/getstream_ruby/generated/models/delete_membership_level_request.rb +0 -14
  155. data/lib/getstream_ruby/generated/models/delete_message_request.rb +0 -14
  156. data/lib/getstream_ruby/generated/models/delete_moderation_config_request.rb +0 -14
  157. data/lib/getstream_ruby/generated/models/delete_poll_option_request.rb +0 -14
  158. data/lib/getstream_ruby/generated/models/delete_poll_request.rb +0 -14
  159. data/lib/getstream_ruby/generated/models/delete_poll_vote_request.rb +0 -14
  160. data/lib/getstream_ruby/generated/models/delete_push_provider_request.rb +0 -14
  161. data/lib/getstream_ruby/generated/models/delete_reaction_request.rb +0 -14
  162. data/lib/getstream_ruby/generated/models/delete_recording_request.rb +0 -14
  163. data/lib/getstream_ruby/generated/models/delete_reminder_request.rb +0 -14
  164. data/lib/getstream_ruby/generated/models/delete_segment_request.rb +0 -14
  165. data/lib/getstream_ruby/generated/models/delete_sip_inbound_routing_rule_request.rb +0 -14
  166. data/lib/getstream_ruby/generated/models/delete_sip_trunk_request.rb +0 -14
  167. data/lib/getstream_ruby/generated/models/delete_transcription_request.rb +0 -14
  168. data/lib/getstream_ruby/generated/models/delete_user_group_request.rb +0 -14
  169. data/lib/getstream_ruby/generated/models/delete_user_request.rb +0 -51
  170. data/lib/getstream_ruby/generated/models/denormalized_channel_fields.rb +0 -81
  171. data/lib/getstream_ruby/generated/models/device.rb +0 -66
  172. data/lib/getstream_ruby/generated/models/feeds_moderation_template_config.rb +0 -36
  173. data/lib/getstream_ruby/generated/models/file_delete_request.rb +0 -14
  174. data/lib/getstream_ruby/generated/models/flag.rb +0 -96
  175. data/lib/getstream_ruby/generated/models/flag_details.rb +0 -41
  176. data/lib/getstream_ruby/generated/models/flag_feedback.rb +0 -41
  177. data/lib/getstream_ruby/generated/models/flag_message_details.rb +0 -46
  178. data/lib/getstream_ruby/generated/models/follow_pair.rb +0 -36
  179. data/lib/getstream_ruby/generated/models/get_channel_type_request.rb +0 -14
  180. data/lib/getstream_ruby/generated/models/label.rb +0 -41
  181. data/lib/getstream_ruby/generated/models/limit_info.rb +0 -41
  182. data/lib/getstream_ruby/generated/models/mark_reviewed_request.rb +0 -41
  183. data/lib/getstream_ruby/generated/models/message_reminder.rb +0 -76
  184. data/lib/getstream_ruby/generated/models/own_user.rb +0 -166
  185. data/lib/getstream_ruby/generated/models/poll.rb +0 -131
  186. data/lib/getstream_ruby/generated/models/poll_option.rb +0 -41
  187. data/lib/getstream_ruby/generated/models/poll_vote.rb +0 -71
  188. data/lib/getstream_ruby/generated/models/privacy_settings.rb +0 -41
  189. data/lib/getstream_ruby/generated/models/push_preferences.rb +0 -51
  190. data/lib/getstream_ruby/generated/models/restore_action_request.rb +0 -31
  191. data/lib/getstream_ruby/generated/models/retention_cleanup_run.rb +0 -76
  192. data/lib/getstream_ruby/generated/models/shadow_block_action_request.rb +0 -31
  193. data/lib/getstream_ruby/generated/models/sip_challenge.rb +0 -106
  194. data/lib/getstream_ruby/generated/models/sort_param.rb +0 -41
  195. data/lib/getstream_ruby/generated/models/unban_action_request.rb +0 -31
  196. data/lib/getstream_ruby/generated/models/unblock_action_request.rb +0 -31
  197. data/lib/getstream_ruby/generated/models/unfollow_request.rb +0 -14
  198. data/lib/getstream_ruby/generated/models/unpin_activity_request.rb +0 -14
  199. data/lib/getstream_ruby/generated/models/user_mute.rb +0 -51
  200. data/lib/getstream_ruby/generated/models/video_end_call_request.rb +0 -14
  201. data/lib/getstream_ruby/generated/models/video_kick_user_request.rb +0 -14
  202. data/lib/getstream_ruby/generated/models/webhook_event.rb +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3596b4b6167cd6064d5b991f6c90fdc1d2d3c2600f04935d78ad8d3f17a3974
4
- data.tar.gz: 270614b9b84934a0d3bdce169252ba72059cbcd466fc444b903c5b076c462afd
3
+ metadata.gz: 27c072330861f383e892b398810246d083ebb9b3d89c9f72bc03f5e94cfedc10
4
+ data.tar.gz: 4df7be55b4fdd627e3c0458a38e95471142a64df598081b64b69fee3f06ef8ee
5
5
  SHA512:
6
- metadata.gz: a305c9c5af44012de6004d0527b23ac2577186168953f73104b79a7f2c29222433a06d7fa90d3008b36e2e53c6baa92090bc90a5191d4e2df3980f068740a314
7
- data.tar.gz: 4be87617294737af62deb9844d56f2dda857feecd38338fc1fda51fb1cbbe99dd08f039758e728c845e3da6b0d9bad60143e1f1106189630526ae7d2183e8dde
6
+ metadata.gz: e5cc60a58886a527d9aabb5446ed67505a734efaf5d2ef515011208e717acdc13f7dfa68f67719e7c24ba161a857ecfb9dc8359d78c609d4b4ec6138d563bb89
7
+ data.tar.gz: 1ee01a0dcebdf09d5e76eb9e8753ccedb02e5233395d5415382809d7eb12ee9ff272c458614de223c28e8e7cda7d256183f8e414a865157d3b255fdadf111cb3
data/README.md CHANGED
@@ -334,6 +334,21 @@ To enable integration tests in CI, configure these GitHub repository settings:
334
334
 
335
335
  Bug reports and pull requests are welcome on GitHub at https://github.com/getstream/getstream-ruby.
336
336
 
337
+ ## Release Process
338
+
339
+ Releases use two paths:
340
+
341
+ - Default: automatic release when a PR is merged to `main`/`master`.
342
+ - Fallback: manual release using `.github/workflows/manual-release.yml` (admin use only).
343
+
344
+ Automatic semver bump rules are based on merged PR title/body:
345
+
346
+ - `feat:` -> minor
347
+ - `fix:` (or `bug:`) -> patch
348
+ - `feat!:` or `BREAKING CHANGE` in PR body -> major
349
+
350
+ PRs with other prefixes do not trigger a release.
351
+
337
352
  ## License
338
353
 
339
354
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -12,6 +12,23 @@ module GetStream
12
12
  def initialize(client)
13
13
  @client = client
14
14
  end
15
+ # Creates a campaign
16
+ #
17
+ # @param create_campaign_request [CreateCampaignRequest]
18
+ # @return [Models::CreateCampaignResponse]
19
+ def create_campaign(create_campaign_request)
20
+ path = '/api/v2/chat/campaigns'
21
+ # Build request body
22
+ body = create_campaign_request
23
+
24
+ # Make the API request
25
+ @client.make_request(
26
+ :post,
27
+ path,
28
+ body: body
29
+ )
30
+ end
31
+
15
32
  # Query campaigns with filter query
16
33
  #
17
34
  # @param query_campaigns_request [QueryCampaignsRequest]
@@ -29,6 +46,22 @@ module GetStream
29
46
  )
30
47
  end
31
48
 
49
+ # Delete campaign
50
+ #
51
+ # @param _id [String]
52
+ # @return [Models::DeleteCampaignResponse]
53
+ def delete_campaign(_id)
54
+ path = '/api/v2/chat/campaigns/{id}'
55
+ # Replace path parameters
56
+ path = path.gsub('{id}', _id.to_s)
57
+
58
+ # Make the API request
59
+ @client.make_request(
60
+ :delete,
61
+ path
62
+ )
63
+ end
64
+
32
65
  # Get campaign by ID.
33
66
  #
34
67
  # @param _id [String]
@@ -54,6 +87,26 @@ module GetStream
54
87
  )
55
88
  end
56
89
 
90
+ # Updates a campaign
91
+ #
92
+ # @param _id [String]
93
+ # @param update_campaign_request [UpdateCampaignRequest]
94
+ # @return [Models::CampaignResponse]
95
+ def update_campaign(_id, update_campaign_request)
96
+ path = '/api/v2/chat/campaigns/{id}'
97
+ # Replace path parameters
98
+ path = path.gsub('{id}', _id.to_s)
99
+ # Build request body
100
+ body = update_campaign_request
101
+
102
+ # Make the API request
103
+ @client.make_request(
104
+ :put,
105
+ path,
106
+ body: body
107
+ )
108
+ end
109
+
57
110
  # Starts or schedules a campaign
58
111
  #
59
112
  # @param _id [String]
@@ -167,6 +220,23 @@ module GetStream
167
220
  )
168
221
  end
169
222
 
223
+ # Query channels grouped into predefined buckets. Only available for enterprise apps.
224
+ #
225
+ # @param grouped_query_channels_request [GroupedQueryChannelsRequest]
226
+ # @return [Models::GroupedQueryChannelsResponse]
227
+ def grouped_query_channels(grouped_query_channels_request)
228
+ path = '/api/v2/chat/channels/grouped'
229
+ # Build request body
230
+ body = grouped_query_channels_request
231
+
232
+ # Make the API request
233
+ @client.make_request(
234
+ :post,
235
+ path,
236
+ body: body
237
+ )
238
+ end
239
+
170
240
  # Marks channels as read up to the specific message. If no channels is given, mark all channel as readSends events:- message.read
171
241
  #
172
242
  # @param mark_channels_read_request [MarkChannelsReadRequest]
@@ -84,6 +84,16 @@ module GetStream
84
84
  @client.feeds.pin_activity(@feed_group_id, @feed_id, activity_id, pin_activity_request)
85
85
  end
86
86
 
87
+ # Changes the visibility of an existing feed. Follow reconciliation (rewriting pending follows on loosening, or removing disallowed follows/members on tightening) runs asynchronously in the background; the response returns optimistically with the intended visibility.
88
+ #
89
+ # @param change_feed_visibility_request [ChangeFeedVisibilityRequest]
90
+ # @return [Models::ChangeFeedVisibilityResponse]
91
+ def change_feed_visibility(change_feed_visibility_request)
92
+
93
+ # Delegate to the FeedsClient
94
+ @client.feeds.change_feed_visibility(@feed_group_id, @feed_id, change_feed_visibility_request)
95
+ end
96
+
87
97
  # Add, remove, or set members for a feed
88
98
  #
89
99
  # @param update_feed_members_request [UpdateFeedMembersRequest]
@@ -335,16 +335,25 @@ module GetStream
335
335
  # Returns activity by ID
336
336
  #
337
337
  # @param _id [String]
338
+ # @param comment_sort [String]
339
+ # @param comment_limit [Integer]
340
+ # @param user_id [String]
338
341
  # @return [Models::GetActivityResponse]
339
- def get_activity(_id)
342
+ def get_activity(_id, comment_sort = nil, comment_limit = nil, user_id = nil)
340
343
  path = '/api/v2/feeds/activities/{id}'
341
344
  # Replace path parameters
342
345
  path = path.gsub('{id}', _id.to_s)
346
+ # Build query parameters
347
+ query_params = {}
348
+ query_params['comment_sort'] = comment_sort unless comment_sort.nil?
349
+ query_params['comment_limit'] = comment_limit unless comment_limit.nil?
350
+ query_params['user_id'] = user_id unless user_id.nil?
343
351
 
344
352
  # Make the API request
345
353
  @client.make_request(
346
354
  :get,
347
- path
355
+ path,
356
+ query_params: query_params
348
357
  )
349
358
  end
350
359
 
@@ -388,7 +397,7 @@ module GetStream
388
397
  )
389
398
  end
390
399
 
391
- # Restores a soft-deleted activity by its ID. Only the activity owner can restore their own activities.
400
+ # Restores a soft-deleted, moderation-removed, or shadow-blocked activity by its ID. Deleted activities can be restored by the owner (client-side). Moderation-blocked activities can only be restored server-side.
392
401
  #
393
402
  # @param _id [String]
394
403
  # @param restore_activity_request [RestoreActivityRequest]
@@ -676,6 +685,69 @@ module GetStream
676
685
  )
677
686
  end
678
687
 
688
+ # Deletes a bookmark from a comment
689
+ #
690
+ # @param comment_id [String]
691
+ # @param folder_id [String]
692
+ # @param user_id [String]
693
+ # @return [Models::DeleteCommentBookmarkResponse]
694
+ def delete_comment_bookmark(comment_id, folder_id = nil, user_id = nil)
695
+ path = '/api/v2/feeds/comments/{comment_id}/bookmarks'
696
+ # Replace path parameters
697
+ path = path.gsub('{comment_id}', comment_id.to_s)
698
+ # Build query parameters
699
+ query_params = {}
700
+ query_params['folder_id'] = folder_id unless folder_id.nil?
701
+ query_params['user_id'] = user_id unless user_id.nil?
702
+
703
+ # Make the API request
704
+ @client.make_request(
705
+ :delete,
706
+ path,
707
+ query_params: query_params
708
+ )
709
+ end
710
+
711
+ # Updates a bookmark for a comment
712
+ #
713
+ # @param comment_id [String]
714
+ # @param update_comment_bookmark_request [UpdateCommentBookmarkRequest]
715
+ # @return [Models::UpdateCommentBookmarkResponse]
716
+ def update_comment_bookmark(comment_id, update_comment_bookmark_request)
717
+ path = '/api/v2/feeds/comments/{comment_id}/bookmarks'
718
+ # Replace path parameters
719
+ path = path.gsub('{comment_id}', comment_id.to_s)
720
+ # Build request body
721
+ body = update_comment_bookmark_request
722
+
723
+ # Make the API request
724
+ @client.make_request(
725
+ :patch,
726
+ path,
727
+ body: body
728
+ )
729
+ end
730
+
731
+ # Adds a bookmark to a comment
732
+ #
733
+ # @param comment_id [String]
734
+ # @param add_comment_bookmark_request [AddCommentBookmarkRequest]
735
+ # @return [Models::AddCommentBookmarkResponse]
736
+ def add_comment_bookmark(comment_id, add_comment_bookmark_request)
737
+ path = '/api/v2/feeds/comments/{comment_id}/bookmarks'
738
+ # Replace path parameters
739
+ path = path.gsub('{comment_id}', comment_id.to_s)
740
+ # Build request body
741
+ body = add_comment_bookmark_request
742
+
743
+ # Make the API request
744
+ @client.make_request(
745
+ :post,
746
+ path,
747
+ body: body
748
+ )
749
+ end
750
+
679
751
  # Deletes a comment from an object (e.g., activity) and broadcasts appropriate events
680
752
  #
681
753
  # @param _id [String]
@@ -702,16 +774,21 @@ module GetStream
702
774
  # Get a comment by ID
703
775
  #
704
776
  # @param _id [String]
777
+ # @param user_id [String]
705
778
  # @return [Models::GetCommentResponse]
706
- def get_comment(_id)
779
+ def get_comment(_id, user_id = nil)
707
780
  path = '/api/v2/feeds/comments/{id}'
708
781
  # Replace path parameters
709
782
  path = path.gsub('{id}', _id.to_s)
783
+ # Build query parameters
784
+ query_params = {}
785
+ query_params['user_id'] = user_id unless user_id.nil?
710
786
 
711
787
  # Make the API request
712
788
  @client.make_request(
713
789
  :get,
714
- path
790
+ path,
791
+ query_params: query_params
715
792
  )
716
793
  end
717
794
 
@@ -855,7 +932,7 @@ module GetStream
855
932
  )
856
933
  end
857
934
 
858
- # Restores a soft-deleted comment by its ID. The comment and all its descendants are restored. Requires moderator permissions.
935
+ # Restores a soft-deleted, moderation-removed, or shadow-blocked comment by its ID. The comment and all its descendants are restored. Deleted comments can be restored client-side. Moderation-blocked comments can only be restored server-side.
859
936
  #
860
937
  # @param _id [String]
861
938
  # @param restore_comment_request [RestoreCommentRequest]
@@ -1050,6 +1127,28 @@ module GetStream
1050
1127
  )
1051
1128
  end
1052
1129
 
1130
+ # Changes the visibility of an existing feed. Follow reconciliation (rewriting pending follows on loosening, or removing disallowed follows/members on tightening) runs asynchronously in the background; the response returns optimistically with the intended visibility.
1131
+ #
1132
+ # @param feed_group_id [String]
1133
+ # @param feed_id [String]
1134
+ # @param change_feed_visibility_request [ChangeFeedVisibilityRequest]
1135
+ # @return [Models::ChangeFeedVisibilityResponse]
1136
+ def change_feed_visibility(feed_group_id, feed_id, change_feed_visibility_request)
1137
+ path = '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/change_visibility'
1138
+ # Replace path parameters
1139
+ path = path.gsub('{feed_group_id}', feed_group_id.to_s)
1140
+ path = path.gsub('{feed_id}', feed_id.to_s)
1141
+ # Build request body
1142
+ body = change_feed_visibility_request
1143
+
1144
+ # Make the API request
1145
+ @client.make_request(
1146
+ :post,
1147
+ path,
1148
+ body: body
1149
+ )
1150
+ end
1151
+
1053
1152
  # Add, remove, or set members for a feed
1054
1153
  #
1055
1154
  # @param feed_group_id [String]
@@ -1742,6 +1841,23 @@ module GetStream
1742
1841
  )
1743
1842
  end
1744
1843
 
1844
+ # Queries revision history for activities and comments
1845
+ #
1846
+ # @param query_revision_history_request [QueryRevisionHistoryRequest]
1847
+ # @return [Models::QueryRevisionHistoryResponse]
1848
+ def query_revision_history(query_revision_history_request)
1849
+ path = '/api/v2/feeds/revisions/query'
1850
+ # Build request body
1851
+ body = query_revision_history_request
1852
+
1853
+ # Make the API request
1854
+ @client.make_request(
1855
+ :post,
1856
+ path,
1857
+ body: body
1858
+ )
1859
+ end
1860
+
1745
1861
  # Retrieve usage statistics for feeds including activity count, follow count, and API request count.Returns data aggregated by day with pagination support via from/to date parameters.This endpoint is server-side only.
1746
1862
  #
1747
1863
  # @param query_feeds_usage_stats_request [QueryFeedsUsageStatsRequest]
@@ -18,6 +18,9 @@ module GetStream
18
18
  # @!attribute reason
19
19
  # @return [String] Reason for the moderation action
20
20
  attr_accessor :reason
21
+ # @!attribute reporter_type
22
+ # @return [String] Classification of who triggered the action (e.g. user, moderator, automod, api_integration)
23
+ attr_accessor :reporter_type
21
24
  # @!attribute target_user_id
22
25
  # @return [String] ID of the user who was the target of the action
23
26
  attr_accessor :target_user_id
@@ -49,6 +52,7 @@ module GetStream
49
52
  @created_at = attributes[:created_at] || attributes['created_at']
50
53
  @id = attributes[:id] || attributes['id']
51
54
  @reason = attributes[:reason] || attributes['reason']
55
+ @reporter_type = attributes[:reporter_type] || attributes['reporter_type']
52
56
  @target_user_id = attributes[:target_user_id] || attributes['target_user_id']
53
57
  @type = attributes[:type] || attributes['type']
54
58
  @user_id = attributes[:user_id] || attributes['user_id']
@@ -65,6 +69,7 @@ module GetStream
65
69
  created_at: 'created_at',
66
70
  id: 'id',
67
71
  reason: 'reason',
72
+ reporter_type: 'reporter_type',
68
73
  target_user_id: 'target_user_id',
69
74
  type: 'type',
70
75
  user_id: 'user_id',
@@ -6,28 +6,23 @@ module GetStream
6
6
  module Generated
7
7
  module Models
8
8
  #
9
- class Coordinates < GetStream::BaseModel
9
+ class ActivityFilterConfig < GetStream::BaseModel
10
10
 
11
11
  # Model attributes
12
- # @!attribute latitude
13
- # @return [Float]
14
- attr_accessor :latitude
15
- # @!attribute longitude
16
- # @return [Float]
17
- attr_accessor :longitude
12
+ # @!attribute exclude_owner_activities
13
+ # @return [Boolean] When true, activities authored by the feed owner are excluded from feed reads
14
+ attr_accessor :exclude_owner_activities
18
15
 
19
16
  # Initialize with attributes
20
17
  def initialize(attributes = {})
21
18
  super(attributes)
22
- @latitude = attributes[:latitude] || attributes['latitude']
23
- @longitude = attributes[:longitude] || attributes['longitude']
19
+ @exclude_owner_activities = attributes[:exclude_owner_activities] || attributes['exclude_owner_activities'] || nil
24
20
  end
25
21
 
26
22
  # Override field mappings for JSON serialization
27
23
  def self.json_field_mappings
28
24
  {
29
- latitude: 'latitude',
30
- longitude: 'longitude'
25
+ exclude_owner_activities: 'exclude_owner_activities'
31
26
  }
32
27
  end
33
28
  end
@@ -74,7 +74,7 @@ module GetStream
74
74
  # @return [Object] Custom data for the activity
75
75
  attr_accessor :custom
76
76
  # @!attribute location
77
- # @return [ActivityLocation]
77
+ # @return [Location]
78
78
  attr_accessor :location
79
79
  # @!attribute search_data
80
80
  # @return [Object] Additional data for search indexing
@@ -133,7 +133,7 @@ module GetStream
133
133
  # @return [FeedResponse]
134
134
  attr_accessor :current_feed
135
135
  # @!attribute location
136
- # @return [ActivityLocation]
136
+ # @return [Location]
137
137
  attr_accessor :location
138
138
  # @!attribute metrics
139
139
  # @return [Hash<String, Integer>]
@@ -19,7 +19,7 @@ module GetStream
19
19
  # @return [String] Flexible relative time window for activity selection (e.g., '1h', '3d', '1y'). Activities older than this duration will be filtered out. Cannot be used together with cutoff_time
20
20
  attr_accessor :cutoff_window
21
21
  # @!attribute min_popularity
22
- # @return [Integer] Minimum popularity threshold
22
+ # @return [Integer] Minimum popularity threshold. For the 'popular' selector, omit to use the default (5); values below 1 are rejected
23
23
  attr_accessor :min_popularity
24
24
  # @!attribute sort
25
25
  # @return [Array<SortParamRequest>] Sort parameters for activity selection
@@ -19,7 +19,7 @@ module GetStream
19
19
  # @return [String] Flexible relative time window for activity selection (e.g., '1h', '3d', '1y')
20
20
  attr_accessor :cutoff_window
21
21
  # @!attribute min_popularity
22
- # @return [Integer] Minimum popularity threshold
22
+ # @return [Integer] Minimum popularity threshold. For the 'popular' selector, values below 1 are normalized to the default (5) at read time.
23
23
  attr_accessor :min_popularity
24
24
  # @!attribute sort
25
25
  # @return [Array<SortParamRequest>] Sort parameters for activity selection
@@ -28,6 +28,9 @@ module GetStream
28
28
  # @!attribute expires_at
29
29
  # @return [String] Expiration time for the activity
30
30
  attr_accessor :expires_at
31
+ # @!attribute force_moderation
32
+ # @return [Boolean]
33
+ attr_accessor :force_moderation
31
34
  # @!attribute id
32
35
  # @return [String] Optional ID for the activity
33
36
  attr_accessor :id
@@ -77,7 +80,7 @@ module GetStream
77
80
  # @return [Object] Custom data for the activity
78
81
  attr_accessor :custom
79
82
  # @!attribute location
80
- # @return [ActivityLocation]
83
+ # @return [Location]
81
84
  attr_accessor :location
82
85
  # @!attribute search_data
83
86
  # @return [Object] Additional data for search indexing
@@ -92,6 +95,7 @@ module GetStream
92
95
  @create_notification_activity = attributes[:create_notification_activity] || attributes['create_notification_activity'] || nil
93
96
  @enrich_own_fields = attributes[:enrich_own_fields] || attributes['enrich_own_fields'] || nil
94
97
  @expires_at = attributes[:expires_at] || attributes['expires_at'] || nil
98
+ @force_moderation = attributes[:force_moderation] || attributes['force_moderation'] || nil
95
99
  @id = attributes[:id] || attributes['id'] || nil
96
100
  @parent_id = attributes[:parent_id] || attributes['parent_id'] || nil
97
101
  @poll_id = attributes[:poll_id] || attributes['poll_id'] || nil
@@ -121,6 +125,7 @@ module GetStream
121
125
  create_notification_activity: 'create_notification_activity',
122
126
  enrich_own_fields: 'enrich_own_fields',
123
127
  expires_at: 'expires_at',
128
+ force_moderation: 'force_moderation',
124
129
  id: 'id',
125
130
  parent_id: 'parent_id',
126
131
  poll_id: 'poll_id',
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by GetStream internal OpenAPI code generator. DO NOT EDIT.
4
+
5
+ module GetStream
6
+ module Generated
7
+ module Models
8
+ #
9
+ class AddCommentBookmarkRequest < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute folder_id
13
+ # @return [String] ID of the folder to add the bookmark to
14
+ attr_accessor :folder_id
15
+ # @!attribute user_id
16
+ # @return [String]
17
+ attr_accessor :user_id
18
+ # @!attribute custom
19
+ # @return [Object] Custom data for the bookmark
20
+ attr_accessor :custom
21
+ # @!attribute new_folder
22
+ # @return [AddFolderRequest]
23
+ attr_accessor :new_folder
24
+ # @!attribute user
25
+ # @return [UserRequest]
26
+ attr_accessor :user
27
+
28
+ # Initialize with attributes
29
+ def initialize(attributes = {})
30
+ super(attributes)
31
+ @folder_id = attributes[:folder_id] || attributes['folder_id'] || nil
32
+ @user_id = attributes[:user_id] || attributes['user_id'] || nil
33
+ @custom = attributes[:custom] || attributes['custom'] || nil
34
+ @new_folder = attributes[:new_folder] || attributes['new_folder'] || nil
35
+ @user = attributes[:user] || attributes['user'] || nil
36
+ end
37
+
38
+ # Override field mappings for JSON serialization
39
+ def self.json_field_mappings
40
+ {
41
+ folder_id: 'folder_id',
42
+ user_id: 'user_id',
43
+ custom: 'custom',
44
+ new_folder: 'new_folder',
45
+ user: 'user'
46
+ }
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -6,28 +6,28 @@ module GetStream
6
6
  module Generated
7
7
  module Models
8
8
  #
9
- class CustomActionRequest < GetStream::BaseModel
9
+ class AddCommentBookmarkResponse < GetStream::BaseModel
10
10
 
11
11
  # Model attributes
12
- # @!attribute id
12
+ # @!attribute duration
13
13
  # @return [String]
14
- attr_accessor :id
15
- # @!attribute options
16
- # @return [Object]
17
- attr_accessor :options
14
+ attr_accessor :duration
15
+ # @!attribute bookmark
16
+ # @return [BookmarkResponse]
17
+ attr_accessor :bookmark
18
18
 
19
19
  # Initialize with attributes
20
20
  def initialize(attributes = {})
21
21
  super(attributes)
22
- @id = attributes[:id] || attributes['id'] || nil
23
- @options = attributes[:options] || attributes['options'] || nil
22
+ @duration = attributes[:duration] || attributes['duration']
23
+ @bookmark = attributes[:bookmark] || attributes['bookmark']
24
24
  end
25
25
 
26
26
  # Override field mappings for JSON serialization
27
27
  def self.json_field_mappings
28
28
  {
29
- id: 'id',
30
- options: 'options'
29
+ duration: 'duration',
30
+ bookmark: 'bookmark'
31
31
  }
32
32
  end
33
33
  end
@@ -22,6 +22,9 @@ module GetStream
22
22
  # @!attribute create_notification_activity
23
23
  # @return [Boolean] Whether to create a notification activity for this comment
24
24
  attr_accessor :create_notification_activity
25
+ # @!attribute force_moderation
26
+ # @return [Boolean] If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field.
27
+ attr_accessor :force_moderation
25
28
  # @!attribute id
26
29
  # @return [String] Optional custom ID for the comment (max 255 characters). If not provided, a UUID will be generated.
27
30
  attr_accessor :id
@@ -60,6 +63,7 @@ module GetStream
60
63
  @comment = attributes[:comment] || attributes['comment'] || nil
61
64
  @copy_custom_to_notification = attributes[:copy_custom_to_notification] || attributes['copy_custom_to_notification'] || nil
62
65
  @create_notification_activity = attributes[:create_notification_activity] || attributes['create_notification_activity'] || nil
66
+ @force_moderation = attributes[:force_moderation] || attributes['force_moderation'] || nil
63
67
  @id = attributes[:id] || attributes['id'] || nil
64
68
  @object_type = attributes[:object_type] || attributes['object_type'] || nil
65
69
  @parent_id = attributes[:parent_id] || attributes['parent_id'] || nil
@@ -79,6 +83,7 @@ module GetStream
79
83
  comment: 'comment',
80
84
  copy_custom_to_notification: 'copy_custom_to_notification',
81
85
  create_notification_activity: 'create_notification_activity',
86
+ force_moderation: 'force_moderation',
82
87
  id: 'id',
83
88
  object_type: 'object_type',
84
89
  parent_id: 'parent_id',
@@ -9,6 +9,9 @@ module GetStream
9
9
  class AggregationConfig < GetStream::BaseModel
10
10
 
11
11
  # Model attributes
12
+ # @!attribute activities_sort
13
+ # @return [String] Order of member activities inside each aggregated group for non-stories feeds: created_at_desc (newest first, default) or created_at_asc (oldest first). Stories feeds ignore this and always use oldest first.
14
+ attr_accessor :activities_sort
12
15
  # @!attribute format
13
16
  # @return [String] Format for activity aggregation
14
17
  attr_accessor :format
@@ -19,6 +22,7 @@ module GetStream
19
22
  # Initialize with attributes
20
23
  def initialize(attributes = {})
21
24
  super(attributes)
25
+ @activities_sort = attributes[:activities_sort] || attributes['activities_sort'] || nil
22
26
  @format = attributes[:format] || attributes['format'] || nil
23
27
  @score_strategy = attributes[:score_strategy] || attributes['score_strategy'] || nil
24
28
  end
@@ -26,6 +30,7 @@ module GetStream
26
30
  # Override field mappings for JSON serialization
27
31
  def self.json_field_mappings
28
32
  {
33
+ activities_sort: 'activities_sort',
29
34
  format: 'format',
30
35
  score_strategy: 'score_strategy'
31
36
  }
@@ -36,6 +36,9 @@ module GetStream
36
36
  # @!attribute enforce_unique_usernames
37
37
  # @return [String]
38
38
  attr_accessor :enforce_unique_usernames
39
+ # @!attribute feed_audit_logs_enabled
40
+ # @return [Boolean]
41
+ attr_accessor :feed_audit_logs_enabled
39
42
  # @!attribute guest_user_creation_disabled
40
43
  # @return [Boolean]
41
44
  attr_accessor :guest_user_creation_disabled
@@ -187,6 +190,7 @@ module GetStream
187
190
  @disable_auth_checks = attributes[:disable_auth_checks] || attributes['disable_auth_checks']
188
191
  @disable_permissions_checks = attributes[:disable_permissions_checks] || attributes['disable_permissions_checks']
189
192
  @enforce_unique_usernames = attributes[:enforce_unique_usernames] || attributes['enforce_unique_usernames']
193
+ @feed_audit_logs_enabled = attributes[:feed_audit_logs_enabled] || attributes['feed_audit_logs_enabled']
190
194
  @guest_user_creation_disabled = attributes[:guest_user_creation_disabled] || attributes['guest_user_creation_disabled']
191
195
  @id = attributes[:id] || attributes['id']
192
196
  @image_moderation_enabled = attributes[:image_moderation_enabled] || attributes['image_moderation_enabled']
@@ -247,6 +251,7 @@ module GetStream
247
251
  disable_auth_checks: 'disable_auth_checks',
248
252
  disable_permissions_checks: 'disable_permissions_checks',
249
253
  enforce_unique_usernames: 'enforce_unique_usernames',
254
+ feed_audit_logs_enabled: 'feed_audit_logs_enabled',
250
255
  guest_user_creation_disabled: 'guest_user_creation_disabled',
251
256
  id: 'id',
252
257
  image_moderation_enabled: 'image_moderation_enabled',
@@ -43,7 +43,7 @@ module GetStream
43
43
  @started_at = attributes[:started_at] || attributes['started_at']
44
44
  @task_id = attributes[:task_id] || attributes['task_id']
45
45
  @custom = attributes[:custom] || attributes['custom']
46
- @type = attributes[:type] || attributes['type'] || "export.moderation_logs.error"
46
+ @type = attributes[:type] || attributes['type'] || "export.bulk_image_moderation.error"
47
47
  @received_at = attributes[:received_at] || attributes['received_at'] || nil
48
48
  end
49
49