getstream-ruby 11.0.1 → 12.0.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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/lib/getstream_ruby/generated/chat_client.rb +143 -3
  3. data/lib/getstream_ruby/generated/common_client.rb +53 -0
  4. data/lib/getstream_ruby/generated/feed.rb +9 -0
  5. data/lib/getstream_ruby/generated/feeds_client.rb +20 -2
  6. data/lib/getstream_ruby/generated/models/accept_follow_request.rb +1 -1
  7. data/lib/getstream_ruby/generated/models/activity_processing_config.rb +36 -0
  8. data/lib/getstream_ruby/generated/models/activity_processor_config.rb +11 -1
  9. data/lib/getstream_ruby/generated/models/ai_video_config.rb +5 -0
  10. data/lib/getstream_ruby/generated/models/ai_video_config_request.rb +41 -0
  11. data/lib/getstream_ruby/generated/models/ai_video_config_response.rb +41 -0
  12. data/lib/getstream_ruby/generated/models/analyze_response.rb +1 -1
  13. data/lib/getstream_ruby/generated/models/app_response_fields.rb +15 -0
  14. data/lib/getstream_ruby/generated/models/bulk_action_appeals_request.rb +2 -2
  15. data/lib/getstream_ruby/generated/models/channel_batch_update_request.rb +10 -0
  16. data/lib/getstream_ruby/generated/models/channel_config.rb +5 -0
  17. data/lib/getstream_ruby/generated/models/channel_config_with_info.rb +5 -0
  18. data/lib/getstream_ruby/generated/models/channel_member_request.rb +6 -6
  19. data/lib/getstream_ruby/generated/models/channel_type_config.rb +5 -0
  20. data/lib/getstream_ruby/generated/models/classification.rb +5 -0
  21. data/lib/getstream_ruby/generated/models/config_response.rb +1 -1
  22. data/lib/getstream_ruby/generated/models/create_channel_type_response.rb +5 -0
  23. data/lib/getstream_ruby/generated/models/create_feed_group_request.rb +10 -0
  24. data/lib/getstream_ruby/generated/models/create_feeds_batch_request.rb +5 -0
  25. data/lib/getstream_ruby/generated/models/create_permission_request.rb +61 -0
  26. data/lib/getstream_ruby/generated/models/create_predefined_filter_request.rb +51 -0
  27. data/lib/getstream_ruby/generated/models/create_predefined_filter_response.rb +36 -0
  28. data/lib/getstream_ruby/generated/models/create_reminder_response.rb +36 -0
  29. data/lib/getstream_ruby/generated/models/feed_group.rb +5 -0
  30. data/lib/getstream_ruby/generated/models/feed_group_response.rb +10 -0
  31. data/lib/getstream_ruby/generated/models/follow_response.rb +1 -1
  32. data/lib/getstream_ruby/generated/models/get_channel_type_response.rb +5 -0
  33. data/lib/getstream_ruby/generated/models/get_feed_counts_response.rb +46 -0
  34. data/lib/getstream_ruby/generated/models/get_or_create_feed_group_request.rb +10 -0
  35. data/lib/getstream_ruby/generated/models/get_pinned_messages_response.rb +36 -0
  36. data/lib/getstream_ruby/generated/models/get_predefined_filter_response.rb +36 -0
  37. data/lib/getstream_ruby/generated/models/member_user_request.rb +76 -0
  38. data/lib/getstream_ruby/generated/models/message_response.rb +5 -0
  39. data/lib/getstream_ruby/generated/models/message_with_channel_response.rb +5 -0
  40. data/lib/getstream_ruby/generated/models/moderation_flag_response.rb +5 -0
  41. data/lib/getstream_ruby/generated/models/performance_analysis_response.rb +71 -0
  42. data/lib/getstream_ruby/generated/models/permission_request.rb +56 -0
  43. data/lib/getstream_ruby/generated/models/poll_response_data.rb +1 -1
  44. data/lib/getstream_ruby/generated/models/predefined_filter_response.rb +76 -0
  45. data/lib/getstream_ruby/generated/models/predefined_filter_stats_response.rb +41 -0
  46. data/lib/getstream_ruby/generated/models/push_notification_config.rb +1 -1
  47. data/lib/getstream_ruby/generated/models/query_members_payload.rb +5 -5
  48. data/lib/getstream_ruby/generated/models/query_predefined_filters_response.rb +46 -0
  49. data/lib/getstream_ruby/generated/models/query_team_usage_stats_request.rb +6 -1
  50. data/lib/getstream_ruby/generated/models/reminder_created_event.rb +6 -6
  51. data/lib/getstream_ruby/generated/models/reminder_deleted_event.rb +6 -6
  52. data/lib/getstream_ruby/generated/models/reminder_notification_event.rb +6 -6
  53. data/lib/getstream_ruby/generated/models/reminder_updated_event.rb +6 -6
  54. data/lib/getstream_ruby/generated/models/restore_action_request_payload.rb +1 -1
  55. data/lib/getstream_ruby/generated/models/search_result_message.rb +5 -0
  56. data/lib/getstream_ruby/generated/models/sort_param.rb +41 -0
  57. data/lib/getstream_ruby/generated/models/submit_action_request.rb +2 -2
  58. data/lib/getstream_ruby/generated/models/translate_message_response.rb +36 -0
  59. data/lib/getstream_ruby/generated/models/unban_request.rb +2 -1
  60. data/lib/getstream_ruby/generated/models/unblock_action_request_payload.rb +1 -1
  61. data/lib/getstream_ruby/generated/models/update_app_request.rb +10 -0
  62. data/lib/getstream_ruby/generated/models/update_channel_type_request.rb +5 -0
  63. data/lib/getstream_ruby/generated/models/update_channel_type_response.rb +5 -0
  64. data/lib/getstream_ruby/generated/models/update_feed_group_request.rb +11 -1
  65. data/lib/getstream_ruby/generated/models/update_follow_request.rb +1 -1
  66. data/lib/getstream_ruby/generated/models/update_predefined_filter_request.rb +46 -0
  67. data/lib/getstream_ruby/generated/models/update_predefined_filter_response.rb +36 -0
  68. data/lib/getstream_ruby/generated/models/upsert_config_request.rb +1 -1
  69. data/lib/getstream_ruby/generated/video_client.rb +3 -3
  70. data/lib/getstream_ruby/version.rb +1 -1
  71. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4d6bbf24fdc6b3ec8fe5caad8fba23c912f8aa182f824d0be7027914c1d1edc
