safetykit 0.5.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 (158) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +47 -0
  4. data/README.md +208 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/safety_kit/client.rb +111 -0
  7. data/lib/safety_kit/errors.rb +228 -0
  8. data/lib/safety_kit/file_part.rb +58 -0
  9. data/lib/safety_kit/internal/transport/base_client.rb +575 -0
  10. data/lib/safety_kit/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/safety_kit/internal/type/array_of.rb +168 -0
  12. data/lib/safety_kit/internal/type/base_model.rb +529 -0
  13. data/lib/safety_kit/internal/type/base_page.rb +55 -0
  14. data/lib/safety_kit/internal/type/boolean.rb +77 -0
  15. data/lib/safety_kit/internal/type/converter.rb +327 -0
  16. data/lib/safety_kit/internal/type/enum.rb +131 -0
  17. data/lib/safety_kit/internal/type/file_input.rb +111 -0
  18. data/lib/safety_kit/internal/type/hash_of.rb +188 -0
  19. data/lib/safety_kit/internal/type/request_parameters.rb +42 -0
  20. data/lib/safety_kit/internal/type/union.rb +237 -0
  21. data/lib/safety_kit/internal/type/unknown.rb +81 -0
  22. data/lib/safety_kit/internal/util.rb +966 -0
  23. data/lib/safety_kit/internal.rb +20 -0
  24. data/lib/safety_kit/models/agent_decision_create_agent_decision_params.rb +68 -0
  25. data/lib/safety_kit/models/agent_decision_create_agent_decision_response.rb +19 -0
  26. data/lib/safety_kit/models/beta/event_create_params.rb +1140 -0
  27. data/lib/safety_kit/models/beta/event_create_response.rb +41 -0
  28. data/lib/safety_kit/models/client_session_create_session_params.rb +30 -0
  29. data/lib/safety_kit/models/client_session_create_session_response.rb +19 -0
  30. data/lib/safety_kit/models/data_add_params.rb +52 -0
  31. data/lib/safety_kit/models/data_add_response.rb +44 -0
  32. data/lib/safety_kit/models/data_create_upload_url_params.rb +176 -0
  33. data/lib/safety_kit/models/data_create_upload_url_response.rb +69 -0
  34. data/lib/safety_kit/models/data_get_download_url_params.rb +30 -0
  35. data/lib/safety_kit/models/data_get_download_url_response.rb +80 -0
  36. data/lib/safety_kit/models/data_get_status_params.rb +30 -0
  37. data/lib/safety_kit/models/data_get_status_response.rb +128 -0
  38. data/lib/safety_kit/models/data_object.rb +24 -0
  39. data/lib/safety_kit/models/data_update_settings_params.rb +176 -0
  40. data/lib/safety_kit/models/data_update_settings_response.rb +34 -0
  41. data/lib/safety_kit/models/stream_add_frame_params.rb +50 -0
  42. data/lib/safety_kit/models/stream_add_frame_response.rb +34 -0
  43. data/lib/safety_kit/models/stream_add_params.rb +36 -0
  44. data/lib/safety_kit/models/stream_add_response.rb +34 -0
  45. data/lib/safety_kit/models/stream_add_transcript_params.rb +43 -0
  46. data/lib/safety_kit/models/stream_add_transcript_response.rb +34 -0
  47. data/lib/safety_kit/models.rb +65 -0
  48. data/lib/safety_kit/request_options.rb +77 -0
  49. data/lib/safety_kit/resources/agent_decisions.rb +55 -0
  50. data/lib/safety_kit/resources/beta/events.rb +45 -0
  51. data/lib/safety_kit/resources/beta.rb +19 -0
  52. data/lib/safety_kit/resources/client_sessions.rb +42 -0
  53. data/lib/safety_kit/resources/data.rb +159 -0
  54. data/lib/safety_kit/resources/streams.rb +113 -0
  55. data/lib/safety_kit/version.rb +5 -0
  56. data/lib/safety_kit.rb +84 -0
  57. data/manifest.yaml +17 -0
  58. data/rbi/safety_kit/client.rbi +68 -0
  59. data/rbi/safety_kit/errors.rbi +205 -0
  60. data/rbi/safety_kit/file_part.rbi +37 -0
  61. data/rbi/safety_kit/internal/transport/base_client.rbi +298 -0
  62. data/rbi/safety_kit/internal/transport/pooled_net_requester.rbi +83 -0
  63. data/rbi/safety_kit/internal/type/array_of.rbi +104 -0
  64. data/rbi/safety_kit/internal/type/base_model.rbi +308 -0
  65. data/rbi/safety_kit/internal/type/base_page.rbi +42 -0
  66. data/rbi/safety_kit/internal/type/boolean.rbi +58 -0
  67. data/rbi/safety_kit/internal/type/converter.rbi +216 -0
  68. data/rbi/safety_kit/internal/type/enum.rbi +82 -0
  69. data/rbi/safety_kit/internal/type/file_input.rbi +59 -0
  70. data/rbi/safety_kit/internal/type/hash_of.rbi +104 -0
  71. data/rbi/safety_kit/internal/type/request_parameters.rbi +29 -0
  72. data/rbi/safety_kit/internal/type/union.rbi +128 -0
  73. data/rbi/safety_kit/internal/type/unknown.rbi +58 -0
  74. data/rbi/safety_kit/internal/util.rbi +515 -0
  75. data/rbi/safety_kit/internal.rbi +18 -0
  76. data/rbi/safety_kit/models/agent_decision_create_agent_decision_params.rbi +95 -0
  77. data/rbi/safety_kit/models/agent_decision_create_agent_decision_response.rbi +31 -0
  78. data/rbi/safety_kit/models/beta/event_create_params.rbi +2379 -0
  79. data/rbi/safety_kit/models/beta/event_create_response.rbi +87 -0
  80. data/rbi/safety_kit/models/client_session_create_session_params.rbi +60 -0
  81. data/rbi/safety_kit/models/client_session_create_session_response.rbi +31 -0
  82. data/rbi/safety_kit/models/data_add_params.rbi +82 -0
  83. data/rbi/safety_kit/models/data_add_response.rbi +77 -0
  84. data/rbi/safety_kit/models/data_create_upload_url_params.rbi +473 -0
  85. data/rbi/safety_kit/models/data_create_upload_url_response.rbi +113 -0
  86. data/rbi/safety_kit/models/data_get_download_url_params.rbi +54 -0
  87. data/rbi/safety_kit/models/data_get_download_url_response.rbi +136 -0
  88. data/rbi/safety_kit/models/data_get_status_params.rbi +51 -0
  89. data/rbi/safety_kit/models/data_get_status_response.rbi +264 -0
  90. data/rbi/safety_kit/models/data_object.rbi +33 -0
  91. data/rbi/safety_kit/models/data_update_settings_params.rbi +458 -0
  92. data/rbi/safety_kit/models/data_update_settings_response.rbi +74 -0
  93. data/rbi/safety_kit/models/stream_add_frame_params.rbi +69 -0
  94. data/rbi/safety_kit/models/stream_add_frame_response.rbi +71 -0
  95. data/rbi/safety_kit/models/stream_add_params.rbi +55 -0
  96. data/rbi/safety_kit/models/stream_add_response.rbi +68 -0
  97. data/rbi/safety_kit/models/stream_add_transcript_params.rbi +64 -0
  98. data/rbi/safety_kit/models/stream_add_transcript_response.rbi +77 -0
  99. data/rbi/safety_kit/models.rbi +29 -0
  100. data/rbi/safety_kit/request_options.rbi +59 -0
  101. data/rbi/safety_kit/resources/agent_decisions.rbi +50 -0
  102. data/rbi/safety_kit/resources/beta/events.rbi +40 -0
  103. data/rbi/safety_kit/resources/beta.rbi +16 -0
  104. data/rbi/safety_kit/resources/client_sessions.rbi +33 -0
  105. data/rbi/safety_kit/resources/data.rbi +126 -0
  106. data/rbi/safety_kit/resources/streams.rbi +88 -0
  107. data/rbi/safety_kit/version.rbi +5 -0
  108. data/sig/safety_kit/client.rbs +34 -0
  109. data/sig/safety_kit/errors.rbs +117 -0
  110. data/sig/safety_kit/file_part.rbs +21 -0
  111. data/sig/safety_kit/internal/transport/base_client.rbs +133 -0
  112. data/sig/safety_kit/internal/transport/pooled_net_requester.rbs +48 -0
  113. data/sig/safety_kit/internal/type/array_of.rbs +48 -0
  114. data/sig/safety_kit/internal/type/base_model.rbs +102 -0
  115. data/sig/safety_kit/internal/type/base_page.rbs +24 -0
  116. data/sig/safety_kit/internal/type/boolean.rbs +26 -0
  117. data/sig/safety_kit/internal/type/converter.rbs +79 -0
  118. data/sig/safety_kit/internal/type/enum.rbs +32 -0
  119. data/sig/safety_kit/internal/type/file_input.rbs +25 -0
  120. data/sig/safety_kit/internal/type/hash_of.rbs +48 -0
  121. data/sig/safety_kit/internal/type/request_parameters.rbs +19 -0
  122. data/sig/safety_kit/internal/type/union.rbs +52 -0
  123. data/sig/safety_kit/internal/type/unknown.rbs +26 -0
  124. data/sig/safety_kit/internal/util.rbs +199 -0
  125. data/sig/safety_kit/internal.rbs +9 -0
  126. data/sig/safety_kit/models/agent_decision_create_agent_decision_params.rbs +53 -0
  127. data/sig/safety_kit/models/agent_decision_create_agent_decision_response.rbs +14 -0
  128. data/sig/safety_kit/models/beta/event_create_params.rbs +891 -0
  129. data/sig/safety_kit/models/beta/event_create_response.rbs +37 -0
  130. data/sig/safety_kit/models/client_session_create_session_params.rbs +32 -0
  131. data/sig/safety_kit/models/client_session_create_session_response.rbs +13 -0
  132. data/sig/safety_kit/models/data_add_params.rbs +38 -0
  133. data/sig/safety_kit/models/data_add_response.rbs +32 -0
  134. data/sig/safety_kit/models/data_create_upload_url_params.rbs +193 -0
  135. data/sig/safety_kit/models/data_create_upload_url_response.rbs +50 -0
  136. data/sig/safety_kit/models/data_get_download_url_params.rbs +28 -0
  137. data/sig/safety_kit/models/data_get_download_url_response.rbs +59 -0
  138. data/sig/safety_kit/models/data_get_status_params.rbs +28 -0
  139. data/sig/safety_kit/models/data_get_status_response.rbs +120 -0
  140. data/sig/safety_kit/models/data_object.rbs +13 -0
  141. data/sig/safety_kit/models/data_update_settings_params.rbs +189 -0
  142. data/sig/safety_kit/models/data_update_settings_response.rbs +35 -0
  143. data/sig/safety_kit/models/stream_add_frame_params.rbs +41 -0
  144. data/sig/safety_kit/models/stream_add_frame_response.rbs +35 -0
  145. data/sig/safety_kit/models/stream_add_params.rbs +32 -0
  146. data/sig/safety_kit/models/stream_add_response.rbs +35 -0
  147. data/sig/safety_kit/models/stream_add_transcript_params.rbs +36 -0
  148. data/sig/safety_kit/models/stream_add_transcript_response.rbs +35 -0
  149. data/sig/safety_kit/models.rbs +25 -0
  150. data/sig/safety_kit/request_options.rbs +34 -0
  151. data/sig/safety_kit/resources/agent_decisions.rbs +17 -0
  152. data/sig/safety_kit/resources/beta/events.rbs +14 -0
  153. data/sig/safety_kit/resources/beta.rbs +9 -0
  154. data/sig/safety_kit/resources/client_sessions.rbs +13 -0
  155. data/sig/safety_kit/resources/data.rbs +37 -0
  156. data/sig/safety_kit/resources/streams.rbs +30 -0
  157. data/sig/safety_kit/version.rbs +3 -0
  158. metadata +228 -0
