getstream-ruby 7.1.1 → 8.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/lib/getstream_ruby/generated/chat_client.rb +57 -0
  3. data/lib/getstream_ruby/generated/common_client.rb +16 -0
  4. data/lib/getstream_ruby/generated/feeds_client.rb +55 -0
  5. data/lib/getstream_ruby/generated/models/add_segment_targets_request.rb +31 -0
  6. data/lib/getstream_ruby/generated/models/analyze_image_field.rb +56 -0
  7. data/lib/getstream_ruby/generated/models/analyze_request.rb +81 -0
  8. data/lib/getstream_ruby/generated/models/analyze_response.rb +46 -0
  9. data/lib/getstream_ruby/generated/models/analyze_text_field.rb +56 -0
  10. data/lib/getstream_ruby/generated/models/app_response_fields.rb +15 -0
  11. data/lib/getstream_ruby/generated/models/appeal_item_response.rb +60 -0
  12. data/lib/getstream_ruby/generated/models/appeal_request.rb +5 -0
  13. data/lib/getstream_ruby/generated/models/block_list_response.rb +10 -0
  14. data/lib/getstream_ruby/generated/models/bulk_action_appeals_request.rb +71 -0
  15. data/lib/getstream_ruby/generated/models/bulk_action_appeals_response.rb +41 -0
  16. data/lib/getstream_ruby/generated/models/bulk_appeal_error.rb +36 -0
  17. data/lib/getstream_ruby/generated/models/bulk_appeal_result.rb +36 -0
  18. data/lib/getstream_ruby/generated/models/call_stats_participant_counts.rb +10 -0
  19. data/lib/getstream_ruby/generated/models/cancel_import_v2_task_request.rb +14 -0
  20. data/lib/getstream_ruby/generated/models/cancel_import_v2_task_response.rb +31 -0
  21. data/lib/getstream_ruby/generated/models/channel_config_overrides.rb +106 -0
  22. data/lib/getstream_ruby/generated/models/channel_data_update.rb +1 -1
  23. data/lib/getstream_ruby/generated/models/channel_input.rb +1 -1
  24. data/lib/getstream_ruby/generated/models/chat_message_response.rb +5 -0
  25. data/lib/getstream_ruby/generated/models/classification.rb +46 -0
  26. data/lib/getstream_ruby/generated/models/client_event.rb +156 -0
  27. data/lib/getstream_ruby/generated/models/closed_caption_rule_parameters.rb +5 -0
  28. data/lib/getstream_ruby/generated/models/config_response.rb +5 -0
  29. data/lib/getstream_ruby/generated/models/content_custom_property_count_parameters.rb +46 -0
  30. data/lib/getstream_ruby/generated/models/content_custom_property_parameters.rb +36 -0
  31. data/lib/getstream_ruby/generated/models/create_block_list_request.rb +10 -0
  32. data/lib/getstream_ruby/generated/models/create_device_request.rb +5 -0
  33. data/lib/getstream_ruby/generated/models/create_segment_request.rb +61 -0
  34. data/lib/getstream_ruby/generated/models/create_segment_response.rb +36 -0
  35. data/lib/getstream_ruby/generated/models/delivery_receipts_response.rb +1 -1
  36. data/lib/getstream_ruby/generated/models/device_response.rb +5 -0
  37. data/lib/getstream_ruby/generated/models/filter_config_response.rb +9 -4
  38. data/lib/getstream_ruby/generated/models/flag_details.rb +36 -0
  39. data/lib/getstream_ruby/generated/models/flag_item_response.rb +36 -0
  40. data/lib/getstream_ruby/generated/models/flag_response.rb +69 -9
  41. data/lib/getstream_ruby/generated/models/flood_config.rb +36 -0
  42. data/lib/getstream_ruby/generated/models/flood_identical_config.rb +46 -0
  43. data/lib/getstream_ruby/generated/models/flood_similar_config.rb +51 -0
  44. data/lib/getstream_ruby/generated/models/follow_request.rb +1 -1
  45. data/lib/getstream_ruby/generated/models/get_or_create_feed_request.rb +5 -0
  46. data/lib/getstream_ruby/generated/models/get_or_create_follow_response.rb +46 -0
  47. data/lib/getstream_ruby/generated/models/get_or_create_unfollow_request.rb +51 -0
  48. data/lib/getstream_ruby/generated/models/get_or_create_unfollow_response.rb +41 -0
  49. data/lib/getstream_ruby/generated/models/get_setup_session_response.rb +36 -0
  50. data/lib/getstream_ruby/generated/models/get_user_interests_response.rb +36 -0
  51. data/lib/getstream_ruby/generated/models/grouped_channels_bucket.rb +10 -0
  52. data/lib/getstream_ruby/generated/models/grouped_channels_group_request.rb +41 -0
  53. data/lib/getstream_ruby/generated/models/grouped_query_channels_request.rb +6 -1
  54. data/lib/getstream_ruby/generated/models/import_v2_task_settings.rb +5 -0
  55. data/lib/getstream_ruby/generated/models/interest_tag_response.rb +36 -0
  56. data/lib/getstream_ruby/generated/models/keyframe_ocr_rule_parameters.rb +41 -0
  57. data/lib/getstream_ruby/generated/models/keyframe_rule_parameters.rb +5 -0
  58. data/lib/getstream_ruby/generated/models/label_result_response.rb +5 -0
  59. data/lib/getstream_ruby/generated/models/labels_request.rb +1 -1
  60. data/lib/getstream_ruby/generated/models/labels_response.rb +5 -0
  61. data/lib/getstream_ruby/generated/models/llm_rule.rb +5 -5
  62. data/lib/getstream_ruby/generated/models/matched_content.rb +61 -0
  63. data/lib/getstream_ruby/generated/models/message_response.rb +5 -0
  64. data/lib/getstream_ruby/generated/models/message_with_channel_response.rb +5 -0
  65. data/lib/getstream_ruby/generated/models/moderation_ban_response.rb +31 -0
  66. data/lib/getstream_ruby/generated/models/moderation_config.rb +5 -0
  67. data/lib/getstream_ruby/generated/models/moderation_dashboard_preferences.rb +15 -0
  68. data/lib/getstream_ruby/generated/models/moderation_image_analysis_complete_event.rb +81 -0
  69. data/lib/getstream_ruby/generated/models/moderation_rules_triggered_event.rb +6 -1
  70. data/lib/getstream_ruby/generated/models/moderation_text_analysis_complete_event.rb +76 -0
  71. data/lib/getstream_ruby/generated/models/query_moderation_rules_response.rb +10 -0
  72. data/lib/getstream_ruby/generated/models/query_review_queue_request.rb +1 -1
  73. data/lib/getstream_ruby/generated/models/read_receipts_response.rb +1 -1
  74. data/lib/getstream_ruby/generated/models/report_client_event_request.rb +31 -0
  75. data/lib/getstream_ruby/generated/models/report_client_event_response.rb +31 -0
  76. data/lib/getstream_ruby/generated/models/rule_builder_action.rb +5 -0
  77. data/lib/getstream_ruby/generated/models/rule_builder_condition.rb +15 -0
  78. data/lib/getstream_ruby/generated/models/search_result_message.rb +5 -0
  79. data/lib/getstream_ruby/generated/models/setup_session.rb +56 -0
  80. data/lib/getstream_ruby/generated/models/submit_action_response.rb +5 -0
  81. data/lib/getstream_ruby/generated/models/target_resolution.rb +6 -6
  82. data/lib/getstream_ruby/generated/models/text_content_parameters.rb +10 -0
  83. data/lib/getstream_ruby/generated/models/translation_settings.rb +2 -2
  84. data/lib/getstream_ruby/generated/models/typing_indicators_response.rb +1 -1
  85. data/lib/getstream_ruby/generated/models/update_app_request.rb +15 -0
  86. data/lib/getstream_ruby/generated/models/update_block_list_request.rb +10 -0
  87. data/lib/getstream_ruby/generated/models/update_follow_request.rb +1 -1
  88. data/lib/getstream_ruby/generated/models/update_segment_request.rb +41 -0
  89. data/lib/getstream_ruby/generated/models/update_segment_response.rb +36 -0
  90. data/lib/getstream_ruby/generated/models/upsert_config_request.rb +5 -0
  91. data/lib/getstream_ruby/generated/models/upsert_setup_session_request.rb +41 -0
  92. data/lib/getstream_ruby/generated/models/upsert_setup_session_response.rb +36 -0
  93. data/lib/getstream_ruby/generated/models/user_banned_event.rb +5 -0
  94. data/lib/getstream_ruby/generated/moderation_client.rb +66 -2
  95. data/lib/getstream_ruby/generated/video_client.rb +17 -0
  96. data/lib/getstream_ruby/generated/webhook.rb +8 -0
  97. data/lib/getstream_ruby/version.rb +1 -1
  98. metadata +44 -2