4
- data.tar.gz: c536a6554a200b62b0d0648ef097bd40b947e06d958588e53fc23a617e3066e8
3
+ metadata.gz: 83d6f2c57a008a2e74f8151217a55384fa820c36b4eed172178a93d0ca1308e5
4
+ data.tar.gz: d33e677be509ba5f99cf63d130eec4178cd9cc81556fc4ad7ab6186cbbdaaffe
5
5
  SHA512:
6
- metadata.gz: 4b51a4eddac9bb0e90fc5871f07236077701c37b74a79f583b96a9f00dc170eb671ff25cdee632fd75ac0eb2529ac46b8bebf3a3caf59a4e4655561633527a96
7
- data.tar.gz: 2ec1e43078cef984faa2317e69ddd16eb7818c80b9cb68472aba4e42fde09802ccb29000091836d810fbff316aaac9be6154e15cbe7cb970b40f6cef6f8dbcc6
6
+ metadata.gz: 5542ddee6e3da4e191a9c5afb6e4018b97338ed9310e36acd436ac79307f7eddfd9da1783dc05f8197e03e782b289f1ac2b2c8da4c987e5313cb2eb8a28c077e
7
+ data.tar.gz: 9ac98fc6f713f3c6e3d5c97f119a481f27b0a1531c007ddcdabc79cb94a00ecf4c07c2cdd2f2d44531aceca191a73266491d07fd40b3720a6b2f6d14acc9abc8
@@ -640,6 +640,57 @@ module GetStream
640
640
  )
641
641
  end
642
642
 
