From b0b7657c94c2df9c2b46b4a9e0f0a3ff6d8cea3e Mon Sep 17 00:00:00 2001 From: Aditya Agarwal Date: Wed, 9 Sep 2026 18:45:48 +0200 Subject: [PATCH 1/4] feat: [FEEDS-1763.1] regenerate OpenAPI client Add activity_marks and other additive Feeds fields from chat master after #16794. Co-authored-by: Cursor --- lib/getstream_ruby/generated/chat_client.rb | 4 +- lib/getstream_ruby/generated/common_client.rb | 6 ++- lib/getstream_ruby/generated/feeds_client.rb | 6 ++- .../generated/models/activity_marks_config.rb | 36 +++++++++++++++++ .../models/activity_processing_config.rb | 7 +++- .../models/activity_selector_config.rb | 5 +++ .../activity_selector_config_response.rb | 5 +++ .../models/async_export_error_event.rb | 2 +- .../models/channel_batch_update_request.rb | 5 +++ .../models/create_feed_group_request.rb | 5 +++ .../models/delete_channels_request.rb | 9 ++++- .../generated/models/feed_group_response.rb | 5 +++ .../generated/models/feed_group_scope.rb | 36 +++++++++++++++++ .../models/get_feeds_rate_limits_response.rb | 10 +++++ .../get_or_create_feed_group_request.rb | 5 +++ .../models/get_rate_limits_response.rb | 10 +++++ .../moderation_dashboard_preferences.rb | 5 +++ .../generated/models/pagination_params.rb | 20 ++++++++++ .../models/query_banned_users_payload.rb | 20 ++++++++++ .../query_future_channel_bans_payload.rb | 20 ++++++++++ .../generated/models/query_members_payload.rb | 40 +++++++++++++++++++ .../generated/models/query_users_payload.rb | 20 ++++++++++ .../models/review_queue_item_response.rb | 5 +++ .../models/rule_builder_condition.rb | 5 +++ .../generated/models/run_stats.rb | 5 +++ .../models/update_feed_group_request.rb | 5 +++ .../generated/models/update_users_response.rb | 3 +- .../user_reaction_count_rule_parameters.rb | 36 +++++++++++++++++ .../models/webhook_failover_config.rb | 30 ++++++++++++++ 29 files changed, 362 insertions(+), 8 deletions(-) create mode 100644 lib/getstream_ruby/generated/models/activity_marks_config.rb create mode 100644 lib/getstream_ruby/generated/models/feed_group_scope.rb create mode 100644 lib/getstream_ruby/generated/models/user_reaction_count_rule_parameters.rb diff --git a/lib/getstream_ruby/generated/chat_client.rb b/lib/getstream_ruby/generated/chat_client.rb index a291b716..6b991a38 100644 --- a/lib/getstream_ruby/generated/chat_client.rb +++ b/lib/getstream_ruby/generated/chat_client.rb @@ -279,8 +279,9 @@ def get_or_create_distinct_channel(_type, channel_get_or_create_request) # @param _type [String] # @param _id [String] # @param hard_delete [Boolean] + # @param skip_truncate [Boolean] # @return [Models::DeleteChannelResponse] - def delete_channel(_type, _id, hard_delete = nil) + def delete_channel(_type, _id, hard_delete = nil, skip_truncate = nil) path = '/api/v2/chat/channels/{type}/{id}' # Replace path parameters path = path.gsub('{type}', _type.to_s) @@ -288,6 +289,7 @@ def delete_channel(_type, _id, hard_delete = nil) # Build query parameters query_params = {} query_params['hard_delete'] = hard_delete unless hard_delete.nil? + query_params['skip_truncate'] = skip_truncate unless skip_truncate.nil? # Make the API request @client.make_request( diff --git a/lib/getstream_ruby/generated/common_client.rb b/lib/getstream_ruby/generated/common_client.rb index 2a9cc968..09464b6a 100644 --- a/lib/getstream_ruby/generated/common_client.rb +++ b/lib/getstream_ruby/generated/common_client.rb @@ -1022,9 +1022,11 @@ def upsert_push_template(upsert_push_template_request) # @param ios [Boolean] # @param web [Boolean] # @param unity [Boolean] + # @param unity_desktop [Boolean] + # @param unity_console [Boolean] # @param endpoints [String] # @return [Models::GetRateLimitsResponse] - def get_rate_limits(server_side = nil, android = nil, ios = nil, web = nil, unity = nil, endpoints = nil) + def get_rate_limits(server_side = nil, android = nil, ios = nil, web = nil, unity = nil, unity_desktop = nil, unity_console = nil, endpoints = nil) path = '/api/v2/rate_limits' # Build query parameters query_params = {} @@ -1033,6 +1035,8 @@ def get_rate_limits(server_side = nil, android = nil, ios = nil, web = nil, unit query_params['ios'] = ios unless ios.nil? query_params['web'] = web unless web.nil? query_params['unity'] = unity unless unity.nil? + query_params['unity_desktop'] = unity_desktop unless unity_desktop.nil? + query_params['unity_console'] = unity_console unless unity_console.nil? query_params['endpoints'] = endpoints unless endpoints.nil? # Make the API request diff --git a/lib/getstream_ruby/generated/feeds_client.rb b/lib/getstream_ruby/generated/feeds_client.rb index 58d50d55..94e2e11e 100644 --- a/lib/getstream_ruby/generated/feeds_client.rb +++ b/lib/getstream_ruby/generated/feeds_client.rb @@ -1776,9 +1776,11 @@ def query_feeds(query_feeds_request) # @param ios [Boolean] # @param web [Boolean] # @param unity [Boolean] + # @param unity_desktop [Boolean] + # @param unity_console [Boolean] # @param server_side [Boolean] # @return [Models::GetFeedsRateLimitsResponse] - def get_feeds_rate_limits(endpoints = nil, android = nil, ios = nil, web = nil, unity = nil, server_side = nil) + def get_feeds_rate_limits(endpoints = nil, android = nil, ios = nil, web = nil, unity = nil, unity_desktop = nil, unity_console = nil, server_side = nil) path = '/api/v2/feeds/feeds/rate_limits' # Build query parameters query_params = {} @@ -1787,6 +1789,8 @@ def get_feeds_rate_limits(endpoints = nil, android = nil, ios = nil, web = nil, query_params['ios'] = ios unless ios.nil? query_params['web'] = web unless web.nil? query_params['unity'] = unity unless unity.nil? + query_params['unity_desktop'] = unity_desktop unless unity_desktop.nil? + query_params['unity_console'] = unity_console unless unity_console.nil? query_params['server_side'] = server_side unless server_side.nil? # Make the API request diff --git a/lib/getstream_ruby/generated/models/activity_marks_config.rb b/lib/getstream_ruby/generated/models/activity_marks_config.rb new file mode 100644 index 00000000..8aee3d4c --- /dev/null +++ b/lib/getstream_ruby/generated/models/activity_marks_config.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +# Code generated by GetStream internal OpenAPI code generator. DO NOT EDIT. + +module GetStream + module Generated + module Models + # + class ActivityMarksConfig < GetStream::BaseModel + + # Model attributes + # @!attribute track_read + # @return [Boolean] Whether to return per-activity read status on content feeds + attr_accessor :track_read + # @!attribute track_seen + # @return [Boolean] Whether to return per-activity seen status on content feeds + attr_accessor :track_seen + + # Initialize with attributes + def initialize(attributes = {}) + super(attributes) + @track_read = attributes[:track_read] || attributes['track_read'] || nil + @track_seen = attributes[:track_seen] || attributes['track_seen'] || nil + end + + # Override field mappings for JSON serialization + def self.json_field_mappings + { + track_read: 'track_read', + track_seen: 'track_seen' + } + end + end + end + end +end diff --git a/lib/getstream_ruby/generated/models/activity_processing_config.rb b/lib/getstream_ruby/generated/models/activity_processing_config.rb index b17e67ec..3d74d092 100644 --- a/lib/getstream_ruby/generated/models/activity_processing_config.rb +++ b/lib/getstream_ruby/generated/models/activity_processing_config.rb @@ -9,8 +9,11 @@ module Models class ActivityProcessingConfig < GetStream::BaseModel # Model attributes + # @!attribute send_allowed_tags_to_ai + # @return [Boolean] When true, this feed group's allowed_tags is given to the model as a constrained vocabulary so it maps its own wording onto a configured tag instead of that output being discarded. Improves how often a tag is produced, at the cost of sending the list on every request. Scoped to this group's own list: leaving it false keeps this group's tags out of the request even when another feed group on the same activity sets it true. Requires allowed_tags. Off by default. + attr_accessor :send_allowed_tags_to_ai # @!attribute allowed_tags - # @return [Array] When set, the LLM activity processors may only write interest tags from this list. Tags are matched literally after lower-casing and trimming, so a generic vocabulary matches more often than in-house terms. Mutually exclusive with blocked_tags. + # @return [Array] When set, the LLM activity processors may only write interest tags from this list. By default the model is not told about the list, so a tag is only written when the model happens to produce that exact word after lower-casing and trimming, which for any vocabulary is often not the case; set send_allowed_tags_to_ai to have the model choose from the list instead. Mutually exclusive with blocked_tags. attr_accessor :allowed_tags # @!attribute blocked_tags # @return [Array] Interest tags the LLM activity processors are never allowed to write. Mutually exclusive with allowed_tags. @@ -19,6 +22,7 @@ class ActivityProcessingConfig < GetStream::BaseModel # Initialize with attributes def initialize(attributes = {}) super(attributes) + @send_allowed_tags_to_ai = attributes[:send_allowed_tags_to_ai] || attributes['send_allowed_tags_to_ai'] || nil @allowed_tags = attributes[:allowed_tags] || attributes['allowed_tags'] || nil @blocked_tags = attributes[:blocked_tags] || attributes['blocked_tags'] || nil end @@ -26,6 +30,7 @@ def initialize(attributes = {}) # Override field mappings for JSON serialization def self.json_field_mappings { + send_allowed_tags_to_ai: 'send_allowed_tags_to_ai', allowed_tags: 'allowed_tags', blocked_tags: 'blocked_tags' } diff --git a/lib/getstream_ruby/generated/models/activity_selector_config.rb b/lib/getstream_ruby/generated/models/activity_selector_config.rb index 43bd3b5e..d60f3e09 100644 --- a/lib/getstream_ruby/generated/models/activity_selector_config.rb +++ b/lib/getstream_ruby/generated/models/activity_selector_config.rb @@ -24,6 +24,9 @@ class ActivitySelectorConfig < GetStream::BaseModel # @!attribute sort # @return [Array] Sort parameters for activity selection attr_accessor :sort + # @!attribute feed_groups + # @return [FeedGroupScope] + attr_accessor :feed_groups # @!attribute filter # @return [Object] Filter for activity selection attr_accessor :filter @@ -39,6 +42,7 @@ def initialize(attributes = {}) @cutoff_window = attributes[:cutoff_window] || attributes['cutoff_window'] || nil @min_popularity = attributes[:min_popularity] || attributes['min_popularity'] || nil @sort = attributes[:sort] || attributes['sort'] || nil + @feed_groups = attributes[:feed_groups] || attributes['feed_groups'] || nil @filter = attributes[:filter] || attributes['filter'] || nil @params = attributes[:params] || attributes['params'] || nil end @@ -51,6 +55,7 @@ def self.json_field_mappings cutoff_window: 'cutoff_window', min_popularity: 'min_popularity', sort: 'sort', + feed_groups: 'feed_groups', filter: 'filter', params: 'params' } diff --git a/lib/getstream_ruby/generated/models/activity_selector_config_response.rb b/lib/getstream_ruby/generated/models/activity_selector_config_response.rb index a6670824..d270b411 100644 --- a/lib/getstream_ruby/generated/models/activity_selector_config_response.rb +++ b/lib/getstream_ruby/generated/models/activity_selector_config_response.rb @@ -24,6 +24,9 @@ class ActivitySelectorConfigResponse < GetStream::BaseModel # @!attribute sort # @return [Array] Sort parameters for activity selection attr_accessor :sort + # @!attribute feed_groups + # @return [FeedGroupScope] + attr_accessor :feed_groups # @!attribute filter # @return [Object] Filter for activity selection attr_accessor :filter @@ -39,6 +42,7 @@ def initialize(attributes = {}) @cutoff_window = attributes[:cutoff_window] || attributes['cutoff_window'] || nil @min_popularity = attributes[:min_popularity] || attributes['min_popularity'] || nil @sort = attributes[:sort] || attributes['sort'] || nil + @feed_groups = attributes[:feed_groups] || attributes['feed_groups'] || nil @filter = attributes[:filter] || attributes['filter'] || nil @params = attributes[:params] || attributes['params'] || nil end @@ -51,6 +55,7 @@ def self.json_field_mappings cutoff_window: 'cutoff_window', min_popularity: 'min_popularity', sort: 'sort', + feed_groups: 'feed_groups', filter: 'filter', params: 'params' } diff --git a/lib/getstream_ruby/generated/models/async_export_error_event.rb b/lib/getstream_ruby/generated/models/async_export_error_event.rb index 93f60716..e297b0e4 100644 --- a/lib/getstream_ruby/generated/models/async_export_error_event.rb +++ b/lib/getstream_ruby/generated/models/async_export_error_event.rb @@ -43,7 +43,7 @@ def initialize(attributes = {}) @started_at = attributes[:started_at] || attributes['started_at'] @task_id = attributes[:task_id] || attributes['task_id'] @custom = attributes[:custom] || attributes['custom'] - @type = attributes[:type] || attributes['type'] || "export.review_queue.error" + @type = attributes[:type] || attributes['type'] || "export.channels.error" @received_at = attributes[:received_at] || attributes['received_at'] || nil end diff --git a/lib/getstream_ruby/generated/models/channel_batch_update_request.rb b/lib/getstream_ruby/generated/models/channel_batch_update_request.rb index e219990d..9983caa7 100644 --- a/lib/getstream_ruby/generated/models/channel_batch_update_request.rb +++ b/lib/getstream_ruby/generated/models/channel_batch_update_request.rb @@ -15,6 +15,9 @@ class ChannelBatchUpdateRequest < GetStream::BaseModel # @!attribute filter # @return [Object] Filter to apply to the query attr_accessor :filter + # @!attribute hide_history_before + # @return [DateTime] Required with the `addMembersHideHistory` operation, and rejected with every other operation including `addMembers`. Hides each matched channel's history before this time from the members the operation adds. Members that already belong to a matched channel are never affected. Must be in RFC3339 format (e.g., "2024-01-01T10:00:00Z") and in the past. + attr_accessor :hide_history_before # @!attribute custom_unset # @return [Array] `updateData` only. Deletes these keys from each channel's existing custom object, leaving every other custom key untouched. Keys are dot-paths; deleting a key that does not exist is a no-op. Cannot be combined with `data.custom` attr_accessor :custom_unset @@ -33,6 +36,7 @@ def initialize(attributes = {}) super(attributes) @operation = attributes[:operation] || attributes['operation'] @filter = attributes[:filter] || attributes['filter'] + @hide_history_before = attributes[:hide_history_before] || attributes['hide_history_before'] || nil @custom_unset = attributes[:custom_unset] || attributes['custom_unset'] || nil @members = attributes[:members] || attributes['members'] || nil @custom_set = attributes[:custom_set] || attributes['custom_set'] || nil @@ -44,6 +48,7 @@ def self.json_field_mappings { operation: 'operation', filter: 'filter', + hide_history_before: 'hide_history_before', custom_unset: 'custom_unset', members: 'members', custom_set: 'custom_set', diff --git a/lib/getstream_ruby/generated/models/create_feed_group_request.rb b/lib/getstream_ruby/generated/models/create_feed_group_request.rb index 40e427a9..92e8ccb8 100644 --- a/lib/getstream_ruby/generated/models/create_feed_group_request.rb +++ b/lib/getstream_ruby/generated/models/create_feed_group_request.rb @@ -27,6 +27,9 @@ class CreateFeedGroupRequest < GetStream::BaseModel # @!attribute activity_filter # @return [ActivityFilterConfig] attr_accessor :activity_filter + # @!attribute activity_marks + # @return [ActivityMarksConfig] + attr_accessor :activity_marks # @!attribute activity_processing # @return [ActivityProcessingConfig] attr_accessor :activity_processing @@ -58,6 +61,7 @@ def initialize(attributes = {}) @activity_processors = attributes[:activity_processors] || attributes['activity_processors'] || nil @activity_selectors = attributes[:activity_selectors] || attributes['activity_selectors'] || nil @activity_filter = attributes[:activity_filter] || attributes['activity_filter'] || nil + @activity_marks = attributes[:activity_marks] || attributes['activity_marks'] || nil @activity_processing = attributes[:activity_processing] || attributes['activity_processing'] || nil @aggregation = attributes[:aggregation] || attributes['aggregation'] || nil @custom = attributes[:custom] || attributes['custom'] || nil @@ -76,6 +80,7 @@ def self.json_field_mappings activity_processors: 'activity_processors', activity_selectors: 'activity_selectors', activity_filter: 'activity_filter', + activity_marks: 'activity_marks', activity_processing: 'activity_processing', aggregation: 'aggregation', custom: 'custom', diff --git a/lib/getstream_ruby/generated/models/delete_channels_request.rb b/lib/getstream_ruby/generated/models/delete_channels_request.rb index a2760825..0efc7f16 100644 --- a/lib/getstream_ruby/generated/models/delete_channels_request.rb +++ b/lib/getstream_ruby/generated/models/delete_channels_request.rb @@ -13,21 +13,26 @@ class DeleteChannelsRequest < GetStream::BaseModel # @return [Array] All channels that should be deleted attr_accessor :cids # @!attribute hard_delete - # @return [Boolean] Specify if channels and all ressources should be hard deleted + # @return [Boolean] Server-side only. When true, the channels and all their resources are permanently deleted instead of soft-deleted. attr_accessor :hard_delete + # @!attribute skip_truncate + # @return [Boolean] Server-side only. When true, the soft delete preserves message history instead of hiding it, so a later recreation of any of these channel IDs restores the full history. Only supported for distinct channels. Cannot be combined with hard_delete. + attr_accessor :skip_truncate # Initialize with attributes def initialize(attributes = {}) super(attributes) @cids = attributes[:cids] || attributes['cids'] @hard_delete = attributes[:hard_delete] || attributes['hard_delete'] || nil + @skip_truncate = attributes[:skip_truncate] || attributes['skip_truncate'] || nil end # Override field mappings for JSON serialization def self.json_field_mappings { cids: 'cids', - hard_delete: 'hard_delete' + hard_delete: 'hard_delete', + skip_truncate: 'skip_truncate' } end end diff --git a/lib/getstream_ruby/generated/models/feed_group_response.rb b/lib/getstream_ruby/generated/models/feed_group_response.rb index a68f7314..1ce21846 100644 --- a/lib/getstream_ruby/generated/models/feed_group_response.rb +++ b/lib/getstream_ruby/generated/models/feed_group_response.rb @@ -36,6 +36,9 @@ class FeedGroupResponse < GetStream::BaseModel # @!attribute activity_filter # @return [ActivityFilterConfig] attr_accessor :activity_filter + # @!attribute activity_marks + # @return [ActivityMarksConfig] + attr_accessor :activity_marks # @!attribute activity_processing # @return [ActivityProcessingConfig] attr_accessor :activity_processing @@ -70,6 +73,7 @@ def initialize(attributes = {}) @activity_processors = attributes[:activity_processors] || attributes['activity_processors'] || nil @activity_selectors = attributes[:activity_selectors] || attributes['activity_selectors'] || nil @activity_filter = attributes[:activity_filter] || attributes['activity_filter'] || nil + @activity_marks = attributes[:activity_marks] || attributes['activity_marks'] || nil @activity_processing = attributes[:activity_processing] || attributes['activity_processing'] || nil @aggregation = attributes[:aggregation] || attributes['aggregation'] || nil @custom = attributes[:custom] || attributes['custom'] || nil @@ -91,6 +95,7 @@ def self.json_field_mappings activity_processors: 'activity_processors', activity_selectors: 'activity_selectors', activity_filter: 'activity_filter', + activity_marks: 'activity_marks', activity_processing: 'activity_processing', aggregation: 'aggregation', custom: 'custom', diff --git a/lib/getstream_ruby/generated/models/feed_group_scope.rb b/lib/getstream_ruby/generated/models/feed_group_scope.rb new file mode 100644 index 00000000..19848e96 --- /dev/null +++ b/lib/getstream_ruby/generated/models/feed_group_scope.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +# Code generated by GetStream internal OpenAPI code generator. DO NOT EDIT. + +module GetStream + module Generated + module Models + # + class FeedGroupScope < GetStream::BaseModel + + # Model attributes + # @!attribute exclude + # @return [Array] Select activities from every feed group except these. An activity cross-posted to an excluded and a non-excluded group is still selected. Mutually exclusive with include + attr_accessor :exclude + # @!attribute include + # @return [Array] Select only activities that live in a feed belonging to one of these feed groups. Mutually exclusive with exclude + attr_accessor :include + + # Initialize with attributes + def initialize(attributes = {}) + super(attributes) + @exclude = attributes[:exclude] || attributes['exclude'] || nil + @include = attributes[:include] || attributes['include'] || nil + end + + # Override field mappings for JSON serialization + def self.json_field_mappings + { + exclude: 'exclude', + include: 'include' + } + end + end + end + end +end diff --git a/lib/getstream_ruby/generated/models/get_feeds_rate_limits_response.rb b/lib/getstream_ruby/generated/models/get_feeds_rate_limits_response.rb index 37ba6c93..b86cff62 100644 --- a/lib/getstream_ruby/generated/models/get_feeds_rate_limits_response.rb +++ b/lib/getstream_ruby/generated/models/get_feeds_rate_limits_response.rb @@ -24,6 +24,12 @@ class GetFeedsRateLimitsResponse < GetStream::BaseModel # @!attribute unity # @return [Hash] Rate limits for Unity platform (endpoint name -> limit info) attr_accessor :unity + # @!attribute unity_console + # @return [Hash] Rate limits for Unity console platform (endpoint name -> limit info) + attr_accessor :unity_console + # @!attribute unity_desktop + # @return [Hash] Rate limits for Unity desktop platform (endpoint name -> limit info) + attr_accessor :unity_desktop # @!attribute web # @return [Hash] Rate limits for Web platform (endpoint name -> limit info) attr_accessor :web @@ -36,6 +42,8 @@ def initialize(attributes = {}) @ios = attributes[:ios] || attributes['ios'] || nil @server_side = attributes[:server_side] || attributes['server_side'] || nil @unity = attributes[:unity] || attributes['unity'] || nil + @unity_console = attributes[:unity_console] || attributes['unity_console'] || nil + @unity_desktop = attributes[:unity_desktop] || attributes['unity_desktop'] || nil @web = attributes[:web] || attributes['web'] || nil end @@ -47,6 +55,8 @@ def self.json_field_mappings ios: 'ios', server_side: 'server_side', unity: 'unity', + unity_console: 'unity_console', + unity_desktop: 'unity_desktop', web: 'web' } end diff --git a/lib/getstream_ruby/generated/models/get_or_create_feed_group_request.rb b/lib/getstream_ruby/generated/models/get_or_create_feed_group_request.rb index 9a313b72..17f9a2ea 100644 --- a/lib/getstream_ruby/generated/models/get_or_create_feed_group_request.rb +++ b/lib/getstream_ruby/generated/models/get_or_create_feed_group_request.rb @@ -24,6 +24,9 @@ class GetOrCreateFeedGroupRequest < GetStream::BaseModel # @!attribute activity_filter # @return [ActivityFilterConfig] attr_accessor :activity_filter + # @!attribute activity_marks + # @return [ActivityMarksConfig] + attr_accessor :activity_marks # @!attribute activity_processing # @return [ActivityProcessingConfig] attr_accessor :activity_processing @@ -54,6 +57,7 @@ def initialize(attributes = {}) @activity_processors = attributes[:activity_processors] || attributes['activity_processors'] || nil @activity_selectors = attributes[:activity_selectors] || attributes['activity_selectors'] || nil @activity_filter = attributes[:activity_filter] || attributes['activity_filter'] || nil + @activity_marks = attributes[:activity_marks] || attributes['activity_marks'] || nil @activity_processing = attributes[:activity_processing] || attributes['activity_processing'] || nil @aggregation = attributes[:aggregation] || attributes['aggregation'] || nil @custom = attributes[:custom] || attributes['custom'] || nil @@ -71,6 +75,7 @@ def self.json_field_mappings activity_processors: 'activity_processors', activity_selectors: 'activity_selectors', activity_filter: 'activity_filter', + activity_marks: 'activity_marks', activity_processing: 'activity_processing', aggregation: 'aggregation', custom: 'custom', diff --git a/lib/getstream_ruby/generated/models/get_rate_limits_response.rb b/lib/getstream_ruby/generated/models/get_rate_limits_response.rb index c9a67622..c763c202 100644 --- a/lib/getstream_ruby/generated/models/get_rate_limits_response.rb +++ b/lib/getstream_ruby/generated/models/get_rate_limits_response.rb @@ -24,6 +24,12 @@ class GetRateLimitsResponse < GetStream::BaseModel # @!attribute unity # @return [Hash] Map of endpoint rate limits for the Unity platform attr_accessor :unity + # @!attribute unity_console + # @return [Hash] Map of endpoint rate limits for the Unity console platform + attr_accessor :unity_console + # @!attribute unity_desktop + # @return [Hash] Map of endpoint rate limits for the Unity desktop platform + attr_accessor :unity_desktop # @!attribute web # @return [Hash] Map of endpoint rate limits for the web platform attr_accessor :web @@ -36,6 +42,8 @@ def initialize(attributes = {}) @ios = attributes[:ios] || attributes['ios'] || nil @server_side = attributes[:server_side] || attributes['server_side'] || nil @unity = attributes[:unity] || attributes['unity'] || nil + @unity_console = attributes[:unity_console] || attributes['unity_console'] || nil + @unity_desktop = attributes[:unity_desktop] || attributes['unity_desktop'] || nil @web = attributes[:web] || attributes['web'] || nil end @@ -47,6 +55,8 @@ def self.json_field_mappings ios: 'ios', server_side: 'server_side', unity: 'unity', + unity_console: 'unity_console', + unity_desktop: 'unity_desktop', web: 'web' } end diff --git a/lib/getstream_ruby/generated/models/moderation_dashboard_preferences.rb b/lib/getstream_ruby/generated/models/moderation_dashboard_preferences.rb index 0ad71327..6bdf1215 100644 --- a/lib/getstream_ruby/generated/models/moderation_dashboard_preferences.rb +++ b/lib/getstream_ruby/generated/models/moderation_dashboard_preferences.rb @@ -24,6 +24,9 @@ class ModerationDashboardPreferences < GetStream::BaseModel # @!attribute disable_flagging_reviewed_entity # @return [Boolean] attr_accessor :disable_flagging_reviewed_entity + # @!attribute enforce_shadow_server_side + # @return [Boolean] + attr_accessor :enforce_shadow_server_side # @!attribute escalation_queue_enabled # @return [Boolean] attr_accessor :escalation_queue_enabled @@ -60,6 +63,7 @@ def initialize(attributes = {}) @custom_views_enabled = attributes[:custom_views_enabled] || attributes['custom_views_enabled'] || nil @disable_audit_logs = attributes[:disable_audit_logs] || attributes['disable_audit_logs'] || nil @disable_flagging_reviewed_entity = attributes[:disable_flagging_reviewed_entity] || attributes['disable_flagging_reviewed_entity'] || nil + @enforce_shadow_server_side = attributes[:enforce_shadow_server_side] || attributes['enforce_shadow_server_side'] || nil @escalation_queue_enabled = attributes[:escalation_queue_enabled] || attributes['escalation_queue_enabled'] || nil @flag_user_on_flagged_content = attributes[:flag_user_on_flagged_content] || attributes['flag_user_on_flagged_content'] || nil @include_attachment_payload = attributes[:include_attachment_payload] || attributes['include_attachment_payload'] || nil @@ -79,6 +83,7 @@ def self.json_field_mappings custom_views_enabled: 'custom_views_enabled', disable_audit_logs: 'disable_audit_logs', disable_flagging_reviewed_entity: 'disable_flagging_reviewed_entity', + enforce_shadow_server_side: 'enforce_shadow_server_side', escalation_queue_enabled: 'escalation_queue_enabled', flag_user_on_flagged_content: 'flag_user_on_flagged_content', include_attachment_payload: 'include_attachment_payload', diff --git a/lib/getstream_ruby/generated/models/pagination_params.rb b/lib/getstream_ruby/generated/models/pagination_params.rb index 7859b573..a41c8e5a 100644 --- a/lib/getstream_ruby/generated/models/pagination_params.rb +++ b/lib/getstream_ruby/generated/models/pagination_params.rb @@ -9,6 +9,18 @@ module Models class PaginationParams < GetStream::BaseModel # Model attributes + # @!attribute id_gt + # @return [Integer] + attr_accessor :id_gt + # @!attribute id_gte + # @return [Integer] + attr_accessor :id_gte + # @!attribute id_lt + # @return [Integer] + attr_accessor :id_lt + # @!attribute id_lte + # @return [Integer] + attr_accessor :id_lte # @!attribute limit # @return [Integer] attr_accessor :limit @@ -19,6 +31,10 @@ class PaginationParams < GetStream::BaseModel # Initialize with attributes def initialize(attributes = {}) super(attributes) + @id_gt = attributes[:id_gt] || attributes['id_gt'] || nil + @id_gte = attributes[:id_gte] || attributes['id_gte'] || nil + @id_lt = attributes[:id_lt] || attributes['id_lt'] || nil + @id_lte = attributes[:id_lte] || attributes['id_lte'] || nil @limit = attributes[:limit] || attributes['limit'] || nil @offset = attributes[:offset] || attributes['offset'] || nil end @@ -26,6 +42,10 @@ def initialize(attributes = {}) # Override field mappings for JSON serialization def self.json_field_mappings { + id_gt: 'id_gt', + id_gte: 'id_gte', + id_lt: 'id_lt', + id_lte: 'id_lte', limit: 'limit', offset: 'offset' } diff --git a/lib/getstream_ruby/generated/models/query_banned_users_payload.rb b/lib/getstream_ruby/generated/models/query_banned_users_payload.rb index 2dded369..2afebac3 100644 --- a/lib/getstream_ruby/generated/models/query_banned_users_payload.rb +++ b/lib/getstream_ruby/generated/models/query_banned_users_payload.rb @@ -12,6 +12,18 @@ class QueryBannedUsersPayload < GetStream::BaseModel # @!attribute filter_conditions # @return [Object] Filter conditions to apply to the query attr_accessor :filter_conditions + # @!attribute created_at_after + # @return [DateTime] + attr_accessor :created_at_after + # @!attribute created_at_after_or_equal + # @return [DateTime] + attr_accessor :created_at_after_or_equal + # @!attribute created_at_before + # @return [DateTime] + attr_accessor :created_at_before + # @!attribute created_at_before_or_equal + # @return [DateTime] + attr_accessor :created_at_before_or_equal # @!attribute exclude_expired_bans # @return [Boolean] Whether to exclude expired bans or not attr_accessor :exclude_expired_bans @@ -35,6 +47,10 @@ class QueryBannedUsersPayload < GetStream::BaseModel def initialize(attributes = {}) super(attributes) @filter_conditions = attributes[:filter_conditions] || attributes['filter_conditions'] + @created_at_after = attributes[:created_at_after] || attributes['created_at_after'] || nil + @created_at_after_or_equal = attributes[:created_at_after_or_equal] || attributes['created_at_after_or_equal'] || nil + @created_at_before = attributes[:created_at_before] || attributes['created_at_before'] || nil + @created_at_before_or_equal = attributes[:created_at_before_or_equal] || attributes['created_at_before_or_equal'] || nil @exclude_expired_bans = attributes[:exclude_expired_bans] || attributes['exclude_expired_bans'] || nil @limit = attributes[:limit] || attributes['limit'] || nil @offset = attributes[:offset] || attributes['offset'] || nil @@ -47,6 +63,10 @@ def initialize(attributes = {}) def self.json_field_mappings { filter_conditions: 'filter_conditions', + created_at_after: 'created_at_after', + created_at_after_or_equal: 'created_at_after_or_equal', + created_at_before: 'created_at_before', + created_at_before_or_equal: 'created_at_before_or_equal', exclude_expired_bans: 'exclude_expired_bans', limit: 'limit', offset: 'offset', diff --git a/lib/getstream_ruby/generated/models/query_future_channel_bans_payload.rb b/lib/getstream_ruby/generated/models/query_future_channel_bans_payload.rb index 67d1abce..91f9b074 100644 --- a/lib/getstream_ruby/generated/models/query_future_channel_bans_payload.rb +++ b/lib/getstream_ruby/generated/models/query_future_channel_bans_payload.rb @@ -9,6 +9,18 @@ module Models class QueryFutureChannelBansPayload < GetStream::BaseModel # Model attributes + # @!attribute created_at_after + # @return [DateTime] + attr_accessor :created_at_after + # @!attribute created_at_after_or_equal + # @return [DateTime] + attr_accessor :created_at_after_or_equal + # @!attribute created_at_before + # @return [DateTime] + attr_accessor :created_at_before + # @!attribute created_at_before_or_equal + # @return [DateTime] + attr_accessor :created_at_before_or_equal # @!attribute exclude_expired_bans # @return [Boolean] Whether to exclude expired bans or not attr_accessor :exclude_expired_bans @@ -34,6 +46,10 @@ class QueryFutureChannelBansPayload < GetStream::BaseModel # Initialize with attributes def initialize(attributes = {}) super(attributes) + @created_at_after = attributes[:created_at_after] || attributes['created_at_after'] || nil + @created_at_after_or_equal = attributes[:created_at_after_or_equal] || attributes['created_at_after_or_equal'] || nil + @created_at_before = attributes[:created_at_before] || attributes['created_at_before'] || nil + @created_at_before_or_equal = attributes[:created_at_before_or_equal] || attributes['created_at_before_or_equal'] || nil @exclude_expired_bans = attributes[:exclude_expired_bans] || attributes['exclude_expired_bans'] || nil @include_total = attributes[:include_total] || attributes['include_total'] || nil @limit = attributes[:limit] || attributes['limit'] || nil @@ -46,6 +62,10 @@ def initialize(attributes = {}) # Override field mappings for JSON serialization def self.json_field_mappings { + created_at_after: 'created_at_after', + created_at_after_or_equal: 'created_at_after_or_equal', + created_at_before: 'created_at_before', + created_at_before_or_equal: 'created_at_before_or_equal', exclude_expired_bans: 'exclude_expired_bans', include_total: 'include_total', limit: 'limit', diff --git a/lib/getstream_ruby/generated/models/query_members_payload.rb b/lib/getstream_ruby/generated/models/query_members_payload.rb index 90f6b731..50637c75 100644 --- a/lib/getstream_ruby/generated/models/query_members_payload.rb +++ b/lib/getstream_ruby/generated/models/query_members_payload.rb @@ -12,6 +12,18 @@ class QueryMembersPayload < GetStream::BaseModel # @!attribute type # @return [String] attr_accessor :type + # @!attribute created_at_after + # @return [DateTime] + attr_accessor :created_at_after + # @!attribute created_at_after_or_equal + # @return [DateTime] + attr_accessor :created_at_after_or_equal + # @!attribute created_at_before + # @return [DateTime] + attr_accessor :created_at_before + # @!attribute created_at_before_or_equal + # @return [DateTime] + attr_accessor :created_at_before_or_equal # @!attribute id # @return [String] attr_accessor :id @@ -24,6 +36,18 @@ class QueryMembersPayload < GetStream::BaseModel # @!attribute user_id # @return [String] attr_accessor :user_id + # @!attribute user_id_gt + # @return [String] + attr_accessor :user_id_gt + # @!attribute user_id_gte + # @return [String] + attr_accessor :user_id_gte + # @!attribute user_id_lt + # @return [String] + attr_accessor :user_id_lt + # @!attribute user_id_lte + # @return [String] + attr_accessor :user_id_lte # @!attribute members # @return [Array] attr_accessor :members @@ -41,10 +65,18 @@ class QueryMembersPayload < GetStream::BaseModel def initialize(attributes = {}) super(attributes) @type = attributes[:type] || attributes['type'] + @created_at_after = attributes[:created_at_after] || attributes['created_at_after'] || nil + @created_at_after_or_equal = attributes[:created_at_after_or_equal] || attributes['created_at_after_or_equal'] || nil + @created_at_before = attributes[:created_at_before] || attributes['created_at_before'] || nil + @created_at_before_or_equal = attributes[:created_at_before_or_equal] || attributes['created_at_before_or_equal'] || nil @id = attributes[:id] || attributes['id'] || nil @limit = attributes[:limit] || attributes['limit'] || nil @offset = attributes[:offset] || attributes['offset'] || nil @user_id = attributes[:user_id] || attributes['user_id'] || nil + @user_id_gt = attributes[:user_id_gt] || attributes['user_id_gt'] || nil + @user_id_gte = attributes[:user_id_gte] || attributes['user_id_gte'] || nil + @user_id_lt = attributes[:user_id_lt] || attributes['user_id_lt'] || nil + @user_id_lte = attributes[:user_id_lte] || attributes['user_id_lte'] || nil @members = attributes[:members] || attributes['members'] || nil @sort = attributes[:sort] || attributes['sort'] || nil @filter_conditions = attributes[:filter_conditions] || attributes['filter_conditions'] || nil @@ -55,10 +87,18 @@ def initialize(attributes = {}) def self.json_field_mappings { type: 'type', + created_at_after: 'created_at_after', + created_at_after_or_equal: 'created_at_after_or_equal', + created_at_before: 'created_at_before', + created_at_before_or_equal: 'created_at_before_or_equal', id: 'id', limit: 'limit', offset: 'offset', user_id: 'user_id', + user_id_gt: 'user_id_gt', + user_id_gte: 'user_id_gte', + user_id_lt: 'user_id_lt', + user_id_lte: 'user_id_lte', members: 'members', sort: 'sort', filter_conditions: 'filter_conditions', diff --git a/lib/getstream_ruby/generated/models/query_users_payload.rb b/lib/getstream_ruby/generated/models/query_users_payload.rb index 8feecbc5..1cdd333e 100644 --- a/lib/getstream_ruby/generated/models/query_users_payload.rb +++ b/lib/getstream_ruby/generated/models/query_users_payload.rb @@ -12,6 +12,18 @@ class QueryUsersPayload < GetStream::BaseModel # @!attribute filter_conditions # @return [Object] Filter conditions to apply to the query attr_accessor :filter_conditions + # @!attribute id_gt + # @return [String] + attr_accessor :id_gt + # @!attribute id_gte + # @return [String] + attr_accessor :id_gte + # @!attribute id_lt + # @return [String] + attr_accessor :id_lt + # @!attribute id_lte + # @return [String] + attr_accessor :id_lte # @!attribute include_deactivated_users # @return [Boolean] attr_accessor :include_deactivated_users @@ -38,6 +50,10 @@ class QueryUsersPayload < GetStream::BaseModel def initialize(attributes = {}) super(attributes) @filter_conditions = attributes[:filter_conditions] || attributes['filter_conditions'] + @id_gt = attributes[:id_gt] || attributes['id_gt'] || nil + @id_gte = attributes[:id_gte] || attributes['id_gte'] || nil + @id_lt = attributes[:id_lt] || attributes['id_lt'] || nil + @id_lte = attributes[:id_lte] || attributes['id_lte'] || nil @include_deactivated_users = attributes[:include_deactivated_users] || attributes['include_deactivated_users'] || nil @limit = attributes[:limit] || attributes['limit'] || nil @offset = attributes[:offset] || attributes['offset'] || nil @@ -51,6 +67,10 @@ def initialize(attributes = {}) def self.json_field_mappings { filter_conditions: 'filter_conditions', + id_gt: 'id_gt', + id_gte: 'id_gte', + id_lt: 'id_lt', + id_lte: 'id_lte', include_deactivated_users: 'include_deactivated_users', limit: 'limit', offset: 'offset', diff --git a/lib/getstream_ruby/generated/models/review_queue_item_response.rb b/lib/getstream_ruby/generated/models/review_queue_item_response.rb index 20959215..36711d88 100644 --- a/lib/getstream_ruby/generated/models/review_queue_item_response.rb +++ b/lib/getstream_ruby/generated/models/review_queue_item_response.rb @@ -63,6 +63,9 @@ class ReviewQueueItemResponse < GetStream::BaseModel # @!attribute completed_at # @return [DateTime] When the review was completed attr_accessor :completed_at + # @!attribute confidence_score + # @return [Float] Highest per-label confidence (0-1) any provider reported across the item's flags; absent when no flag carried one + attr_accessor :confidence_score # @!attribute config_key # @return [String] attr_accessor :config_key @@ -142,6 +145,7 @@ def initialize(attributes = {}) @flags = attributes[:flags] || attributes['flags'] @languages = attributes[:languages] || attributes['languages'] @completed_at = attributes[:completed_at] || attributes['completed_at'] || nil + @confidence_score = attributes[:confidence_score] || attributes['confidence_score'] || nil @config_key = attributes[:config_key] || attributes['config_key'] || nil @entity_creator_id = attributes[:entity_creator_id] || attributes['entity_creator_id'] || nil @escalated_at = attributes[:escalated_at] || attributes['escalated_at'] || nil @@ -184,6 +188,7 @@ def self.json_field_mappings flags: 'flags', languages: 'languages', completed_at: 'completed_at', + confidence_score: 'confidence_score', config_key: 'config_key', entity_creator_id: 'entity_creator_id', escalated_at: 'escalated_at', diff --git a/lib/getstream_ruby/generated/models/rule_builder_condition.rb b/lib/getstream_ruby/generated/models/rule_builder_condition.rb index 4ee0d92f..54ab4692 100644 --- a/lib/getstream_ruby/generated/models/rule_builder_condition.rb +++ b/lib/getstream_ruby/generated/models/rule_builder_condition.rb @@ -87,6 +87,9 @@ class RuleBuilderCondition < GetStream::BaseModel # @!attribute user_identical_content_count_params # @return [UserIdenticalContentCountParameters] attr_accessor :user_identical_content_count_params + # @!attribute user_reaction_count_params + # @return [UserReactionCountRuleParameters] + attr_accessor :user_reaction_count_params # @!attribute user_role_params # @return [UserRoleParameters] attr_accessor :user_role_params @@ -129,6 +132,7 @@ def initialize(attributes = {}) @user_custom_property_params = attributes[:user_custom_property_params] || attributes['user_custom_property_params'] || nil @user_flag_count_rule_params = attributes[:user_flag_count_rule_params] || attributes['user_flag_count_rule_params'] || nil @user_identical_content_count_params = attributes[:user_identical_content_count_params] || attributes['user_identical_content_count_params'] || nil + @user_reaction_count_params = attributes[:user_reaction_count_params] || attributes['user_reaction_count_params'] || nil @user_role_params = attributes[:user_role_params] || attributes['user_role_params'] || nil @user_rule_params = attributes[:user_rule_params] || attributes['user_rule_params'] || nil @video_content_params = attributes[:video_content_params] || attributes['video_content_params'] || nil @@ -164,6 +168,7 @@ def self.json_field_mappings user_custom_property_params: 'user_custom_property_params', user_flag_count_rule_params: 'user_flag_count_rule_params', user_identical_content_count_params: 'user_identical_content_count_params', + user_reaction_count_params: 'user_reaction_count_params', user_role_params: 'user_role_params', user_rule_params: 'user_rule_params', video_content_params: 'video_content_params', diff --git a/lib/getstream_ruby/generated/models/run_stats.rb b/lib/getstream_ruby/generated/models/run_stats.rb index a5fda1fa..5e4b2387 100644 --- a/lib/getstream_ruby/generated/models/run_stats.rb +++ b/lib/getstream_ruby/generated/models/run_stats.rb @@ -9,6 +9,9 @@ module Models class RunStats < GetStream::BaseModel # Model attributes + # @!attribute activities_deleted + # @return [Integer] + attr_accessor :activities_deleted # @!attribute channels_deleted # @return [Integer] attr_accessor :channels_deleted @@ -19,6 +22,7 @@ class RunStats < GetStream::BaseModel # Initialize with attributes def initialize(attributes = {}) super(attributes) + @activities_deleted = attributes[:activities_deleted] || attributes['activities_deleted'] || nil @channels_deleted = attributes[:channels_deleted] || attributes['channels_deleted'] || nil @messages_deleted = attributes[:messages_deleted] || attributes['messages_deleted'] || nil end @@ -26,6 +30,7 @@ def initialize(attributes = {}) # Override field mappings for JSON serialization def self.json_field_mappings { + activities_deleted: 'activities_deleted', channels_deleted: 'channels_deleted', messages_deleted: 'messages_deleted' } diff --git a/lib/getstream_ruby/generated/models/update_feed_group_request.rb b/lib/getstream_ruby/generated/models/update_feed_group_request.rb index e88e1c40..74a5fb16 100644 --- a/lib/getstream_ruby/generated/models/update_feed_group_request.rb +++ b/lib/getstream_ruby/generated/models/update_feed_group_request.rb @@ -24,6 +24,9 @@ class UpdateFeedGroupRequest < GetStream::BaseModel # @!attribute activity_filter # @return [ActivityFilterConfig] attr_accessor :activity_filter + # @!attribute activity_marks + # @return [ActivityMarksConfig] + attr_accessor :activity_marks # @!attribute activity_processing # @return [ActivityProcessingConfig] attr_accessor :activity_processing @@ -54,6 +57,7 @@ def initialize(attributes = {}) @activity_processors = attributes[:activity_processors] || attributes['activity_processors'] || nil @activity_selectors = attributes[:activity_selectors] || attributes['activity_selectors'] || nil @activity_filter = attributes[:activity_filter] || attributes['activity_filter'] || nil + @activity_marks = attributes[:activity_marks] || attributes['activity_marks'] || nil @activity_processing = attributes[:activity_processing] || attributes['activity_processing'] || nil @aggregation = attributes[:aggregation] || attributes['aggregation'] || nil @custom = attributes[:custom] || attributes['custom'] || nil @@ -71,6 +75,7 @@ def self.json_field_mappings activity_processors: 'activity_processors', activity_selectors: 'activity_selectors', activity_filter: 'activity_filter', + activity_marks: 'activity_marks', activity_processing: 'activity_processing', aggregation: 'aggregation', custom: 'custom', diff --git a/lib/getstream_ruby/generated/models/update_users_response.rb b/lib/getstream_ruby/generated/models/update_users_response.rb index 815dbf3c..83989fc5 100644 --- a/lib/getstream_ruby/generated/models/update_users_response.rb +++ b/lib/getstream_ruby/generated/models/update_users_response.rb @@ -13,7 +13,8 @@ class UpdateUsersResponse < GetStream::BaseModel # @return [String] Duration of the request in milliseconds attr_accessor :duration # @!attribute membership_deletion_task_id - # @return [String] + # @deprecated This field is deprecated. + # @return [String] Deprecated: always empty. Removing a user from a team no longer deletes their memberships in that team's channels, so there is no task to poll attr_accessor :membership_deletion_task_id # @!attribute users # @return [Hash] Object containing users diff --git a/lib/getstream_ruby/generated/models/user_reaction_count_rule_parameters.rb b/lib/getstream_ruby/generated/models/user_reaction_count_rule_parameters.rb new file mode 100644 index 00000000..99789a25 --- /dev/null +++ b/lib/getstream_ruby/generated/models/user_reaction_count_rule_parameters.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +# Code generated by GetStream internal OpenAPI code generator. DO NOT EDIT. + +module GetStream + module Generated + module Models + # + class UserReactionCountRuleParameters < GetStream::BaseModel + + # Model attributes + # @!attribute threshold + # @return [Integer] + attr_accessor :threshold + # @!attribute time_window + # @return [String] + attr_accessor :time_window + + # Initialize with attributes + def initialize(attributes = {}) + super(attributes) + @threshold = attributes[:threshold] || attributes['threshold'] || nil + @time_window = attributes[:time_window] || attributes['time_window'] || nil + end + + # Override field mappings for JSON serialization + def self.json_field_mappings + { + threshold: 'threshold', + time_window: 'time_window' + } + end + end + end + end +end diff --git a/lib/getstream_ruby/generated/models/webhook_failover_config.rb b/lib/getstream_ruby/generated/models/webhook_failover_config.rb index 2c06b475..3e16062f 100644 --- a/lib/getstream_ruby/generated/models/webhook_failover_config.rb +++ b/lib/getstream_ruby/generated/models/webhook_failover_config.rb @@ -18,6 +18,24 @@ class WebhookFailoverConfig < GetStream::BaseModel # @!attribute gcs_path # @return [String] attr_accessor :gcs_path + # @!attribute s3_api_key + # @return [String] + attr_accessor :s3_api_key + # @!attribute s3_bucket + # @return [String] + attr_accessor :s3_bucket + # @!attribute s3_path + # @return [String] + attr_accessor :s3_path + # @!attribute s3_region + # @return [String] + attr_accessor :s3_region + # @!attribute s3_role_arn + # @return [String] + attr_accessor :s3_role_arn + # @!attribute s3_secret + # @return [String] + attr_accessor :s3_secret # @!attribute type # @return [String] attr_accessor :type @@ -28,6 +46,12 @@ def initialize(attributes = {}) @gcs_bucket = attributes[:gcs_bucket] || attributes['gcs_bucket'] || nil @gcs_credentials = attributes[:gcs_credentials] || attributes['gcs_credentials'] || nil @gcs_path = attributes[:gcs_path] || attributes['gcs_path'] || nil + @s3_api_key = attributes[:s3_api_key] || attributes['s3_api_key'] || nil + @s3_bucket = attributes[:s3_bucket] || attributes['s3_bucket'] || nil + @s3_path = attributes[:s3_path] || attributes['s3_path'] || nil + @s3_region = attributes[:s3_region] || attributes['s3_region'] || nil + @s3_role_arn = attributes[:s3_role_arn] || attributes['s3_role_arn'] || nil + @s3_secret = attributes[:s3_secret] || attributes['s3_secret'] || nil @type = attributes[:type] || attributes['type'] || nil end @@ -37,6 +61,12 @@ def self.json_field_mappings gcs_bucket: 'gcs_bucket', gcs_credentials: 'gcs_credentials', gcs_path: 'gcs_path', + s3_api_key: 's3_api_key', + s3_bucket: 's3_bucket', + s3_path: 's3_path', + s3_region: 's3_region', + s3_role_arn: 's3_role_arn', + s3_secret: 's3_secret', type: 'type' } end From 68fcf8ae07060f2f177fbcc6b6650019231704f5 Mon Sep 17 00:00:00 2001 From: Aditya Agarwal Date: Wed, 9 Sep 2026 21:43:25 +0200 Subject: [PATCH 2/4] test: [FEEDS-1763.1] cover activity_marks ranking is_seen --- spec/activity_marks_ranking_spec.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 spec/activity_marks_ranking_spec.rb diff --git a/spec/activity_marks_ranking_spec.rb b/spec/activity_marks_ranking_spec.rb new file mode 100644 index 00000000..d9ecc23d --- /dev/null +++ b/spec/activity_marks_ranking_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require 'json' +require 'spec_helper' + +RSpec.describe 'activity_marks ranking is_seen' do + + it 'serializes CreateFeedGroupRequest with activity_marks and an is_seen ranking score' do + request = GetStream::Generated::Models::CreateFeedGroupRequest.new( + id: 'timeline', + activity_marks: GetStream::Generated::Models::ActivityMarksConfig.new( + track_seen: true, + track_read: true, + ), + ranking: GetStream::Generated::Models::RankingConfig.new( + type: 'expression', + score: 'is_seen ? 0 : 100', + ), + ) + + payload = JSON.parse(request.to_json) + + expect(payload['activity_marks']).to include('track_seen' => true, 'track_read' => true) + expect(payload['ranking']).to include('type' => 'expression', 'score' => 'is_seen ? 0 : 100') + end +end From 06a868e5060dc84f64d57d794292576efbd05206 Mon Sep 17 00:00:00 2001 From: Aditya Agarwal Date: Wed, 9 Sep 2026 21:50:50 +0200 Subject: [PATCH 3/4] fix(test): satisfy RuboCop empty lines in activity_marks ranking spec Co-authored-by: Cursor --- spec/activity_marks_ranking_spec.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/activity_marks_ranking_spec.rb b/spec/activity_marks_ranking_spec.rb index d9ecc23d..d4fd0a75 100644 --- a/spec/activity_marks_ranking_spec.rb +++ b/spec/activity_marks_ranking_spec.rb @@ -6,6 +6,7 @@ RSpec.describe 'activity_marks ranking is_seen' do it 'serializes CreateFeedGroupRequest with activity_marks and an is_seen ranking score' do + request = GetStream::Generated::Models::CreateFeedGroupRequest.new( id: 'timeline', activity_marks: GetStream::Generated::Models::ActivityMarksConfig.new( @@ -22,5 +23,7 @@ expect(payload['activity_marks']).to include('track_seen' => true, 'track_read' => true) expect(payload['ranking']).to include('type' => 'expression', 'score' => 'is_seen ? 0 : 100') + end + end From dc8471235bdc2e3bc104fc16f9f1bb2afc4de60b Mon Sep 17 00:00:00 2001 From: Aditya Agarwal Date: Thu, 10 Sep 2026 15:24:04 +0200 Subject: [PATCH 4/4] fix(test): expect default max_message_length 3000 Co-authored-by: Cursor --- spec/integration/chat_misc_integration_spec.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spec/integration/chat_misc_integration_spec.rb b/spec/integration/chat_misc_integration_spec.rb index 31703e13..b68cf38e 100644 --- a/spec/integration/chat_misc_integration_spec.rb +++ b/spec/integration/chat_misc_integration_spec.rb @@ -267,12 +267,12 @@ # Create channel type with a lower max_message_length so the update below # can demonstrate the value actually changes. The test app plan caps at - # 4000, so stay within that ceiling to avoid silent truncation. + # 3000, so stay within that ceiling to avoid silent truncation. create_resp = @client.make_request(:post, '/api/v2/chat/channeltypes', body: { name: type_name, automod: 'disabled', automod_behavior: 'flag', - max_message_length: 3000, + max_message_length: 2000, }) expect(create_resp.name).to eq(type_name) @created_channel_type_names << type_name @@ -284,14 +284,14 @@ get_resp = @client.make_request(:get, "/api/v2/chat/channeltypes/#{type_name}") expect(get_resp.name).to eq(type_name) - # Update channel type — raise to 4000 (plan maximum) to verify the + # Update channel type — raise to 3000 (plan maximum) to verify the # update is applied. The update response can lag the write it just made, # and a re-fetch is eventually consistent, so poll until the new value # shows up rather than asserting on either one directly. @client.make_request(:put, "/api/v2/chat/channeltypes/#{type_name}", body: { automod: 'disabled', automod_behavior: 'flag', - max_message_length: 4000, + max_message_length: 3000, typing_events: false, }) @@ -301,12 +301,12 @@ max_message_length = @client.make_request( :get, "/api/v2/chat/channeltypes/#{type_name}" ).max_message_length - break if max_message_length == 4000 + break if max_message_length == 3000 sleep(0.5) end - expect(max_message_length).to eq(4000) + expect(max_message_length).to eq(3000) # Delete a separate channel type del_name = "testdeltype#{random_string(6)}" @@ -314,7 +314,7 @@ name: del_name, automod: 'disabled', automod_behavior: 'flag', - max_message_length: 4000, + max_message_length: 3000, }) @created_channel_type_names << del_name