@@ -117,6 +117,9 @@ module GetStream
117
117
  # @!attribute mentioned_group_ids
118
118
  # @return [Array<String>] List of user group IDs mentioned in the message. Group members who are also channel members will receive push notifications based on their push preferences. Max 10 groups
119
119
  attr_accessor :mentioned_group_ids
120
+ # @!attribute mentioned_groups
121
+ # @return [Array<UserGroupResponse>] List of mentioned user group objects.
122
+ attr_accessor :mentioned_groups
120
123
  # @!attribute mentioned_roles
121
124
  # @return [Array<String>] List of roles mentioned in the message (e.g. admin, channel_moderator, custom roles). Members with matching roles will receive push notifications based on their push preferences. Max 10 roles
122
125
  attr_accessor :mentioned_roles
@@ -196,6 +199,7 @@ module GetStream
196
199
  @quoted_message_id = attributes[:quoted_message_id] || attributes['quoted_message_id'] || nil
197
200
  @show_in_channel = attributes[:show_in_channel] || attributes['show_in_channel'] || nil
198
201
  @mentioned_group_ids = attributes[:mentioned_group_ids] || attributes['mentioned_group_ids'] || nil
202
+ @mentioned_groups = attributes[:mentioned_groups] || attributes['mentioned_groups'] || nil
199
203
  @mentioned_roles = attributes[:mentioned_roles] || attributes['mentioned_roles'] || nil
200
204
  @thread_participants = attributes[:thread_participants] || attributes['thread_participants'] || nil