643
+ # Returns pinned messages for the channel
644
+ #
645
+ # @param _type [String]
646
+ # @param _id [String]
647
+ # @param limit [Integer]
648
+ # @param offset [Integer]
649
+ # @param id_gte [String]
650
+ # @param id_gt [String]
651
+ # @param id_lte [String]
652
+ # @param id_lt [String]
653
+ # @param pinned_at_after_or_equal [DateTime]
654
+ # @param pinned_at_after [DateTime]
655
+ # @param pinned_at_before_or_equal [DateTime]
656
+ # @param pinned_at_before [DateTime]
657
+ # @param id_around [String]
658
+ # @param pinned_at_around [DateTime]
659
+ # @param user_id [String]
660
+ # @param sort [Array<SortParamRequest>]
661
+ # @param member_custom_include [Array<String>]
662
+ # @return [Models::GetPinnedMessagesResponse]
663
+ def get_pinned_messages(_type, _id, limit = nil, offset = nil, id_gte = nil, id_gt = nil, id_lte = nil, id_lt = nil, pinned_at_after_or_equal = nil, pinned_at_after = nil, pinned_at_before_or_equal = nil, pinned_at_before = nil, id_around = nil, pinned_at_around = nil, user_id = nil, sort = nil, member_custom_include = nil)
664
+ path = '/api/v2/chat/channels/{type}/{id}/pinned_messages'
665
+ # Replace path parameters
666
+ path = path.gsub('{type}', _type.to_s)
667
+ path = path.gsub('{id}', _id.to_s)
668
+ # Build query parameters
669
+ query_params = {}
670
+ query_params['limit'] = limit unless limit.nil?
671
+ query_params['offset'] = offset unless offset.nil?
672
+ query_params['id_gte'] = id_gte unless id_gte.nil?
673
+ query_params['id_gt'] = id_gt unless id_gt.nil?
674
+ query_params['id_lte'] = id_lte unless id_lte.nil?
675
+ query_params['id_lt'] = id_lt unless id_lt.nil?
676
+ query_params['pinned_at_after_or_equal'] = pinned_at_after_or_equal unless pinned_at_after_or_equal.nil?
677
+ query_params['pinned_at_after'] = pinned_at_after unless pinned_at_after.nil?
678
+ query_params['pinned_at_before_or_equal'] = pinned_at_before_or_equal unless pinned_at_before_or_equal.nil?
679
+ query_params['pinned_at_before'] = pinned_at_before unless pinned_at_before.nil?
680
+ query_params['id_around'] = id_around unless id_around.nil?
681
+ query_params['pinned_at_around'] = pinned_at_around unless pinned_at_around.nil?
682
+ query_params['user_id'] = user_id unless user_id.nil?
683
+ query_params['sort'] = sort unless sort.nil?
684
+ query_params['member_custom_include'] = member_custom_include unless member_custom_include.nil?
685
+
686
+ # Make the API request
687
+ @client.make_request(
688
+ :get,
689
+ path,
690
+ query_params: query_params
691
+ )
692
+ end
693
+
643
694
  # This Method creates a channel or returns an existing one with matching attributesSends events:- channel.created- member.added- member.removed- member.updated- user.watching.start
644
695
  #
645
696
  # @param _type [String]
@@ -1219,7 +1270,7 @@ module GetStream
1219
1270
  #
1220
1271
  # @param _id [String]
1221
1272
  # @param translate_message_request [TranslateMessageRequest]
1222
- # @return [Models::MessageActionResponse]
1273
+ # @return [Models::TranslateMessageResponse]
1223
1274
  def translate_message(_id, translate_message_request)
1224
1275
  path = '/api/v2/chat/messages/{id}/translate'
1225
1276
  # Replace path parameters
@@ -1347,7 +1398,7 @@ module GetStream
1347
1398
  #
1348
1399
  # @param message_id [String]
1349
1400
  # @param create_reminder_request [CreateReminderRequest]
1350
- # @return [Models::ReminderResponseData]
1401
+ # @return [Models::CreateReminderResponse]
1351
1402
  def create_reminder(message_id, create_reminder_request)
1352
1403
  path = '/api/v2/chat/messages/{message_id}/reminders'
1353
1404
  # Replace path parameters
@@ -1450,6 +1501,95 @@ module GetStream
1450
1501
  )
1451
1502
  end
1452
1503
 