@@ -0,0 +1,1140 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SafetyKit
4
+ module Models
5
+ module Beta
6
+ # @see SafetyKit::Resources::Beta::Events#create
7
+ class EventCreateParams < SafetyKit::Internal::Type::BaseModel
8
+ extend SafetyKit::Internal::Type::RequestParameters::Converter
9
+ include SafetyKit::Internal::Type::RequestParameters
10
+
11
+ # @!attribute body
12
+ # Backend event to send to SafetyKit. Send events from your server after an action
13
+ # has happened in your product. Do not send these events directly from a browser
14
+ # or mobile client.
15
+ #
16
+ # @return [SafetyKit::Models::Beta::EventCreateParams::Body::UserContact, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount]
17
+ required :body, union: -> { SafetyKit::Beta::EventCreateParams::Body }
18
+
19
+ # @!method initialize(body:, request_options: {})
20
+ # Some parameter documentations has been truncated, see
21
+ # {SafetyKit::Models::Beta::EventCreateParams} for more details.
22
+ #
23
+ # @param body [SafetyKit::Models::Beta::EventCreateParams::Body::UserContact, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount] Backend event to send to SafetyKit. Send events from your server after an action
24
+ #
25
+ # @param request_options [SafetyKit::RequestOptions, Hash{Symbol=>Object}]
26
+
27
+ # Backend event to send to SafetyKit. Send events from your server after an action
28
+ # has happened in your product. Do not send these events directly from a browser
29
+ # or mobile client.
30
+ module Body
31
+ extend SafetyKit::Internal::Type::Union
32
+
33
+ discriminator :type
34
+
35
+ # A user contacts, transacts with, or otherwise interacts with another user. SafetyKit records both users' perspectives with a shared event_id.
36
+ variant :user_contact, -> { SafetyKit::Beta::EventCreateParams::Body::UserContact }
37
+
38
+ # A user posts, uploads, publishes, edits, or replaces content.
39
+ variant :content_uploaded, -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded }
40
+
41
+ # A user or account is created.
42
+ variant :create_account, -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount }
43
+
44
+ # A user or account profile, contact detail, payment detail, or public bio changes.
45
+ variant :update_account, -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount }
46
+
47
+ class UserContact < SafetyKit::Internal::Type::BaseModel
48
+ # @!attribute counterparty_user_id
49
+ # Your stable canonical identifier for the other user in a user-to-user
50
+ # interaction.
51
+ #
52
+ # @return [String]
53
+ required :counterparty_user_id, String
54
+
55
+ # @!attribute event_name
56
+ # Stable, low-cardinality product action name. Use snake_case and put dynamic
57
+ # values in typed fields, content, resources_used, or metadata.
58
+ #
59
+ # @return [String]
60
+ required :event_name, String
61
+
62
+ # @!attribute timestamp
63
+ # The time the event occurred in your system, as an ISO 8601 datetime string.
64
+ #
65
+ # @return [Time]
66
+ required :timestamp, Time
67
+
68
+ # @!attribute type
69
+ #
70
+ # @return [Symbol, :user_contact]
71
+ required :type, const: :user_contact
72
+
73
+ # @!attribute user_id
74
+ # Your stable canonical identifier for the user or account.
75
+ #
76
+ # @return [String]
77
+ required :user_id, String
78
+
79
+ # @!attribute content
80
+ # User-authored or user-uploaded content parts. Use this for message bodies, bios,
81
+ # listing text, image URLs, and similar content SafetyKit should compare or
82
+ # analyze.
83
+ #
84
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent>, nil]
85
+ optional :content,
86
+ -> { SafetyKit::Internal::Type::ArrayOf[union: SafetyKit::Beta::EventCreateParams::Body::UserContact::Content] }
87
+
88
+ # @!attribute metadata
89
+ # Non-PII product context for filtering, segmentation, and debugging. Values may
90
+ # be strings, numbers, booleans, or arrays of those scalar values.
91
+ #
92
+ # @return [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}, nil]
93
+ optional :metadata,
94
+ -> { SafetyKit::Internal::Type::HashOf[union: SafetyKit::Beta::EventCreateParams::Body::UserContact::Metadata] }
95
+
96
+ # @!attribute resources_used
97
+ # Reusable resources observed during the event. Use this for emails, phone
98
+ # numbers, names, addresses, social handles, URLs, payment identifiers, or similar
99
+ # identifiers.
100
+ #
101
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::ResourcesUsed>, nil]
102
+ optional :resources_used,
103
+ -> { SafetyKit::Internal::Type::ArrayOf[SafetyKit::Beta::EventCreateParams::Body::UserContact::ResourcesUsed] }
104
+
105
+ # @!method initialize(counterparty_user_id:, event_name:, timestamp:, user_id:, content: nil, metadata: nil, resources_used: nil, type: :user_contact)
106
+ # Some parameter documentations has been truncated, see
107
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::UserContact} for more
108
+ # details.
109
+ #
110
+ # A user contacts, transacts with, or otherwise interacts with another user.
111
+ # SafetyKit records both users' perspectives with a shared event_id.
112
+ #
113
+ # @param counterparty_user_id [String] Your stable canonical identifier for the other user in a user-to-user interactio
114
+ #
115
+ # @param event_name [String] Stable, low-cardinality product action name. Use snake_case and put dynamic valu
116
+ #
117
+ # @param timestamp [Time] The time the event occurred in your system, as an ISO 8601 datetime string.
118
+ #
119
+ # @param user_id [String] Your stable canonical identifier for the user or account.
120
+ #
121
+ # @param content [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent>] User-authored or user-uploaded content parts. Use this for message bodies, bios,
122
+ #
123
+ # @param metadata [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}] Non-PII product context for filtering, segmentation, and debugging. Values may b
124
+ #
125
+ # @param resources_used [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::ResourcesUsed>] Reusable resources observed during the event. Use this for emails, phone numbers
126
+ #
127
+ # @param type [Symbol, :user_contact]
128
+
129
+ # User-authored text content associated with an event.
130
+ module Content
131
+ extend SafetyKit::Internal::Type::Union
132
+
133
+ # User-authored text content associated with an event.
134
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent }
135
+
136
+ # User-uploaded image content associated with an event.
137
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent }
138
+
139
+ class EventTextContent < SafetyKit::Internal::Type::BaseModel
140
+ # @!attribute text
141
+ # User-authored text SafetyKit should compare or analyze.
142
+ #
143
+ # @return [String]
144
+ required :text, String
145
+
146
+ # @!attribute type
147
+ # Text content part.
148
+ #
149
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent::Type]
150
+ required :type,
151
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent::Type }
152
+
153
+ # @!attribute key
154
+ # Stable field key for this content part.
155
+ #
156
+ # @return [String, nil]
157
+ optional :key, String
158
+
159
+ # @!method initialize(text:, type:, key: nil)
160
+ # User-authored text content associated with an event.
161
+ #
162
+ # @param text [String] User-authored text SafetyKit should compare or analyze.
163
+ #
164
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent::Type] Text content part.
165
+ #
166
+ # @param key [String] Stable field key for this content part.
167
+
168
+ # Text content part.
169
+ #
170
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent#type
171
+ module Type
172
+ extend SafetyKit::Internal::Type::Enum
173
+
174
+ TEXT = :text
175
+
176
+ # @!method self.values
177
+ # @return [Array<Symbol>]
178
+ end
179
+ end
180
+
181
+ class EventImageContent < SafetyKit::Internal::Type::BaseModel
182
+ # @!attribute source
183
+ # Image source information.
184
+ #
185
+ # @return [SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source]
186
+ required :source,
187
+ -> { SafetyKit::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source }
188
+
189
+ # @!attribute type
190
+ # Image content part.
191
+ #
192
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Type]
193
+ required :type,
194
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Type }
195
+
196
+ # @!attribute key
197
+ # Stable field key for this content part.
198
+ #
199
+ # @return [String, nil]
200
+ optional :key, String
201
+
202
+ # @!method initialize(source:, type:, key: nil)
203
+ # User-uploaded image content associated with an event.
204
+ #
205
+ # @param source [SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source] Image source information.
206
+ #
207
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Type] Image content part.
208
+ #
209
+ # @param key [String] Stable field key for this content part.
210
+
211
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent#source
212
+ class Source < SafetyKit::Internal::Type::BaseModel
213
+ # @!attribute type
214
+ # URL image source.
215
+ #
216
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source::Type]
217
+ required :type,
218
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source::Type }
219
+
220
+ # @!attribute url
221
+ # URL of the image SafetyKit should compare or analyze.
222
+ #
223
+ # @return [String]
224
+ required :url, String
225
+
226
+ # @!method initialize(type:, url:)
227
+ # Image source information.
228
+ #
229
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source::Type] URL image source.
230
+ #
231
+ # @param url [String] URL of the image SafetyKit should compare or analyze.
232
+
233
+ # URL image source.
234
+ #
235
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent::Source#type
236
+ module Type
237
+ extend SafetyKit::Internal::Type::Enum
238
+
239
+ URL = :url
240
+
241
+ # @!method self.values
242
+ # @return [Array<Symbol>]
243
+ end
244
+ end
245
+
246
+ # Image content part.
247
+ #
248
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent#type
249
+ module Type
250
+ extend SafetyKit::Internal::Type::Enum
251
+
252
+ IMAGE = :image
253
+
254
+ # @!method self.values
255
+ # @return [Array<Symbol>]
256
+ end
257
+ end
258
+
259
+ # @!method self.variants
260
+ # @return [Array(SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Content::EventImageContent)]
261
+ end
262
+
263
+ module Metadata
264
+ extend SafetyKit::Internal::Type::Union
265
+
266
+ variant String
267
+
268
+ variant Float
269
+
270
+ variant SafetyKit::Internal::Type::Boolean
271
+
272
+ variant -> { SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::Metadata::UnionMember3Array }
273
+
274
+ module UnionMember3
275
+ extend SafetyKit::Internal::Type::Union
276
+
277
+ variant String
278
+
279
+ variant Float
280
+
281
+ variant SafetyKit::Internal::Type::Boolean
282
+
283
+ # @!method self.variants
284
+ # @return [Array(String, Float, Boolean)]
285
+ end
286
+
287
+ # @!method self.variants
288
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
289
+
290
+ # @type [SafetyKit::Internal::Type::Converter]
291
+ UnionMember3Array =
292
+ SafetyKit::Internal::Type::ArrayOf[union: -> {
293
+ SafetyKit::Beta::EventCreateParams::Body::UserContact::Metadata::UnionMember3
294
+ }]
295
+ end
296
+
297
+ class ResourcesUsed < SafetyKit::Internal::Type::BaseModel
298
+ # @!attribute type
299
+ # Resource family, such as email, phone, name, address, url, instagram, tiktok,
300
+ # youtube, linkedin, or another stable snake_case identifier.
301
+ #
302
+ # @return [String]
303
+ required :type, String
304
+
305
+ # @!attribute value
306
+ # Resource value used during the event. SafetyKit stores a normalized hash of this
307
+ # value, not the raw value.
308
+ #
309
+ # @return [String]
310
+ required :value, String
311
+
312
+ # @!method initialize(type:, value:)
313
+ # Some parameter documentations has been truncated, see
314
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::UserContact::ResourcesUsed}
315
+ # for more details.
316
+ #
317
+ # Real-world or account resource used during the event, such as an email, phone
318
+ # number, address, URL, social handle, or payment identifier.
319
+ #
320
+ # @param type [String] Resource family, such as email, phone, name, address, url, instagram, tiktok, yo
321
+ #
322
+ # @param value [String] Resource value used during the event. SafetyKit stores a normalized hash of this
323
+ end
324
+ end
325
+
326
+ class ContentUploaded < SafetyKit::Internal::Type::BaseModel
327
+ # @!attribute content
328
+ # User-authored or user-uploaded content parts. Use this for message bodies, bios,
329
+ # listing text, image URLs, and similar content SafetyKit should compare or
330
+ # analyze.
331
+ #
332
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent>]
333
+ required :content,
334
+ -> { SafetyKit::Internal::Type::ArrayOf[union: SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content] }
335
+
336
+ # @!attribute event_name
337
+ # Stable, low-cardinality product action name. Use snake_case and put dynamic
338
+ # values in typed fields, content, resources_used, or metadata.
339
+ #
340
+ # @return [String]
341
+ required :event_name, String
342
+
343
+ # @!attribute timestamp
344
+ # The time the event occurred in your system, as an ISO 8601 datetime string.
345
+ #
346
+ # @return [Time]
347
+ required :timestamp, Time
348
+
349
+ # @!attribute type
350
+ #
351
+ # @return [Symbol, :content_uploaded]
352
+ required :type, const: :content_uploaded
353
+
354
+ # @!attribute user_id
355
+ # Your stable canonical identifier for the user or account.
356
+ #
357
+ # @return [String]
358
+ required :user_id, String
359
+
360
+ # @!attribute metadata
361
+ # Non-PII product context for filtering, segmentation, and debugging. Values may
362
+ # be strings, numbers, booleans, or arrays of those scalar values.
363
+ #
364
+ # @return [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}, nil]
365
+ optional :metadata,
366
+ -> { SafetyKit::Internal::Type::HashOf[union: SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Metadata] }
367
+
368
+ # @!attribute resources_used
369
+ # Reusable resources observed during the event. Use this for emails, phone
370
+ # numbers, names, addresses, social handles, URLs, payment identifiers, or similar
371
+ # identifiers.
372
+ #
373
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::ResourcesUsed>, nil]
374
+ optional :resources_used,
375
+ -> { SafetyKit::Internal::Type::ArrayOf[SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::ResourcesUsed] }
376
+
377
+ # @!method initialize(content:, event_name:, timestamp:, user_id:, metadata: nil, resources_used: nil, type: :content_uploaded)
378
+ # Some parameter documentations has been truncated, see
379
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded} for more
380
+ # details.
381
+ #
382
+ # A user posts, uploads, publishes, edits, or replaces content.
383
+ #
384
+ # @param content [Array<SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent>] User-authored or user-uploaded content parts. Use this for message bodies, bios,
385
+ #
386
+ # @param event_name [String] Stable, low-cardinality product action name. Use snake_case and put dynamic valu
387
+ #
388
+ # @param timestamp [Time] The time the event occurred in your system, as an ISO 8601 datetime string.
389
+ #
390
+ # @param user_id [String] Your stable canonical identifier for the user or account.
391
+ #
392
+ # @param metadata [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}] Non-PII product context for filtering, segmentation, and debugging. Values may b
393
+ #
394
+ # @param resources_used [Array<SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::ResourcesUsed>] Reusable resources observed during the event. Use this for emails, phone numbers
395
+ #
396
+ # @param type [Symbol, :content_uploaded]
397
+
398
+ # User-authored text content associated with an event.
399
+ module Content
400
+ extend SafetyKit::Internal::Type::Union
401
+
402
+ # User-authored text content associated with an event.
403
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent }
404
+
405
+ # User-uploaded image content associated with an event.
406
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent }
407
+
408
+ class EventTextContent < SafetyKit::Internal::Type::BaseModel
409
+ # @!attribute text
410
+ # User-authored text SafetyKit should compare or analyze.
411
+ #
412
+ # @return [String]
413
+ required :text, String
414
+
415
+ # @!attribute type
416
+ # Text content part.
417
+ #
418
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent::Type]
419
+ required :type,
420
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent::Type }
421
+
422
+ # @!attribute key
423
+ # Stable field key for this content part.
424
+ #
425
+ # @return [String, nil]
426
+ optional :key, String
427
+
428
+ # @!method initialize(text:, type:, key: nil)
429
+ # User-authored text content associated with an event.
430
+ #
431
+ # @param text [String] User-authored text SafetyKit should compare or analyze.
432
+ #
433
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent::Type] Text content part.
434
+ #
435
+ # @param key [String] Stable field key for this content part.
436
+
437
+ # Text content part.
438
+ #
439
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent#type
440
+ module Type
441
+ extend SafetyKit::Internal::Type::Enum
442
+
443
+ TEXT = :text
444
+
445
+ # @!method self.values
446
+ # @return [Array<Symbol>]
447
+ end
448
+ end
449
+
450
+ class EventImageContent < SafetyKit::Internal::Type::BaseModel
451
+ # @!attribute source
452
+ # Image source information.
453
+ #
454
+ # @return [SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source]
455
+ required :source,
456
+ -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source }
457
+
458
+ # @!attribute type
459
+ # Image content part.
460
+ #
461
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Type]
462
+ required :type,
463
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Type }
464
+
465
+ # @!attribute key
466
+ # Stable field key for this content part.
467
+ #
468
+ # @return [String, nil]
469
+ optional :key, String
470
+
471
+ # @!method initialize(source:, type:, key: nil)
472
+ # User-uploaded image content associated with an event.
473
+ #
474
+ # @param source [SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source] Image source information.
475
+ #
476
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Type] Image content part.
477
+ #
478
+ # @param key [String] Stable field key for this content part.
479
+
480
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent#source
481
+ class Source < SafetyKit::Internal::Type::BaseModel
482
+ # @!attribute type
483
+ # URL image source.
484
+ #
485
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source::Type]
486
+ required :type,
487
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source::Type }
488
+
489
+ # @!attribute url
490
+ # URL of the image SafetyKit should compare or analyze.
491
+ #
492
+ # @return [String]
493
+ required :url, String
494
+
495
+ # @!method initialize(type:, url:)
496
+ # Image source information.
497
+ #
498
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source::Type] URL image source.
499
+ #
500
+ # @param url [String] URL of the image SafetyKit should compare or analyze.
501
+
502
+ # URL image source.
503
+ #
504
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent::Source#type
505
+ module Type
506
+ extend SafetyKit::Internal::Type::Enum
507
+
508
+ URL = :url
509
+
510
+ # @!method self.values
511
+ # @return [Array<Symbol>]
512
+ end
513
+ end
514
+
515
+ # Image content part.
516
+ #
517
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent#type
518
+ module Type
519
+ extend SafetyKit::Internal::Type::Enum
520
+
521
+ IMAGE = :image
522
+
523
+ # @!method self.values
524
+ # @return [Array<Symbol>]
525
+ end
526
+ end
527
+
528
+ # @!method self.variants
529
+ # @return [Array(SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Content::EventImageContent)]
530
+ end
531
+
532
+ module Metadata
533
+ extend SafetyKit::Internal::Type::Union
534
+
535
+ variant String
536
+
537
+ variant Float
538
+
539
+ variant SafetyKit::Internal::Type::Boolean
540
+
541
+ variant -> { SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::Metadata::UnionMember3Array }
542
+
543
+ module UnionMember3
544
+ extend SafetyKit::Internal::Type::Union
545
+
546
+ variant String
547
+
548
+ variant Float
549
+
550
+ variant SafetyKit::Internal::Type::Boolean
551
+
552
+ # @!method self.variants
553
+ # @return [Array(String, Float, Boolean)]
554
+ end
555
+
556
+ # @!method self.variants
557
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
558
+
559
+ # @type [SafetyKit::Internal::Type::Converter]
560
+ UnionMember3Array =
561
+ SafetyKit::Internal::Type::ArrayOf[union: -> {
562
+ SafetyKit::Beta::EventCreateParams::Body::ContentUploaded::Metadata::UnionMember3
563
+ }]
564
+ end
565
+
566
+ class ResourcesUsed < SafetyKit::Internal::Type::BaseModel
567
+ # @!attribute type
568
+ # Resource family, such as email, phone, name, address, url, instagram, tiktok,
569
+ # youtube, linkedin, or another stable snake_case identifier.
570
+ #
571
+ # @return [String]
572
+ required :type, String
573
+
574
+ # @!attribute value
575
+ # Resource value used during the event. SafetyKit stores a normalized hash of this
576
+ # value, not the raw value.
577
+ #
578
+ # @return [String]
579
+ required :value, String
580
+
581
+ # @!method initialize(type:, value:)
582
+ # Some parameter documentations has been truncated, see
583
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded::ResourcesUsed}
584
+ # for more details.
585
+ #
586
+ # Real-world or account resource used during the event, such as an email, phone
587
+ # number, address, URL, social handle, or payment identifier.
588
+ #
589
+ # @param type [String] Resource family, such as email, phone, name, address, url, instagram, tiktok, yo
590
+ #
591
+ # @param value [String] Resource value used during the event. SafetyKit stores a normalized hash of this
592
+ end
593
+ end
594
+
595
+ class CreateAccount < SafetyKit::Internal::Type::BaseModel
596
+ # @!attribute event_name
597
+ # Stable, low-cardinality product action name. Use snake_case and put dynamic
598
+ # values in typed fields, content, resources_used, or metadata.
599
+ #
600
+ # @return [String]
601
+ required :event_name, String
602
+
603
+ # @!attribute timestamp
604
+ # The time the event occurred in your system, as an ISO 8601 datetime string.
605
+ #
606
+ # @return [Time]
607
+ required :timestamp, Time
608
+
609
+ # @!attribute type
610
+ #
611
+ # @return [Symbol, :create_account]
612
+ required :type, const: :create_account
613
+
614
+ # @!attribute user_id
615
+ # Your stable canonical identifier for the user or account.
616
+ #
617
+ # @return [String]
618
+ required :user_id, String
619
+
620
+ # @!attribute content
621
+ # User-authored or user-uploaded content parts. Use this for message bodies, bios,
622
+ # listing text, image URLs, and similar content SafetyKit should compare or
623
+ # analyze.
624
+ #
625
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent>, nil]
626
+ optional :content,
627
+ -> { SafetyKit::Internal::Type::ArrayOf[union: SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content] }
628
+
629
+ # @!attribute metadata
630
+ # Non-PII product context for filtering, segmentation, and debugging. Values may
631
+ # be strings, numbers, booleans, or arrays of those scalar values.
632
+ #
633
+ # @return [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}, nil]
634
+ optional :metadata,
635
+ -> { SafetyKit::Internal::Type::HashOf[union: SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Metadata] }
636
+
637
+ # @!attribute resources_used
638
+ # Reusable resources observed during the event. Use this for emails, phone
639
+ # numbers, names, addresses, social handles, URLs, payment identifiers, or similar
640
+ # identifiers.
641
+ #
642
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::ResourcesUsed>, nil]
643
+ optional :resources_used,
644
+ -> { SafetyKit::Internal::Type::ArrayOf[SafetyKit::Beta::EventCreateParams::Body::CreateAccount::ResourcesUsed] }
645
+
646
+ # @!method initialize(event_name:, timestamp:, user_id:, content: nil, metadata: nil, resources_used: nil, type: :create_account)
647
+ # Some parameter documentations has been truncated, see
648
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount} for more
649
+ # details.
650
+ #
651
+ # A user or account is created.
652
+ #
653
+ # @param event_name [String] Stable, low-cardinality product action name. Use snake_case and put dynamic valu
654
+ #
655
+ # @param timestamp [Time] The time the event occurred in your system, as an ISO 8601 datetime string.
656
+ #
657
+ # @param user_id [String] Your stable canonical identifier for the user or account.
658
+ #
659
+ # @param content [Array<SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent>] User-authored or user-uploaded content parts. Use this for message bodies, bios,
660
+ #
661
+ # @param metadata [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}] Non-PII product context for filtering, segmentation, and debugging. Values may b
662
+ #
663
+ # @param resources_used [Array<SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::ResourcesUsed>] Reusable resources observed during the event. Use this for emails, phone numbers
664
+ #
665
+ # @param type [Symbol, :create_account]
666
+
667
+ # User-authored text content associated with an event.
668
+ module Content
669
+ extend SafetyKit::Internal::Type::Union
670
+
671
+ # User-authored text content associated with an event.
672
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent }
673
+
674
+ # User-uploaded image content associated with an event.
675
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent }
676
+
677
+ class EventTextContent < SafetyKit::Internal::Type::BaseModel
678
+ # @!attribute text
679
+ # User-authored text SafetyKit should compare or analyze.
680
+ #
681
+ # @return [String]
682
+ required :text, String
683
+
684
+ # @!attribute type
685
+ # Text content part.
686
+ #
687
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent::Type]
688
+ required :type,
689
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent::Type }
690
+
691
+ # @!attribute key
692
+ # Stable field key for this content part.
693
+ #
694
+ # @return [String, nil]
695
+ optional :key, String
696
+
697
+ # @!method initialize(text:, type:, key: nil)
698
+ # User-authored text content associated with an event.
699
+ #
700
+ # @param text [String] User-authored text SafetyKit should compare or analyze.
701
+ #
702
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent::Type] Text content part.
703
+ #
704
+ # @param key [String] Stable field key for this content part.
705
+
706
+ # Text content part.
707
+ #
708
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent#type
709
+ module Type
710
+ extend SafetyKit::Internal::Type::Enum
711
+
712
+ TEXT = :text
713
+
714
+ # @!method self.values
715
+ # @return [Array<Symbol>]
716
+ end
717
+ end
718
+
719
+ class EventImageContent < SafetyKit::Internal::Type::BaseModel
720
+ # @!attribute source
721
+ # Image source information.
722
+ #
723
+ # @return [SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source]
724
+ required :source,
725
+ -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source }
726
+
727
+ # @!attribute type
728
+ # Image content part.
729
+ #
730
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Type]
731
+ required :type,
732
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Type }
733
+
734
+ # @!attribute key
735
+ # Stable field key for this content part.
736
+ #
737
+ # @return [String, nil]
738
+ optional :key, String
739
+
740
+ # @!method initialize(source:, type:, key: nil)
741
+ # User-uploaded image content associated with an event.
742
+ #
743
+ # @param source [SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source] Image source information.
744
+ #
745
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Type] Image content part.
746
+ #
747
+ # @param key [String] Stable field key for this content part.
748
+
749
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent#source
750
+ class Source < SafetyKit::Internal::Type::BaseModel
751
+ # @!attribute type
752
+ # URL image source.
753
+ #
754
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source::Type]
755
+ required :type,
756
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source::Type }
757
+
758
+ # @!attribute url
759
+ # URL of the image SafetyKit should compare or analyze.
760
+ #
761
+ # @return [String]
762
+ required :url, String
763
+
764
+ # @!method initialize(type:, url:)
765
+ # Image source information.
766
+ #
767
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source::Type] URL image source.
768
+ #
769
+ # @param url [String] URL of the image SafetyKit should compare or analyze.
770
+
771
+ # URL image source.
772
+ #
773
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent::Source#type
774
+ module Type
775
+ extend SafetyKit::Internal::Type::Enum
776
+
777
+ URL = :url
778
+
779
+ # @!method self.values
780
+ # @return [Array<Symbol>]
781
+ end
782
+ end
783
+
784
+ # Image content part.
785
+ #
786
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent#type
787
+ module Type
788
+ extend SafetyKit::Internal::Type::Enum
789
+
790
+ IMAGE = :image
791
+
792
+ # @!method self.values
793
+ # @return [Array<Symbol>]
794
+ end
795
+ end
796
+
797
+ # @!method self.variants
798
+ # @return [Array(SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Content::EventImageContent)]
799
+ end
800
+
801
+ module Metadata
802
+ extend SafetyKit::Internal::Type::Union
803
+
804
+ variant String
805
+
806
+ variant Float
807
+
808
+ variant SafetyKit::Internal::Type::Boolean
809
+
810
+ variant -> { SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::Metadata::UnionMember3Array }
811
+
812
+ module UnionMember3
813
+ extend SafetyKit::Internal::Type::Union
814
+
815
+ variant String
816
+
817
+ variant Float
818
+
819
+ variant SafetyKit::Internal::Type::Boolean
820
+
821
+ # @!method self.variants
822
+ # @return [Array(String, Float, Boolean)]
823
+ end
824
+
825
+ # @!method self.variants
826
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
827
+
828
+ # @type [SafetyKit::Internal::Type::Converter]
829
+ UnionMember3Array =
830
+ SafetyKit::Internal::Type::ArrayOf[union: -> {
831
+ SafetyKit::Beta::EventCreateParams::Body::CreateAccount::Metadata::UnionMember3
832
+ }]
833
+ end
834
+
835
+ class ResourcesUsed < SafetyKit::Internal::Type::BaseModel
836
+ # @!attribute type
837
+ # Resource family, such as email, phone, name, address, url, instagram, tiktok,
838
+ # youtube, linkedin, or another stable snake_case identifier.
839
+ #
840
+ # @return [String]
841
+ required :type, String
842
+
843
+ # @!attribute value
844
+ # Resource value used during the event. SafetyKit stores a normalized hash of this
845
+ # value, not the raw value.
846
+ #
847
+ # @return [String]
848
+ required :value, String
849
+
850
+ # @!method initialize(type:, value:)
851
+ # Some parameter documentations has been truncated, see
852
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount::ResourcesUsed}
853
+ # for more details.
854
+ #
855
+ # Real-world or account resource used during the event, such as an email, phone
856
+ # number, address, URL, social handle, or payment identifier.
857
+ #
858
+ # @param type [String] Resource family, such as email, phone, name, address, url, instagram, tiktok, yo
859
+ #
860
+ # @param value [String] Resource value used during the event. SafetyKit stores a normalized hash of this
861
+ end
862
+ end
863
+
864
+ class UpdateAccount < SafetyKit::Internal::Type::BaseModel
865
+ # @!attribute event_name
866
+ # Stable, low-cardinality product action name. Use snake_case and put dynamic
867
+ # values in typed fields, content, resources_used, or metadata.
868
+ #
869
+ # @return [String]
870
+ required :event_name, String
871
+
872
+ # @!attribute timestamp
873
+ # The time the event occurred in your system, as an ISO 8601 datetime string.
874
+ #
875
+ # @return [Time]
876
+ required :timestamp, Time
877
+
878
+ # @!attribute type
879
+ #
880
+ # @return [Symbol, :update_account]
881
+ required :type, const: :update_account
882
+
883
+ # @!attribute user_id
884
+ # Your stable canonical identifier for the user or account.
885
+ #
886
+ # @return [String]
887
+ required :user_id, String
888
+
889
+ # @!attribute content
890
+ # User-authored or user-uploaded content parts. Use this for message bodies, bios,
891
+ # listing text, image URLs, and similar content SafetyKit should compare or
892
+ # analyze.
893
+ #
894
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent>, nil]
895
+ optional :content,
896
+ -> { SafetyKit::Internal::Type::ArrayOf[union: SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content] }
897
+
898
+ # @!attribute metadata
899
+ # Non-PII product context for filtering, segmentation, and debugging. Values may
900
+ # be strings, numbers, booleans, or arrays of those scalar values.
901
+ #
902
+ # @return [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}, nil]
903
+ optional :metadata,
904
+ -> { SafetyKit::Internal::Type::HashOf[union: SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Metadata] }
905
+
906
+ # @!attribute resources_used
907
+ # Reusable resources observed during the event. Use this for emails, phone
908
+ # numbers, names, addresses, social handles, URLs, payment identifiers, or similar
909
+ # identifiers.
910
+ #
911
+ # @return [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::ResourcesUsed>, nil]
912
+ optional :resources_used,
913
+ -> { SafetyKit::Internal::Type::ArrayOf[SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::ResourcesUsed] }
914
+
915
+ # @!method initialize(event_name:, timestamp:, user_id:, content: nil, metadata: nil, resources_used: nil, type: :update_account)
916
+ # Some parameter documentations has been truncated, see
917
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount} for more
918
+ # details.
919
+ #
920
+ # A user or account profile, contact detail, payment detail, or public bio
921
+ # changes.
922
+ #
923
+ # @param event_name [String] Stable, low-cardinality product action name. Use snake_case and put dynamic valu
924
+ #
925
+ # @param timestamp [Time] The time the event occurred in your system, as an ISO 8601 datetime string.
926
+ #
927
+ # @param user_id [String] Your stable canonical identifier for the user or account.
928
+ #
929
+ # @param content [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent>] User-authored or user-uploaded content parts. Use this for message bodies, bios,
930
+ #
931
+ # @param metadata [Hash{Symbol=>String, Float, Boolean, Array<String, Float, Boolean>}] Non-PII product context for filtering, segmentation, and debugging. Values may b
932
+ #
933
+ # @param resources_used [Array<SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::ResourcesUsed>] Reusable resources observed during the event. Use this for emails, phone numbers
934
+ #
935
+ # @param type [Symbol, :update_account]
936
+
937
+ # User-authored text content associated with an event.
938
+ module Content
939
+ extend SafetyKit::Internal::Type::Union
940
+
941
+ # User-authored text content associated with an event.
942
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent }
943
+
944
+ # User-uploaded image content associated with an event.
945
+ variant -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent }
946
+
947
+ class EventTextContent < SafetyKit::Internal::Type::BaseModel
948
+ # @!attribute text
949
+ # User-authored text SafetyKit should compare or analyze.
950
+ #
951
+ # @return [String]
952
+ required :text, String
953
+
954
+ # @!attribute type
955
+ # Text content part.
956
+ #
957
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent::Type]
958
+ required :type,
959
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent::Type }
960
+
961
+ # @!attribute key
962
+ # Stable field key for this content part.
963
+ #
964
+ # @return [String, nil]
965
+ optional :key, String
966
+
967
+ # @!method initialize(text:, type:, key: nil)
968
+ # User-authored text content associated with an event.
969
+ #
970
+ # @param text [String] User-authored text SafetyKit should compare or analyze.
971
+ #
972
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent::Type] Text content part.
973
+ #
974
+ # @param key [String] Stable field key for this content part.
975
+
976
+ # Text content part.
977
+ #
978
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent#type
979
+ module Type
980
+ extend SafetyKit::Internal::Type::Enum
981
+
982
+ TEXT = :text
983
+
984
+ # @!method self.values
985
+ # @return [Array<Symbol>]
986
+ end
987
+ end
988
+
989
+ class EventImageContent < SafetyKit::Internal::Type::BaseModel
990
+ # @!attribute source
991
+ # Image source information.
992
+ #
993
+ # @return [SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source]
994
+ required :source,
995
+ -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source }
996
+
997
+ # @!attribute type
998
+ # Image content part.
999
+ #
1000
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Type]
1001
+ required :type,
1002
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Type }
1003
+
1004
+ # @!attribute key
1005
+ # Stable field key for this content part.
1006
+ #
1007
+ # @return [String, nil]
1008
+ optional :key, String
1009
+
1010
+ # @!method initialize(source:, type:, key: nil)
1011
+ # User-uploaded image content associated with an event.
1012
+ #
1013
+ # @param source [SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source] Image source information.
1014
+ #
1015
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Type] Image content part.
1016
+ #
1017
+ # @param key [String] Stable field key for this content part.
1018
+
1019
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent#source
1020
+ class Source < SafetyKit::Internal::Type::BaseModel
1021
+ # @!attribute type
1022
+ # URL image source.
1023
+ #
1024
+ # @return [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source::Type]
1025
+ required :type,
1026
+ enum: -> { SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source::Type }
1027
+
1028
+ # @!attribute url
1029
+ # URL of the image SafetyKit should compare or analyze.
1030
+ #
1031
+ # @return [String]
1032
+ required :url, String
1033
+
1034
+ # @!method initialize(type:, url:)
1035
+ # Image source information.
1036
+ #
1037
+ # @param type [Symbol, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source::Type] URL image source.
1038
+ #
1039
+ # @param url [String] URL of the image SafetyKit should compare or analyze.
1040
+
1041
+ # URL image source.
1042
+ #
1043
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent::Source#type
1044
+ module Type
1045
+ extend SafetyKit::Internal::Type::Enum
1046
+
1047
+ URL = :url
1048
+
1049
+ # @!method self.values
1050
+ # @return [Array<Symbol>]
1051
+ end
1052
+ end
1053
+
1054
+ # Image content part.
1055
+ #
1056
+ # @see SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent#type
1057
+ module Type
1058
+ extend SafetyKit::Internal::Type::Enum
1059
+
1060
+ IMAGE = :image
1061
+
1062
+ # @!method self.values
1063
+ # @return [Array<Symbol>]
1064
+ end
1065
+ end
1066
+
1067
+ # @!method self.variants
1068
+ # @return [Array(SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventTextContent, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Content::EventImageContent)]
1069
+ end
1070
+
1071
+ module Metadata
1072
+ extend SafetyKit::Internal::Type::Union
1073
+
1074
+ variant String
1075
+
1076
+ variant Float
1077
+
1078
+ variant SafetyKit::Internal::Type::Boolean
1079
+
1080
+ variant -> { SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::Metadata::UnionMember3Array }
1081
+
1082
+ module UnionMember3
1083
+ extend SafetyKit::Internal::Type::Union
1084
+
1085
+ variant String
1086
+
1087
+ variant Float
1088
+
1089
+ variant SafetyKit::Internal::Type::Boolean
1090
+
1091
+ # @!method self.variants
1092
+ # @return [Array(String, Float, Boolean)]
1093
+ end
1094
+
1095
+ # @!method self.variants
1096
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
1097
+
1098
+ # @type [SafetyKit::Internal::Type::Converter]
1099
+ UnionMember3Array =
1100
+ SafetyKit::Internal::Type::ArrayOf[union: -> {
1101
+ SafetyKit::Beta::EventCreateParams::Body::UpdateAccount::Metadata::UnionMember3
1102
+ }]
1103
+ end
1104
+
1105
+ class ResourcesUsed < SafetyKit::Internal::Type::BaseModel
1106
+ # @!attribute type
1107
+ # Resource family, such as email, phone, name, address, url, instagram, tiktok,
1108
+ # youtube, linkedin, or another stable snake_case identifier.
1109
+ #
1110
+ # @return [String]
1111
+ required :type, String
1112
+
1113
+ # @!attribute value
1114
+ # Resource value used during the event. SafetyKit stores a normalized hash of this
1115
+ # value, not the raw value.
1116
+ #
1117
+ # @return [String]
1118
+ required :value, String
1119
+
1120
+ # @!method initialize(type:, value:)
1121
+ # Some parameter documentations has been truncated, see
1122
+ # {SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount::ResourcesUsed}
1123
+ # for more details.
1124
+ #
1125
+ # Real-world or account resource used during the event, such as an email, phone
1126
+ # number, address, URL, social handle, or payment identifier.
1127
+ #
1128
+ # @param type [String] Resource family, such as email, phone, name, address, url, instagram, tiktok, yo
1129
+ #
1130
+ # @param value [String] Resource value used during the event. SafetyKit stores a normalized hash of this
1131
+ end
1132
+ end
1133
+
1134
+ # @!method self.variants
1135
+ # @return [Array(SafetyKit::Models::Beta::EventCreateParams::Body::UserContact, SafetyKit::Models::Beta::EventCreateParams::Body::ContentUploaded, SafetyKit::Models::Beta::EventCreateParams::Body::CreateAccount, SafetyKit::Models::Beta::EventCreateParams::Body::UpdateAccount)]
1136
+ end
1137
+ end
1138
+ end
1139
+ end
1140
+ end