201
205
  @draft = attributes[:draft] || attributes['draft'] || nil
@@ -250,6 +254,7 @@ module GetStream
250
254
  quoted_message_id: 'quoted_message_id',
251
255
  show_in_channel: 'show_in_channel',
252
256
  mentioned_group_ids: 'mentioned_group_ids',
257
+ mentioned_groups: 'mentioned_groups',
253
258
  mentioned_roles: 'mentioned_roles',
254
259
  thread_participants: 'thread_participants',
255
260
  draft: 'draft',
@@ -0,0 +1,31 @@
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 ModerationBanResponse < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute duration
13
+ # @return [String]
14
+ attr_accessor :duration
15
+
16
+ # Initialize with attributes
17
+ def initialize(attributes = {})
18
+ super(attributes)
19
+ @duration = attributes[:duration] || attributes['duration']
20
+ end
21
+
22
+ # Override field mappings for JSON serialization
23
+ def self.json_field_mappings
24
+ {
25
+ duration: 'duration'
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -51,6 +51,9 @@ module GetStream
51
51
  # @!attribute block_list_config
52
52
  # @return [BlockListConfig]
53
53
  attr_accessor :block_list_config
54
+ # @!attribute flood_config
55
+ # @return [FloodConfig]
56
+ attr_accessor :flood_config
54
57
  # @!attribute google_vision_config
55
58
  # @return [GoogleVisionConfig]
56
59
  attr_accessor :google_vision_config
@@ -81,6 +84,7 @@ module GetStream
81
84
  @automod_semantic_filters_config = attributes[:automod_semantic_filters_config] || attributes['automod_semantic_filters_config'] || nil
82
85
  @automod_toxicity_config = attributes[:automod_toxicity_config] || attributes['automod_toxicity_config'] || nil
83
86
  @block_list_config = attributes[:block_list_config] || attributes['block_list_config'] || nil
87
+ @flood_config = attributes[:flood_config] || attributes['flood_config'] || nil
84
88
  @google_vision_config = attributes[:google_vision_config] || attributes['google_vision_config'] || nil
85
89
  @llm_config = attributes[:llm_config] || attributes['llm_config'] || nil
86
90
  @velocity_filter_config = attributes[:velocity_filter_config] || attributes['velocity_filter_config'] || nil
@@ -104,6 +108,7 @@ module GetStream
104
108
  automod_semantic_filters_config: 'automod_semantic_filters_config',
105
109
  automod_toxicity_config: 'automod_toxicity_config',
106
110
  block_list_config: 'block_list_config',
111
+ flood_config: 'flood_config',
107
112
  google_vision_config: 'google_vision_config',
108
113
  llm_config: 'llm_config',
109
114
  velocity_filter_config: 'velocity_filter_config',
@@ -9,6 +9,9 @@ module GetStream
9
9
  class ModerationDashboardPreferences < GetStream::BaseModel
10
10
 
11
11
  # Model attributes
12
+ # @!attribute analyze_max_image_size_bytes
13
+ # @return [Integer]
14
+ attr_accessor :analyze_max_image_size_bytes
12
15
  # @!attribute async_review_queue_upsert
13
16
  # @return [Boolean]
14
17
  attr_accessor :async_review_queue_upsert
@@ -30,12 +33,18 @@ module GetStream
30
33
  # @!attribute media_queue_blur_enabled
31
34
  # @return [Boolean]
32
35
  attr_accessor :media_queue_blur_enabled
36
+ # @!attribute webhook_header_client_request_id_key
37
+ # @return [String]
38
+ attr_accessor :webhook_header_client_request_id_key
33
39
  # @!attribute allowed_moderation_action_reasons
34
40
  # @return [Array<String>]
35
41
  attr_accessor :allowed_moderation_action_reasons
36
42
  # @!attribute escalation_reasons
37
43
  # @return [Array<String>]
38
44
  attr_accessor :escalation_reasons
45
+ # @!attribute filterable_custom_keys
46
+ # @return [Array<String>]
47
+ attr_accessor :filterable_custom_keys
39
48
  # @!attribute keyframe_classifications_map
40
49
  # @return [Hash<String, Hash<String, Boolean>>]
41
50
  attr_accessor :keyframe_classifications_map
@@ -46,6 +55,7 @@ module GetStream
46
55
  # Initialize with attributes
47
56
  def initialize(attributes = {})
48
57
  super(attributes)
58
+ @analyze_max_image_size_bytes = attributes[:analyze_max_image_size_bytes] || attributes['analyze_max_image_size_bytes'] || nil
49
59
  @async_review_queue_upsert = attributes[:async_review_queue_upsert] || attributes['async_review_queue_upsert'] || nil
50
60
  @disable_audit_logs = attributes[:disable_audit_logs] || attributes['disable_audit_logs'] || nil
51
61
  @disable_flagging_reviewed_entity = attributes[:disable_flagging_reviewed_entity] || attributes['disable_flagging_reviewed_entity'] || nil
@@ -53,8 +63,10 @@ module GetStream
53
63
  @flag_user_on_flagged_content = attributes[:flag_user_on_flagged_content] || attributes['flag_user_on_flagged_content'] || nil
54
64
  @include_attachment_payload = attributes[:include_attachment_payload] || attributes['include_attachment_payload'] || nil
55
65
  @media_queue_blur_enabled = attributes[:media_queue_blur_enabled] || attributes['media_queue_blur_enabled'] || nil
66
+ @webhook_header_client_request_id_key = attributes[:webhook_header_client_request_id_key] || attributes['webhook_header_client_request_id_key'] || nil
56
67
  @allowed_moderation_action_reasons = attributes[:allowed_moderation_action_reasons] || attributes['allowed_moderation_action_reasons'] || nil
57
68
  @escalation_reasons = attributes[:escalation_reasons] || attributes['escalation_reasons'] || nil
69
+ @filterable_custom_keys = attributes[:filterable_custom_keys] || attributes['filterable_custom_keys'] || nil
58
70
  @keyframe_classifications_map = attributes[:keyframe_classifications_map] || attributes['keyframe_classifications_map'] || nil
59
71
  @overview_dashboard = attributes[:overview_dashboard] || attributes['overview_dashboard'] || nil
60
72
  end
@@ -62,6 +74,7 @@ module GetStream
62
74
  # Override field mappings for JSON serialization
63
75
  def self.json_field_mappings
64
76
  {
77
+ analyze_max_image_size_bytes: 'analyze_max_image_size_bytes',
65
78
  async_review_queue_upsert: 'async_review_queue_upsert',
66
79
  disable_audit_logs: 'disable_audit_logs',
67
80
  disable_flagging_reviewed_entity: 'disable_flagging_reviewed_entity',
@@ -69,8 +82,10 @@ module GetStream
69
82
  flag_user_on_flagged_content: 'flag_user_on_flagged_content',
70
83
  include_attachment_payload: 'include_attachment_payload',
71
84
  media_queue_blur_enabled: 'media_queue_blur_enabled',
85
+ webhook_header_client_request_id_key: 'webhook_header_client_request_id_key',
72
86
  allowed_moderation_action_reasons: 'allowed_moderation_action_reasons',
73
87
  escalation_reasons: 'escalation_reasons',
88
+ filterable_custom_keys: 'filterable_custom_keys',
74
89
  keyframe_classifications_map: 'keyframe_classifications_map',
75
90
  overview_dashboard: 'overview_dashboard'
76
91
  }
@@ -0,0 +1,81 @@
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
+ # Per-image moderation verdict from /analyze. Fires on every /analyze call that included image inputs (callers also get the verdict on the HTTP response — this event is the audit / reconciliation tap). For the /analyze origin it replaces the legacy review_queue_item.* + moderation_check.completed events.
9
+ class ModerationImageAnalysisCompleteEvent < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute created_at
13
+ # @return [DateTime]
14
+ attr_accessor :created_at
15
+ # @!attribute type
16
+ # @return [String]
17
+ attr_accessor :type
18
+ # @!attribute config_key
19
+ # @return [String] The moderation policy key that was applied.
20
+ attr_accessor :config_key
21
+ # @!attribute entity_creator_id
22
+ # @return [String] Echo of the `entity_creator_id` on the /analyze request.
23
+ attr_accessor :entity_creator_id
24
+ # @!attribute entity_id
25
+ # @return [String] Echo of the `entity_id` on the /analyze request.
26
+ attr_accessor :entity_id
27
+ # @!attribute entity_type
28
+ # @return [String] Echo of the `entity_type` on the /analyze request.
29
+ attr_accessor :entity_type
30
+ # @!attribute received_at
31
+ # @return [DateTime]
32
+ attr_accessor :received_at
33
+ # @!attribute review_queue_item_id
34
+ # @return [String] Review queue row ID for deep-linking into the dashboard.
35
+ attr_accessor :review_queue_item_id
36
+ # @!attribute custom
37
+ # @return [Object] Echo of the `custom` metadata on the /analyze request.
38
+ attr_accessor :custom
39
+ # @!attribute images
40
+ # @return [Hash<String, AnalyzeImageField>] Per-image verdicts, same shape as the /analyze HTTP response. Each entry carries `id` when the request supplied `content_ids`.
41
+ attr_accessor :images
42
+ # @!attribute texts
43
+ # @return [Hash<String, AnalyzeTextField>] Per-text-field verdicts, same shape as the /analyze HTTP response. Each entry carries `id` when the request supplied `content_ids`.
44
+ attr_accessor :texts
45
+
46
+ # Initialize with attributes
47
+ def initialize(attributes = {})
48
+ super(attributes)
49
+ @created_at = attributes[:created_at] || attributes['created_at']
50
+ @type = attributes[:type] || attributes['type'] || "moderation.image_analysis.complete"
51
+ @config_key = attributes[:config_key] || attributes['config_key'] || nil
52
+ @entity_creator_id = attributes[:entity_creator_id] || attributes['entity_creator_id'] || nil
53
+ @entity_id = attributes[:entity_id] || attributes['entity_id'] || nil
54
+ @entity_type = attributes[:entity_type] || attributes['entity_type'] || nil
55
+ @received_at = attributes[:received_at] || attributes['received_at'] || nil
56
+ @review_queue_item_id = attributes[:review_queue_item_id] || attributes['review_queue_item_id'] || nil
57
+ @custom = attributes[:custom] || attributes['custom'] || nil
58
+ @images = attributes[:images] || attributes['images'] || nil
59
+ @texts = attributes[:texts] || attributes['texts'] || nil
60
+ end
61
+
62
+ # Override field mappings for JSON serialization
63
+ def self.json_field_mappings
64
+ {
65
+ created_at: 'created_at',
66
+ type: 'type',
67
+ config_key: 'config_key',
68
+ entity_creator_id: 'entity_creator_id',
69
+ entity_id: 'entity_id',
70
+ entity_type: 'entity_type',
71
+ received_at: 'received_at',
72
+ review_queue_item_id: 'review_queue_item_id',
73
+ custom: 'custom',
74
+ images: 'images',
75
+ texts: 'texts'
76
+ }
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -42,6 +42,9 @@ module GetStream
42
42
  # @!attribute violation_number
43
43
  # @return [Integer] The violation number for call rules (optional)
44
44
  attr_accessor :violation_number
45
+ # @!attribute matched_contents
46
+ # @return [Array<MatchedContent>] Ordered list of contents whose verdicts contributed to an aggregation rule's threshold. Populated only for aggregation rules when callers supplied `content_ids`.
47
+ attr_accessor :matched_contents
45
48
 
46
49
  # Initialize with attributes
47
50
  def initialize(attributes = {})
@@ -57,6 +60,7 @@ module GetStream
57
60
  @received_at = attributes[:received_at] || attributes['received_at'] || nil
58
61
  @review_queue_item_id = attributes[:review_queue_item_id] || attributes['review_queue_item_id'] || nil
59
62
  @violation_number = attributes[:violation_number] || attributes['violation_number'] || nil
63
+ @matched_contents = attributes[:matched_contents] || attributes['matched_contents'] || nil
60
64
  end
61
65
 
62
66
  # Override field mappings for JSON serialization
@@ -72,7 +76,8 @@ module GetStream
72
76
  type: 'type',
73
77
  received_at: 'received_at',
74
78
  review_queue_item_id: 'review_queue_item_id',
75
- violation_number: 'violation_number'
79
+ violation_number: 'violation_number',
80
+ matched_contents: 'matched_contents'
76
81
  }