1504
+ # Get all predefined filters with optional sorting by created_at, updated_at, name, or operation
1505
+ #
1506
+ # @param include_stats [Boolean]
1507
+ # @param sort [Array<SortParamRequest>]
1508
+ # @return [Models::QueryPredefinedFiltersResponse]
1509
+ def get_predefined_filters(include_stats = nil, sort = nil)
1510
+ path = '/api/v2/chat/predefined_filters'
1511
+ # Build query parameters
1512
+ query_params = {}
1513
+ query_params['include_stats'] = include_stats unless include_stats.nil?
1514
+ query_params['sort'] = sort unless sort.nil?
1515
+
1516
+ # Make the API request
1517
+ @client.make_request(
1518
+ :get,
1519
+ path,
1520
+ query_params: query_params
1521
+ )
1522
+ end
1523
+
1524
+ # Create a predefined filter that can be used in Query endpoints
1525
+ #
1526
+ # @param create_predefined_filter_request [CreatePredefinedFilterRequest]
1527
+ # @return [Models::CreatePredefinedFilterResponse]
1528
+ def create_predefined_filter(create_predefined_filter_request)
1529
+ path = '/api/v2/chat/predefined_filters'
1530
+ # Build request body
1531
+ body = create_predefined_filter_request
1532
+
1533
+ # Make the API request
1534
+ @client.make_request(
1535
+ :post,
1536
+ path,
1537
+ body: body
1538
+ )
1539
+ end
1540
+
1541
+ # Delete a predefined filter by name
1542
+ #
1543
+ # @param name [String]
1544
+ # @return [Models::Response]
1545
+ def delete_predefined_filter(name)
1546
+ path = '/api/v2/chat/predefined_filters/{name}'
1547
+ # Replace path parameters
1548
+ path = path.gsub('{name}', name.to_s)
1549
+
1550
+ # Make the API request
1551
+ @client.make_request(
1552
+ :delete,
1553
+ path
1554
+ )
1555
+ end
1556
+
1557
+ # Get a predefined filter by name
1558
+ #
1559
+ # @param name [String]
1560
+ # @return [Models::GetPredefinedFilterResponse]
1561
+ def get_predefined_filter(name)
1562
+ path = '/api/v2/chat/predefined_filters/{name}'
1563
+ # Replace path parameters
1564
+ path = path.gsub('{name}', name.to_s)
1565
+
1566
+ # Make the API request
1567
+ @client.make_request(
1568
+ :get,
1569
+ path
1570
+ )
1571
+ end
1572
+
1573
+ # Update a predefined filter by name
1574
+ #
1575
+ # @param name [String]
1576
+ # @param update_predefined_filter_request [UpdatePredefinedFilterRequest]
1577
+ # @return [Models::UpdatePredefinedFilterResponse]
1578
+ def update_predefined_filter(name, update_predefined_filter_request)
1579
+ path = '/api/v2/chat/predefined_filters/{name}'
1580
+ # Replace path parameters
1581
+ path = path.gsub('{name}', name.to_s)
1582
+ # Build request body
1583
+ body = update_predefined_filter_request
1584
+
1585
+ # Make the API request
1586
+ @client.make_request(
1587
+ :put,
1588
+ path,
1589
+ body: body
1590
+ )
1591
+ end
1592
+
1453
1593
  # Find and filter channel scoped or global user bans
1454
1594
  #
1455
1595
  # @param payload [QueryBannedUsersPayload]
@@ -1749,7 +1889,7 @@ module GetStream
1749
1889
  )
1750
1890
  end
1751
1891
 
1752
- # Retrieve team-level usage statistics from the warehouse database.Returns all 16 metrics grouped by team with cursor-based pagination.**Date Range Options (mutually exclusive):**- Use 'month' parameter (YYYY-MM format) for monthly aggregated values- Use 'start_date'/'end_date' parameters (YYYY-MM-DD format) for daily breakdown- If neither provided, defaults to current month (monthly mode)This endpoint is server-side only.
1892
+ # Retrieve team-level usage statistics from the warehouse database.Returns all 16 metrics grouped by team with cursor-based pagination.**Date Range Options (mutually exclusive):**- Use 'month' parameter (YYYY-MM format) for monthly aggregated values- Use 'start_date'/'end_date' parameters (YYYY-MM-DD format) for daily breakdown- If neither provided, defaults to current month (monthly mode)**Team Filter:**- Use 'team' to return a single team's stats (empty string selects users not assigned to any team)- Mutually exclusive with the 'next' pagination cursorThis endpoint is server-side only.
1753
1893
  #
1754
1894
  # @param query_team_usage_stats_request [QueryTeamUsageStatsRequest]
1755
1895
  # @return [Models::QueryTeamUsageStatsResponse]
@@ -620,6 +620,39 @@ module GetStream
620
620
  )
621
621
  end
622
622
 
623
+ # Creates permission
624
+ #
625
+ # @param create_permission_request [CreatePermissionRequest]
626
+ # @return [Models::Response]
627
+ def create_permission(create_permission_request)
628
+ path = '/api/v2/permissions'
629
+ # Build request body
630
+ body = create_permission_request
631
+
632
+ # Make the API request
633
+ @client.make_request(
634
+ :post,
635
+ path,
636
+ body: body
637
+ )
638
+ end
639
+
640
+ # Deletes custom permission
641
+ #
642
+ # @param _id [String]
643
+ # @return [Models::Response]
644
+ def delete_permission(_id)
645
+ path = '/api/v2/permissions/{id}'
646
+ # Replace path parameters
647
+ path = path.gsub('{id}', _id.to_s)
648
+
649
+ # Make the API request
650
+ @client.make_request(
651
+ :delete,
652
+ path
653
+ )
654
+ end
655
+
623
656
  # Gets custom permission
624
657
  #
625
658
  # @param _id [String]
@@ -636,6 +669,26 @@ module GetStream
636
669
  )
637
670
  end
638
671
 
672
+ # Updates custom permission
673
+ #
674
+ # @param _id [String]
675
+ # @param permission_request [PermissionRequest]
676
+ # @return [Models::Response]
677
+ def update_permission(_id, permission_request)
678
+ path = '/api/v2/permissions/{id}'
679
+ # Replace path parameters
680
+ path = path.gsub('{id}', _id.to_s)
681
+ # Build request body
682
+ body = permission_request
683
+
684
+ # Make the API request
685
+ @client.make_request(
686
+ :put,
687
+ path,
688
+ body: body
689
+ )
690
+ end
691
+
639
692
  # Creates a new poll
640
693
  #
641
694
  # @param create_poll_request [CreatePollRequest]
@@ -102,6 +102,15 @@ module GetStream
102
102
  @client.feeds.change_feed_visibility(@feed_group_id, @feed_id, change_feed_visibility_request)
103
103
  end
104
104
 
105
+ # Returns the number of activities in a feed, the total number of comments on those activities (including nested replies), and the sum of both. The comment total is cached for a few seconds on large feeds.
106
+ #
107
+ # @return [Models::GetFeedCountsResponse]
108
+ def get_feed_counts()
109
+
110
+ # Delegate to the FeedsClient
111
+ @client.feeds.get_feed_counts(@feed_group_id, @feed_id)
112
+ end
113
+
105
114
  # Add, remove, or set members for a feed
106
115
  #
107
116
  # @param update_feed_members_request [UpdateFeedMembersRequest]
@@ -1294,6 +1294,24 @@ module GetStream
1294
1294
  )
1295
1295
  end
1296
1296
 
1297
+ # Returns the number of activities in a feed, the total number of comments on those activities (including nested replies), and the sum of both. The comment total is cached for a few seconds on large feeds.
1298
+ #
1299
+ # @param feed_group_id [String]
1300
+ # @param feed_id [String]
1301
+ # @return [Models::GetFeedCountsResponse]
1302
+ def get_feed_counts(feed_group_id, feed_id)
1303
+ path = '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/counts'
1304
+ # Replace path parameters
1305
+ path = path.gsub('{feed_group_id}', feed_group_id.to_s)
1306
+ path = path.gsub('{feed_id}', feed_id.to_s)
1307
+
1308
+ # Make the API request
1309
+ @client.make_request(
1310
+ :get,
1311
+ path
1312
+ )
1313
+ end
1314
+
1297
1315
  # Add, remove, or set members for a feed
1298
1316
  #
1299
1317
  # @param feed_group_id [String]
@@ -1532,7 +1550,7 @@ module GetStream
1532
1550
  )
1533
1551
  end
1534
1552
 
1535
- # List all feed views for a feed group
1553
+ # List persisted feed views for the application.
1536
1554
  #
1537
1555
  # @return [Models::ListFeedViewsResponse]
1538
1556
  def list_feed_views()
@@ -1813,7 +1831,7 @@ module GetStream
1813
1831
  )
1814
1832
  end
1815
1833
 
1816
- # Accepts a pending follow request
1834
+ # Accepts a pending follow request. Follower role can only be set via server-side requests.
1817
1835
  #
1818
1836
  # @param accept_follow_request [AcceptFollowRequest]
1819
1837
  # @return [Models::AcceptFollowResponse]
@@ -16,7 +16,7 @@ module GetStream
16
16
  # @return [String] Fully qualified ID of the target feed
17
17
  attr_accessor :target
18
18
  # @!attribute follower_role
19
- # @return [String] Optional role for the follower in the follow relationship
19
+ # @return [String] Optional role for the follower in the follow relationship. Server-side only. Either a built-in ('feed_follower' (the default) or 'feed_member_viewer') or any role your app has defined; grants are not inspected.
20
20
  attr_accessor :follower_role
21
21
 
22
22
  # Initialize with attributes
@@ -0,0 +1,36 @@
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 ActivityProcessingConfig < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute allowed_tags
13
+ # @return [Array<String>] 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.
14
+ attr_accessor :allowed_tags
15
+ # @!attribute blocked_tags
16
+ # @return [Array<String>] Interest tags the LLM activity processors are never allowed to write. Mutually exclusive with allowed_tags.
17
+ attr_accessor :blocked_tags
18
+
19
+ # Initialize with attributes
20
+ def initialize(attributes = {})
21
+ super(attributes)
22
+ @allowed_tags = attributes[:allowed_tags] || attributes['allowed_tags'] || nil
23
+ @blocked_tags = attributes[:blocked_tags] || attributes['blocked_tags'] || nil
24
+ end
25
+
26
+ # Override field mappings for JSON serialization
27
+ def self.json_field_mappings
28
+ {
29
+ allowed_tags: 'allowed_tags',
30
+ blocked_tags: 'blocked_tags'
31
+ }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -12,17 +12,27 @@ module GetStream
12
12
  # @!attribute type