77
82
  end
78
83
  end
@@ -0,0 +1,76 @@
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
+ # Per-text moderation verdict from /analyze. Fires on every /analyze call that included text inputs. Sibling of moderation.image_analysis.complete with the same audit / reconciliation purpose; for the /analyze origin this event replaces the legacy review_queue_item.* + moderation_check.completed events.
9
+ class ModerationTextAnalysisCompleteEvent < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute created_at
13
+ # @return [DateTime]
14
+ attr_accessor :created_at
15
+ # @!attribute type
16
+ # @return [String]
17
+ attr_accessor :type
18
+ # @!attribute config_key
19
+ # @return [String] The moderation policy key that was applied.
20
+ attr_accessor :config_key
21
+ # @!attribute entity_creator_id
22
+ # @return [String] Echo of the `entity_creator_id` on the /analyze request.
23
+ attr_accessor :entity_creator_id
24
+ # @!attribute entity_id
25
+ # @return [String] Echo of the `entity_id` on the /analyze request.
26
+ attr_accessor :entity_id
27
+ # @!attribute entity_type
28
+ # @return [String] Echo of the `entity_type` on the /analyze request.
29
+ attr_accessor :entity_type
30
+ # @!attribute received_at
31
+ # @return [DateTime]
32
+ attr_accessor :received_at
33
+ # @!attribute review_queue_item_id
34
+ # @return [String] Review queue row ID for deep-linking into the dashboard.
35
+ attr_accessor :review_queue_item_id
36
+ # @!attribute custom
37
+ # @return [Object] Echo of the `custom` metadata on the /analyze request.
38
+ attr_accessor :custom
39
+ # @!attribute texts
40
+ # @return [Hash<String, AnalyzeTextField>] Per-text-field verdicts, same shape as the /analyze HTTP response. Each entry carries `id` when the request supplied `content_ids`.
41
+ attr_accessor :texts
42
+
43
+ # Initialize with attributes
44
+ def initialize(attributes = {})
45
+ super(attributes)
46
+ @created_at = attributes[:created_at] || attributes['created_at']
47
+ @type = attributes[:type] || attributes['type'] || "moderation.text_analysis.complete"
48
+ @config_key = attributes[:config_key] || attributes['config_key'] || nil
49
+ @entity_creator_id = attributes[:entity_creator_id] || attributes['entity_creator_id'] || nil
50
+ @entity_id = attributes[:entity_id] || attributes['entity_id'] || nil
51
+ @entity_type = attributes[:entity_type] || attributes['entity_type'] || nil
52
+ @received_at = attributes[:received_at] || attributes['received_at'] || nil
53
+ @review_queue_item_id = attributes[:review_queue_item_id] || attributes['review_queue_item_id'] || nil
54
+ @custom = attributes[:custom] || attributes['custom'] || nil
55
+ @texts = attributes[:texts] || attributes['texts'] || nil
56
+ end
57
+
58
+ # Override field mappings for JSON serialization
59
+ def self.json_field_mappings
60
+ {
61
+ created_at: 'created_at',
62
+ type: 'type',
63
+ config_key: 'config_key',
64
+ entity_creator_id: 'entity_creator_id',
65
+ entity_id: 'entity_id',
66
+ entity_type: 'entity_type',
67
+ received_at: 'received_at',
68
+ review_queue_item_id: 'review_queue_item_id',
69
+ custom: 'custom',
70
+ texts: 'texts'
71
+ }
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -21,6 +21,9 @@ module GetStream
21
21
  # @!attribute keyframe_labels