13
13
  # @return [String] Type of activity processor (required)
14
14
  attr_accessor :type
15
+ # @!attribute min_text_length
16
+ # @return [Integer] Minimum number of characters the activity text must have before this processor runs. 0 (the default) disables the check. Only applies to text_interest_tags.
17
+ attr_accessor :min_text_length
18
+ # @!attribute min_word_count
19
+ # @return [Integer] Minimum number of words the activity text must have before this processor runs. 0 (the default) disables the check. Only applies to text_interest_tags. Words are whitespace-separated, so scripts written without word spacing (Chinese, Japanese, Thai) always count as 1 word regardless of length — use min_text_length for those.
20
+ attr_accessor :min_word_count
15
21
 
16
22
  # Initialize with attributes
17
23
  def initialize(attributes = {})
18
24
  super(attributes)
19
25
  @type = attributes[:type] || attributes['type']
26
+ @min_text_length = attributes[:min_text_length] || attributes['min_text_length'] || nil
27
+ @min_word_count = attributes[:min_word_count] || attributes['min_word_count'] || nil
20
28
  end
21
29
 
22
30
  # Override field mappings for JSON serialization
23
31
  def self.json_field_mappings
24
32
  {
25
- type: 'type'
33
+ type: 'type',
34
+ min_text_length: 'min_text_length',
35
+ min_word_count: 'min_word_count'
26
36
  }
27
37
  end
28
38
  end
@@ -15,6 +15,9 @@ module GetStream
15
15
  # @!attribute enabled
16
16
  # @return [Boolean]
17
17
  attr_accessor :enabled
18
+ # @!attribute provider
19
+ # @return [String]
20
+ attr_accessor :provider
18
21
  # @!attribute rules
19
22
  # @return [Array<AWSRekognitionRule>]
20
23
  attr_accessor :rules
@@ -24,6 +27,7 @@ module GetStream
24
27
  super(attributes)
25
28
  @async = attributes[:async] || attributes['async'] || nil
26
29
  @enabled = attributes[:enabled] || attributes['enabled'] || nil
30
+ @provider = attributes[:provider] || attributes['provider'] || nil
27
31
  @rules = attributes[:rules] || attributes['rules'] || nil
28
32
  end
29
33
 
@@ -32,6 +36,7 @@ module GetStream
32
36
  {
33
37
  async: 'async',
34
38
  enabled: 'enabled',
39
+ provider: 'provider',
35
40
  rules: 'rules'
36
41
  }
37
42
  end
@@ -0,0 +1,41 @@
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 AIVideoConfigRequest < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute async
13
+ # @return [Boolean]
14
+ attr_accessor :async
15
+ # @!attribute enabled
16
+ # @return [Boolean]
17
+ attr_accessor :enabled
18
+ # @!attribute rules
19
+ # @return [Array<AWSRekognitionRule>]
20
+ attr_accessor :rules
21
+
22
+ # Initialize with attributes
23
+ def initialize(attributes = {})
24
+ super(attributes)
25
+ @async = attributes[:async] || attributes['async'] || nil
26
+ @enabled = attributes[:enabled] || attributes['enabled'] || nil
27
+ @rules = attributes[:rules] || attributes['rules'] || nil
28
+ end
29
+
30
+ # Override field mappings for JSON serialization
31
+ def self.json_field_mappings
32
+ {
33
+ async: 'async',
34
+ enabled: 'enabled',
35
+ rules: 'rules'
36
+ }
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
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 AIVideoConfigResponse < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute enabled
13
+ # @return [Boolean]
14
+ attr_accessor :enabled
15
+ # @!attribute rules
16
+ # @return [Array<AWSRekognitionRule>]
17
+ attr_accessor :rules
18
+ # @!attribute async
19
+ # @return [Boolean]
20
+ attr_accessor :async
21
+
22
+ # Initialize with attributes
23
+ def initialize(attributes = {})
24
+ super(attributes)
25
+ @enabled = attributes[:enabled] || attributes['enabled']
26
+ @rules = attributes[:rules] || attributes['rules']
27
+ @async = attributes[:async] || attributes['async'] || nil
28
+ end
29
+
30
+ # Override field mappings for JSON serialization
31
+ def self.json_field_mappings
32
+ {
33
+ enabled: 'enabled',
34
+ rules: 'rules',
35
+ async: 'async'
36
+ }
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -13,7 +13,7 @@ module GetStream
13
13
  # @return [String]