22
22
  # @return [Array<String>] Deprecated: use keyframe_label_classifications instead. Available L1 harm labels for keyframe rules
23
23
  attr_accessor :keyframe_labels
24
+ # @!attribute ocr_labels
25
+ # @return [Array<String>] Available harm labels for keyframe OCR rules. Mirrors `closed_caption_labels` today but kept as a separate field so the two pickers can diverge later.
26
+ attr_accessor :ocr_labels
24
27
  # @!attribute rules
25
28
  # @return [Array<ModerationRuleV2Response>] List of moderation rules
26
29
  attr_accessor :rules
@@ -30,6 +33,9 @@ module GetStream
30
33
  # @!attribute default_llm_labels
31
34
  # @return [Hash<String, String>] Default LLM label descriptions
32
35
  attr_accessor :default_llm_labels
36
+ # @!attribute default_username_llm_labels
37
+ # @return [Hash<String, String>] Recommended LLM label descriptions for username-scoped policies (key starts with 'username:'). Used by /moderation/v2/labels fast-path.
38
+ attr_accessor :default_username_llm_labels
33
39
  # @!attribute keyframe_label_classifications
34
40
  # @return [Hash<String, Array<String>>] L1 to L2 mapping of keyframe harm label classifications
35
41
  attr_accessor :keyframe_label_classifications