14
14
  attr_accessor :duration
15
15
  # @!attribute status
16
- # @return [String] Always `complete` /analyze is sync-only and the full verdict is in the response.
16
+ # @return [String] `complete` (all fields screened), `partial` (mix of verdicts and per-field errors), or `pending` (async).
17
17
  attr_accessor :status
18
18
  # @!attribute images
19
19
  # @return [Hash<String, AnalyzeImageField>] Per-image moderation verdicts keyed by caller label.
@@ -51,15 +51,24 @@ module GetStream
51
51
  # @!attribute max_aggregated_activities_length
52
52
  # @return [Integer]
53
53
  attr_accessor :max_aggregated_activities_length
54
+ # @!attribute member_custom_on_mentioned_users_enabled
55
+ # @return [Boolean]
56
+ attr_accessor :member_custom_on_mentioned_users_enabled
54
57
  # @!attribute member_custom_on_messages_enabled
55
58
  # @return [Boolean]
56
59
  attr_accessor :member_custom_on_messages_enabled
60
+ # @!attribute member_custom_on_typing_events_enabled
61
+ # @return [Boolean]
62
+ attr_accessor :member_custom_on_typing_events_enabled
57
63
  # @!attribute moderation_audio_call_moderation_enabled
58
64
  # @return [Boolean]
59
65
  attr_accessor :moderation_audio_call_moderation_enabled
60
66
  # @!attribute moderation_enabled
61
67
  # @return [Boolean]
62
68
  attr_accessor :moderation_enabled
69
+ # @!attribute moderation_keyframe_video_enabled
70
+ # @return [Boolean]
71
+ attr_accessor :moderation_keyframe_video_enabled
63
72
  # @!attribute moderation_llm_configurability_enabled
64
73
  # @return [Boolean]
65
74
  attr_accessor :moderation_llm_configurability_enabled
@@ -210,9 +219,12 @@ module GetStream
210
219
  @id = attributes[:id] || attributes['id']
211
220
  @image_moderation_enabled = attributes[:image_moderation_enabled] || attributes['image_moderation_enabled']
212
221
  @max_aggregated_activities_length = attributes[:max_aggregated_activities_length] || attributes['max_aggregated_activities_length']
222
+ @member_custom_on_mentioned_users_enabled = attributes[:member_custom_on_mentioned_users_enabled] || attributes['member_custom_on_mentioned_users_enabled']
213
223
  @member_custom_on_messages_enabled = attributes[:member_custom_on_messages_enabled] || attributes['member_custom_on_messages_enabled']
224
+ @member_custom_on_typing_events_enabled = attributes[:member_custom_on_typing_events_enabled] || attributes['member_custom_on_typing_events_enabled']
214
225
  @moderation_audio_call_moderation_enabled = attributes[:moderation_audio_call_moderation_enabled] || attributes['moderation_audio_call_moderation_enabled']
215
226
  @moderation_enabled = attributes[:moderation_enabled] || attributes['moderation_enabled']
227
+ @moderation_keyframe_video_enabled = attributes[:moderation_keyframe_video_enabled] || attributes['moderation_keyframe_video_enabled']
216
228
  @moderation_llm_configurability_enabled = attributes[:moderation_llm_configurability_enabled] || attributes['moderation_llm_configurability_enabled']
217
229
  @moderation_multitenant_blocklist_enabled = attributes[:moderation_multitenant_blocklist_enabled] || attributes['moderation_multitenant_blocklist_enabled']
218
230
  @moderation_video_call_moderation_enabled = attributes[:moderation_video_call_moderation_enabled] || attributes['moderation_video_call_moderation_enabled']
@@ -276,9 +288,12 @@ module GetStream
276
288
  id: 'id',
277
289
  image_moderation_enabled: 'image_moderation_enabled',
278
290
  max_aggregated_activities_length: 'max_aggregated_activities_length',
291
+ member_custom_on_mentioned_users_enabled: 'member_custom_on_mentioned_users_enabled',
279
292
  member_custom_on_messages_enabled: 'member_custom_on_messages_enabled',
293
+ member_custom_on_typing_events_enabled: 'member_custom_on_typing_events_enabled',
280
294
  moderation_audio_call_moderation_enabled: 'moderation_audio_call_moderation_enabled',
281
295
  moderation_enabled: 'moderation_enabled',
296
+ moderation_keyframe_video_enabled: 'moderation_keyframe_video_enabled',
282
297
  moderation_llm_configurability_enabled: 'moderation_llm_configurability_enabled',
283
298
  moderation_multitenant_blocklist_enabled: 'moderation_multitenant_blocklist_enabled',
284
299
  moderation_video_call_moderation_enabled: 'moderation_video_call_moderation_enabled',
@@ -25,13 +25,13 @@ module GetStream
25
25
  # @return [RejectAppealRequestPayload] Configuration for rejecting an appeal
26
26
  attr_accessor :reject_appeal
27
27
  # @!attribute restore
28
- # @return [RestoreActionRequestPayload] Configuration for restore action
28
+ # @return [RestoreActionRequestPayload] Configuration for restore action. State-aware: reverses whichever of a delete, a block, or a shadow block currently applies to the content (including both a delete and a block/shadow block at once).
29
29
  attr_accessor :restore
30
30
  # @!attribute unban
31
31
  # @return [UnbanActionRequestPayload] Configuration for unban moderation action
32
32
  attr_accessor :unban
33
33
  # @!attribute unblock
34
- # @return [UnblockActionRequestPayload] Configuration for unblock action
34
+ # @return [UnblockActionRequestPayload] Deprecated: use restore instead — it now also reverses a block or shadow block. Configuration for unblock action.
35
35
  attr_accessor :unblock
36
36
  # @!attribute user
37
37
  # @return [UserRequest] User request object
@@ -15,9 +15,15 @@ module GetStream
15
15
  # @!attribute filter
16
16
  # @return [Object] Filter to apply to the query
17
17
  attr_accessor :filter
18
+ # @!attribute custom_unset
19
+ # @return [Array<String>] `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`
20
+ attr_accessor :custom_unset
18
21
  # @!attribute members
19
22
  # @return [Array<ChannelBatchMemberRequest>]
20
23
  attr_accessor :members
24
+ # @!attribute custom_set
25
+ # @return [Object] `updateData` only. Merges these keys into each channel's existing custom object, leaving every other custom key untouched. Keys are dot-paths, so `a.b` sets key `b` inside object `a` (the parent object must already exist). Cannot be combined with `data.custom`
26
+ attr_accessor :custom_set
21
27
  # @!attribute data
22
28
  # @return [ChannelDataUpdate]
23
29
  attr_accessor :data
@@ -27,7 +33,9 @@ module GetStream
27
33
  super(attributes)
28
34
  @operation = attributes[:operation] || attributes['operation']
29
35
  @filter = attributes[:filter] || attributes['filter']
36
+ @custom_unset = attributes[:custom_unset] || attributes['custom_unset'] || nil
30
37
  @members = attributes[:members] || attributes['members'] || nil
38
+ @custom_set = attributes[:custom_set] || attributes['custom_set'] || nil
31
39
  @data = attributes[:data] || attributes['data'] || nil
32
40
  end
33
41
 
@@ -36,7 +44,9 @@ module GetStream
36
44
  {
37
45
  operation: 'operation',
38
46
  filter: 'filter',
47
+ custom_unset: 'custom_unset',
39
48
  members: 'members',
49
+ custom_set: 'custom_set',
40
50
  data: 'data'
41
51
  }
42
52
  end
@@ -36,6 +36,9 @@ module GetStream
36
36
  # @!attribute max_message_length
37
37
  # @return [Integer]
38
38
  attr_accessor :max_message_length
39
+ # @!attribute message_retention
40
+ # @return [String]
41
+ attr_accessor :message_retention
39
42
  # @!attribute mutes
40
43
  # @return [Boolean]
41
44
  attr_accessor :mutes
@@ -130,6 +133,7 @@ module GetStream
130
133
  @delivery_events = attributes[:delivery_events] || attributes['delivery_events']
131
134
  @mark_messages_pending = attributes[:mark_messages_pending] || attributes['mark_messages_pending']
132
135
  @max_message_length = attributes[:max_message_length] || attributes['max_message_length']
136
+ @message_retention = attributes[:message_retention] || attributes['message_retention']
133
137
  @mutes = attributes[:mutes] || attributes['mutes']
134
138
  @name = attributes[:name] || attributes['name']
135
139
  @polls = attributes[:polls] || attributes['polls']
@@ -171,6 +175,7 @@ module GetStream
171
175
  delivery_events: 'delivery_events',
172
176
  mark_messages_pending: 'mark_messages_pending',
173
177
  max_message_length: 'max_message_length',
178
+ message_retention: 'message_retention',
174
179
  mutes: 'mutes',
175
180
  name: 'name',
176
181
  polls: 'polls',