@@ -47,9 +53,11 @@ module GetStream
47
53
  @ai_image_label_definitions = attributes[:ai_image_label_definitions] || attributes['ai_image_label_definitions']
48
54
  @closed_caption_labels = attributes[:closed_caption_labels] || attributes['closed_caption_labels']
49
55
  @keyframe_labels = attributes[:keyframe_labels] || attributes['keyframe_labels']
56
+ @ocr_labels = attributes[:ocr_labels] || attributes['ocr_labels']
50
57
  @rules = attributes[:rules] || attributes['rules']
51
58
  @ai_image_subclassifications = attributes[:ai_image_subclassifications] || attributes['ai_image_subclassifications']
52
59
  @default_llm_labels = attributes[:default_llm_labels] || attributes['default_llm_labels']
60
+ @default_username_llm_labels = attributes[:default_username_llm_labels] || attributes['default_username_llm_labels']
53
61
  @keyframe_label_classifications = attributes[:keyframe_label_classifications] || attributes['keyframe_label_classifications']
54
62
  @next = attributes[:next] || attributes['next'] || nil
55
63
  @prev = attributes[:prev] || attributes['prev'] || nil
@@ -62,9 +70,11 @@ module GetStream
62
70
  ai_image_label_definitions: 'ai_image_label_definitions',
63
71
  closed_caption_labels: 'closed_caption_labels',
64
72
  keyframe_labels: 'keyframe_labels',
73
+ ocr_labels: 'ocr_labels',
65
74
  rules: 'rules',
66
75
  ai_image_subclassifications: 'ai_image_subclassifications',
67
76
  default_llm_labels: 'default_llm_labels',
77
+ default_username_llm_labels: 'default_username_llm_labels',
68
78
  keyframe_label_classifications: 'keyframe_label_classifications',
69
79
  next: 'next',
70
80
  prev: 'prev'
@@ -40,7 +40,7 @@ module GetStream
40
40
  # @return [Array<SortParamRequest>] Sorting parameters for the results
41
41
  attr_accessor :sort
42
42
  # @!attribute filter
43
- # @return [Object] Filter conditions for review queue items
43
+ # @return [Object] Filter conditions for review queue items. Accepts built-in fields (e.g. status, channel_cid, severity, recommended_action) and customer-supplied moderation_payload.custom keys: any key that is not a built-in field is matched against the item's custom moderation data (e.g. {"location_id": "loc-42"}). Use filter_config.filterable_custom_keys to discover which custom keys the app exposes as chips.
44
44
  attr_accessor :filter
45
45
  # @!attribute user
46
46
  # @return [UserRequest]
@@ -16,7 +16,7 @@ module GetStream
16
16
  # Initialize with attributes
17
17
  def initialize(attributes = {})
18
18
  super(attributes)
19
- @enabled = attributes[:enabled] || attributes['enabled'] || nil
19
+ @enabled = attributes[:enabled] || attributes['enabled']
20
20
  end
21
21
 
22
22
  # Override field mappings for JSON serialization
@@ -0,0 +1,31 @@
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
+ # Reports a batch of client-side telemetry events. Each event is validated and processed independently; one invalid event does not block the rest of the batch.
9
+ class ReportClientEventRequest < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute events
13
+ # @return [Array<ClientEvent>] Client-side events to report (1-100 per request)
14
+ attr_accessor :events
15
+
16
+ # Initialize with attributes
17
+ def initialize(attributes = {})
18
+ super(attributes)
19
+ @events = attributes[:events] || attributes['events']
20
+ end
21
+
22
+ # Override field mappings for JSON serialization
23
+ def self.json_field_mappings
24
+ {
25
+ events: 'events'
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
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
+ # Response for reporting client-side telemetry events
9
+ class ReportClientEventResponse < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute duration
13
+ # @return [String] Duration of the request in milliseconds
14
+ attr_accessor :duration
15
+
16
+ # Initialize with attributes
17
+ def initialize(attributes = {})
18
+ super(attributes)
19
+ @duration = attributes[:duration] || attributes['duration']
20
+ end
21
+
22
+ # Override field mappings for JSON serialization
23
+ def self.json_field_mappings
24
+ {
25
+ duration: 'duration'
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -9,6 +9,9 @@ module GetStream
9
9
  class RuleBuilderAction < GetStream::BaseModel
10
10
 
11
11
  # Model attributes
12
+ # @!attribute reason
13
+ # @return [String]
14
+ attr_accessor :reason
12
15
  # @!attribute skip_inbox
13
16
  # @return [Boolean]
14
17
  attr_accessor :skip_inbox
@@ -28,6 +31,7 @@ module GetStream
28
31
  # Initialize with attributes
29
32
  def initialize(attributes = {})
30
33
  super(attributes)
34
+ @reason = attributes[:reason] || attributes['reason'] || nil
31
35
  @skip_inbox = attributes[:skip_inbox] || attributes['skip_inbox'] || nil
32
36
  @type = attributes[:type] || attributes['type'] || nil
33
37
  @ban_options = attributes[:ban_options] || attributes['ban_options'] || nil
@@ -38,6 +42,7 @@ module GetStream
38
42
  # Override field mappings for JSON serialization
39
43
  def self.json_field_mappings
40
44
  {
45
+ reason: 'reason',
41
46
  skip_inbox: 'skip_inbox',
42
47
  type: 'type',
43
48
  ban_options: 'ban_options',
@@ -33,6 +33,12 @@ module GetStream
33
33
  # @!attribute content_count_rule_params
34
34
  # @return [ContentCountRuleParameters]
35
35
  attr_accessor :content_count_rule_params
36
+ # @!attribute content_custom_property_count_params
37
+ # @return [ContentCustomPropertyCountParameters]
38
+ attr_accessor :content_custom_property_count_params
39
+ # @!attribute content_custom_property_params
40
+ # @return [ContentCustomPropertyParameters]
41
+ attr_accessor :content_custom_property_params
36
42
  # @!attribute content_flag_count_rule_params
37
43
  # @return [FlagCountRuleParameters]
38
44
  attr_accessor :content_flag_count_rule_params
@@ -42,6 +48,9 @@ module GetStream
42
48
  # @!attribute image_rule_params
43
49
  # @return [ImageRuleParameters]
44
50
  attr_accessor :image_rule_params
51
+ # @!attribute keyframe_ocr_rule_params
52
+ # @return [KeyframeOCRRuleParameters]
53
+ attr_accessor :keyframe_ocr_rule_params
45
54
  # @!attribute keyframe_rule_params
46
55
  # @return [KeyframeRuleParameters]
47
56
  attr_accessor :keyframe_rule_params
@@ -87,9 +96,12 @@ module GetStream
87
96
  @channel_message_count_rule_params = attributes[:channel_message_count_rule_params] || attributes['channel_message_count_rule_params'] || nil
88
97
  @closed_caption_rule_params = attributes[:closed_caption_rule_params] || attributes['closed_caption_rule_params'] || nil
89
98
  @content_count_rule_params = attributes[:content_count_rule_params] || attributes['content_count_rule_params'] || nil
99
+ @content_custom_property_count_params = attributes[:content_custom_property_count_params] || attributes['content_custom_property_count_params'] || nil
100
+ @content_custom_property_params = attributes[:content_custom_property_params] || attributes['content_custom_property_params'] || nil
90
101
  @content_flag_count_rule_params = attributes[:content_flag_count_rule_params] || attributes['content_flag_count_rule_params'] || nil
91
102
  @image_content_params = attributes[:image_content_params] || attributes['image_content_params'] || nil
92
103
  @image_rule_params = attributes[:image_rule_params] || attributes['image_rule_params'] || nil
104
+ @keyframe_ocr_rule_params = attributes[:keyframe_ocr_rule_params] || attributes['keyframe_ocr_rule_params'] || nil
93
105
  @keyframe_rule_params = attributes[:keyframe_rule_params] || attributes['keyframe_rule_params'] || nil
94
106
  @text_content_params = attributes[:text_content_params] || attributes['text_content_params'] || nil
95
107
  @text_rule_params = attributes[:text_rule_params] || attributes['text_rule_params'] || nil
@@ -114,9 +126,12 @@ module GetStream
114
126
  channel_message_count_rule_params: 'channel_message_count_rule_params',
115
127
  closed_caption_rule_params: 'closed_caption_rule_params',
116
128
  content_count_rule_params: 'content_count_rule_params',
129
+ content_custom_property_count_params: 'content_custom_property_count_params',
130
+ content_custom_property_params: 'content_custom_property_params',
117
131
  content_flag_count_rule_params: 'content_flag_count_rule_params',
118
132
  image_content_params: 'image_content_params',
119
133
  image_rule_params: 'image_rule_params',
134
+ keyframe_ocr_rule_params: 'keyframe_ocr_rule_params',
120
135
  keyframe_rule_params: 'keyframe_rule_params',
121
136
  text_content_params: 'text_content_params',
122
137
  text_rule_params: 'text_rule_params',
@@ -114,6 +114,9 @@ module GetStream
114
114
  # @!attribute mentioned_group_ids
115
115
  # @return [Array<String>]
116
116
  attr_accessor :mentioned_group_ids
117
+ # @!attribute mentioned_groups
118
+ # @return [Array<UserGroupResponse>]
119
+ attr_accessor :mentioned_groups
117
120
  # @!attribute mentioned_roles
118
121
  # @return [Array<String>]
119
122
  attr_accessor :mentioned_roles
@@ -195,6 +198,7 @@ module GetStream
195
198
  @quoted_message_id = attributes[:quoted_message_id] || attributes['quoted_message_id'] || nil
196
199
  @show_in_channel = attributes[:show_in_channel] || attributes['show_in_channel'] || nil
197
200
  @mentioned_group_ids = attributes[:mentioned_group_ids] || attributes['mentioned_group_ids'] || nil
201
+ @mentioned_groups = attributes[:mentioned_groups] || attributes['mentioned_groups'] || nil
198
202
  @mentioned_roles = attributes[:mentioned_roles] || attributes['mentioned_roles'] || nil
199
203
  @thread_participants = attributes[:thread_participants] || attributes['thread_participants'] || nil
200
204
  @channel = attributes[:channel] || attributes['channel'] || nil
@@ -249,6 +253,7 @@ module GetStream
249
253
  quoted_message_id: 'quoted_message_id',
250
254
  show_in_channel: 'show_in_channel',
251
255
  mentioned_group_ids: 'mentioned_group_ids',
256
+ mentioned_groups: 'mentioned_groups',
252
257
  mentioned_roles: 'mentioned_roles',
253
258
  thread_participants: 'thread_participants',
254
259
  channel: 'channel',
@@ -0,0 +1,56 @@
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 SetupSession < GetStream::BaseModel
10
+
11
+ # Model attributes
12
+ # @!attribute created_at
13
+ # @return [DateTime]
14
+ attr_accessor :created_at
15
+ # @!attribute current_step
16
+ # @return [String]
17
+ attr_accessor :current_step
18
+ # @!attribute status
19
+ # @return [String]
20
+ attr_accessor :status
21
+ # @!attribute updated_at
22
+ # @return [DateTime]
23
+ attr_accessor :updated_at
24
+ # @!attribute setup_data
25
+ # @return [Object]
26
+ attr_accessor :setup_data
27
+ # @!attribute completed_at
28
+ # @return [DateTime]
29
+ attr_accessor :completed_at
30
+
31
+ # Initialize with attributes
32
+ def initialize(attributes = {})
33
+ super(attributes)
34
+ @created_at = attributes[:created_at] || attributes['created_at']
35
+ @current_step = attributes[:current_step] || attributes['current_step']
36
+ @status = attributes[:status] || attributes['status']
37
+ @updated_at = attributes[:updated_at] || attributes['updated_at']
38
+ @setup_data = attributes[:setup_data] || attributes['setup_data']
39
+ @completed_at = attributes[:completed_at] || attributes['completed_at'] || nil
40
+ end
41
+
42
+ # Override field mappings for JSON serialization
43
+ def self.json_field_mappings
44
+ {
45
+ created_at: 'created_at',
46
+ current_step: 'current_step',
47
+ status: 'status',
48
+ updated_at: 'updated_at',
49
+ setup_data: 'setup_data',
50
+ completed_at: 'completed_at'
51
+ }
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -12,6 +12,9 @@ module GetStream
12
12
  # @!attribute duration
13
13
  # @return [String]
14
14
  attr_accessor :duration
15
+ # @!attribute auto_restore_warning
16
+ # @return [String] Present when the appeal was accepted but the entity could not be restored automatically. The moderator should restore it manually.
17
+ attr_accessor :auto_restore_warning
15
18
  # @!attribute appeal_item
16
19
  # @return [AppealItemResponse]
17
20
  attr_accessor :appeal_item
@@ -23,6 +26,7 @@ module GetStream
23
26
  def initialize(attributes = {})
24
27
  super(attributes)
25
28
  @duration = attributes[:duration] || attributes['duration']
29
+ @auto_restore_warning = attributes[:auto_restore_warning] || attributes['auto_restore_warning'] || nil
26
30
  @appeal_item = attributes[:appeal_item] || attributes['appeal_item'] || nil
27
31
  @item = attributes[:item] || attributes['item'] || nil
28
32
  end
@@ -31,6 +35,7 @@ module GetStream
31
35
  def self.json_field_mappings
32
36
  {
33
37
  duration: 'duration',
38
+ auto_restore_warning: 'auto_restore_warning',
34
39
  appeal_item: 'appeal_item',
35
40
  item: 'item'
36
41
  }