insion 1.0.1

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 (75) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +21 -0
  3. data/README.md +172 -0
  4. data/changelog.md +4 -0
  5. data/lib/Insion/client.rb +404 -0
  6. data/lib/Insion/environment.rb +7 -0
  7. data/lib/Insion/errors/api_error.rb +8 -0
  8. data/lib/Insion/errors/client_error.rb +17 -0
  9. data/lib/Insion/errors/redirect_error.rb +8 -0
  10. data/lib/Insion/errors/response_error.rb +42 -0
  11. data/lib/Insion/errors/server_error.rb +11 -0
  12. data/lib/Insion/errors/timeout_error.rb +8 -0
  13. data/lib/Insion/internal/errors/constraint_error.rb +10 -0
  14. data/lib/Insion/internal/errors/type_error.rb +10 -0
  15. data/lib/Insion/internal/http/base_request.rb +51 -0
  16. data/lib/Insion/internal/http/raw_client.rb +248 -0
  17. data/lib/Insion/internal/iterators/cursor_item_iterator.rb +28 -0
  18. data/lib/Insion/internal/iterators/cursor_page_iterator.rb +63 -0
  19. data/lib/Insion/internal/iterators/item_iterator.rb +65 -0
  20. data/lib/Insion/internal/iterators/offset_item_iterator.rb +30 -0
  21. data/lib/Insion/internal/iterators/offset_page_iterator.rb +103 -0
  22. data/lib/Insion/internal/json/request.rb +41 -0
  23. data/lib/Insion/internal/json/serializable.rb +25 -0
  24. data/lib/Insion/internal/multipart/multipart_encoder.rb +141 -0
  25. data/lib/Insion/internal/multipart/multipart_form_data.rb +78 -0
  26. data/lib/Insion/internal/multipart/multipart_form_data_part.rb +51 -0
  27. data/lib/Insion/internal/multipart/multipart_request.rb +40 -0
  28. data/lib/Insion/internal/types/array.rb +47 -0
  29. data/lib/Insion/internal/types/boolean.rb +34 -0
  30. data/lib/Insion/internal/types/enum.rb +56 -0
  31. data/lib/Insion/internal/types/hash.rb +36 -0
  32. data/lib/Insion/internal/types/model/field.rb +38 -0
  33. data/lib/Insion/internal/types/model.rb +208 -0
  34. data/lib/Insion/internal/types/type.rb +35 -0
  35. data/lib/Insion/internal/types/union.rb +161 -0
  36. data/lib/Insion/internal/types/unknown.rb +15 -0
  37. data/lib/Insion/internal/types/utils.rb +116 -0
  38. data/lib/Insion/types/content.rb +13 -0
  39. data/lib/Insion/types/content_external_urls.rb +13 -0
  40. data/lib/Insion/types/create_appeal_response.rb +9 -0
  41. data/lib/Insion/types/create_appeal_response_data.rb +19 -0
  42. data/lib/Insion/types/create_appeal_response_data_action_status.rb +13 -0
  43. data/lib/Insion/types/delete_api_v1ingest_request.rb +9 -0
  44. data/lib/Insion/types/error_response.rb +9 -0
  45. data/lib/Insion/types/error_response_error.rb +9 -0
  46. data/lib/Insion/types/get_api_v1records_record_id_request.rb +9 -0
  47. data/lib/Insion/types/get_api_v1records_request.rb +21 -0
  48. data/lib/Insion/types/get_api_v1records_request_status.rb +12 -0
  49. data/lib/Insion/types/get_api_v1users_request.rb +21 -0
  50. data/lib/Insion/types/get_api_v1users_request_status.rb +13 -0
  51. data/lib/Insion/types/get_api_v1users_user_id_request.rb +9 -0
  52. data/lib/Insion/types/ingest_record_request.rb +23 -0
  53. data/lib/Insion/types/ingest_record_response.rb +15 -0
  54. data/lib/Insion/types/ingest_user_response.rb +11 -0
  55. data/lib/Insion/types/list_records_response.rb +11 -0
  56. data/lib/Insion/types/list_users_response.rb +11 -0
  57. data/lib/Insion/types/metadata.rb +23 -0
  58. data/lib/Insion/types/moderate_request.rb +23 -0
  59. data/lib/Insion/types/moderate_response.rb +21 -0
  60. data/lib/Insion/types/moderate_response_status.rb +12 -0
  61. data/lib/Insion/types/post_api_v1users_user_id_create_appeal_request.rb +11 -0
  62. data/lib/Insion/types/record.rb +35 -0
  63. data/lib/Insion/types/record_input.rb +21 -0
  64. data/lib/Insion/types/record_moderation_status.rb +12 -0
  65. data/lib/Insion/types/record_response.rb +9 -0
  66. data/lib/Insion/types/success_response.rb +9 -0
  67. data/lib/Insion/types/user.rb +33 -0
  68. data/lib/Insion/types/user_action_status.rb +13 -0
  69. data/lib/Insion/types/user_input.rb +23 -0
  70. data/lib/Insion/types/user_response.rb +9 -0
  71. data/lib/Insion/version.rb +5 -0
  72. data/lib/Insion.rb +72 -0
  73. data/lib/insion.rb +4 -0
  74. data/reference.md +676 -0
  75. metadata +121 -0
data/reference.md ADDED
@@ -0,0 +1,676 @@
1
+ # Reference
2
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">moderate_a_record</a>(request) -> Insion::Types::ModerateResponse</code></summary>
3
+ <dl>
4
+ <dd>
5
+
6
+ #### 📝 Description
7
+
8
+ <dl>
9
+ <dd>
10
+
11
+ <dl>
12
+ <dd>
13
+
14
+ Create or update a record and return its moderation result immediately.
15
+ </dd>
16
+ </dl>
17
+ </dd>
18
+ </dl>
19
+
20
+ #### 🔌 Usage
21
+
22
+ <dl>
23
+ <dd>
24
+
25
+ <dl>
26
+ <dd>
27
+
28
+ ```ruby
29
+ client.moderate_a_record(
30
+ client_id: "clientId",
31
+ name: "name",
32
+ entity: "entity",
33
+ content: "content"
34
+ )
35
+ ```
36
+ </dd>
37
+ </dl>
38
+ </dd>
39
+ </dl>
40
+
41
+ #### ⚙️ Parameters
42
+
43
+ <dl>
44
+ <dd>
45
+
46
+ <dl>
47
+ <dd>
48
+
49
+ **passthrough:** `Internal::Types::Boolean` — Moderate without persisting the record's name or content, or the user's email, name, or username.
50
+
51
+ </dd>
52
+ </dl>
53
+
54
+ <dl>
55
+ <dd>
56
+
57
+ **request_options:** `Insion::RequestOptions`
58
+
59
+ </dd>
60
+ </dl>
61
+ </dd>
62
+ </dl>
63
+
64
+
65
+ </dd>
66
+ </dl>
67
+ </details>
68
+
69
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">ingest_a_record</a>(request) -> Insion::Types::IngestRecordResponse</code></summary>
70
+ <dl>
71
+ <dd>
72
+
73
+ #### 📝 Description
74
+
75
+ <dl>
76
+ <dd>
77
+
78
+ <dl>
79
+ <dd>
80
+
81
+ Create or update a content record for asynchronous moderation. Results are delivered through webhook events when moderation is performed.
82
+ </dd>
83
+ </dl>
84
+ </dd>
85
+ </dl>
86
+
87
+ #### 🔌 Usage
88
+
89
+ <dl>
90
+ <dd>
91
+
92
+ <dl>
93
+ <dd>
94
+
95
+ ```ruby
96
+ client.ingest_a_record(
97
+ client_id: "clientId",
98
+ name: "name",
99
+ entity: "entity",
100
+ content: "content"
101
+ )
102
+ ```
103
+ </dd>
104
+ </dl>
105
+ </dd>
106
+ </dl>
107
+
108
+ #### ⚙️ Parameters
109
+
110
+ <dl>
111
+ <dd>
112
+
113
+ <dl>
114
+ <dd>
115
+
116
+ **request:** `Insion::Types::RecordInput`
117
+
118
+ </dd>
119
+ </dl>
120
+
121
+ <dl>
122
+ <dd>
123
+
124
+ **request_options:** `Insion::RequestOptions`
125
+
126
+ </dd>
127
+ </dl>
128
+ </dd>
129
+ </dl>
130
+
131
+
132
+ </dd>
133
+ </dl>
134
+ </details>
135
+
136
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">delete_a_record</a>(request) -> Insion::Types::SuccessResponse</code></summary>
137
+ <dl>
138
+ <dd>
139
+
140
+ #### 📝 Description
141
+
142
+ <dl>
143
+ <dd>
144
+
145
+ <dl>
146
+ <dd>
147
+
148
+ Remove a record from the moderation system by its client ID.
149
+ </dd>
150
+ </dl>
151
+ </dd>
152
+ </dl>
153
+
154
+ #### 🔌 Usage
155
+
156
+ <dl>
157
+ <dd>
158
+
159
+ <dl>
160
+ <dd>
161
+
162
+ ```ruby
163
+ client.delete_a_record(client_id: "clientId")
164
+ ```
165
+ </dd>
166
+ </dl>
167
+ </dd>
168
+ </dl>
169
+
170
+ #### ⚙️ Parameters
171
+
172
+ <dl>
173
+ <dd>
174
+
175
+ <dl>
176
+ <dd>
177
+
178
+ **client_id:** `String` — Your unique identifier for the record.
179
+
180
+ </dd>
181
+ </dl>
182
+
183
+ <dl>
184
+ <dd>
185
+
186
+ **request_options:** `Insion::RequestOptions`
187
+
188
+ </dd>
189
+ </dl>
190
+ </dd>
191
+ </dl>
192
+
193
+
194
+ </dd>
195
+ </dl>
196
+ </details>
197
+
198
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">ingest_a_user</a>(request) -> Insion::Types::IngestUserResponse</code></summary>
199
+ <dl>
200
+ <dd>
201
+
202
+ #### 📝 Description
203
+
204
+ <dl>
205
+ <dd>
206
+
207
+ <dl>
208
+ <dd>
209
+
210
+ Create or update a user without ingesting a record.
211
+ </dd>
212
+ </dl>
213
+ </dd>
214
+ </dl>
215
+
216
+ #### 🔌 Usage
217
+
218
+ <dl>
219
+ <dd>
220
+
221
+ <dl>
222
+ <dd>
223
+
224
+ ```ruby
225
+ client.ingest_a_user(client_id: "clientId")
226
+ ```
227
+ </dd>
228
+ </dl>
229
+ </dd>
230
+ </dl>
231
+
232
+ #### ⚙️ Parameters
233
+
234
+ <dl>
235
+ <dd>
236
+
237
+ <dl>
238
+ <dd>
239
+
240
+ **request:** `Insion::Types::UserInput`
241
+
242
+ </dd>
243
+ </dl>
244
+
245
+ <dl>
246
+ <dd>
247
+
248
+ **request_options:** `Insion::RequestOptions`
249
+
250
+ </dd>
251
+ </dl>
252
+ </dd>
253
+ </dl>
254
+
255
+
256
+ </dd>
257
+ </dl>
258
+ </details>
259
+
260
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">list_records</a>() -> Insion::Types::ListRecordsResponse</code></summary>
261
+ <dl>
262
+ <dd>
263
+
264
+ #### 📝 Description
265
+
266
+ <dl>
267
+ <dd>
268
+
269
+ <dl>
270
+ <dd>
271
+
272
+ List the records belonging to the authenticated organization.
273
+ </dd>
274
+ </dl>
275
+ </dd>
276
+ </dl>
277
+
278
+ #### 🔌 Usage
279
+
280
+ <dl>
281
+ <dd>
282
+
283
+ <dl>
284
+ <dd>
285
+
286
+ ```ruby
287
+ client.list_records
288
+ ```
289
+ </dd>
290
+ </dl>
291
+ </dd>
292
+ </dl>
293
+
294
+ #### ⚙️ Parameters
295
+
296
+ <dl>
297
+ <dd>
298
+
299
+ <dl>
300
+ <dd>
301
+
302
+ **limit:** `Integer` — Maximum number of items to return.
303
+
304
+ </dd>
305
+ </dl>
306
+
307
+ <dl>
308
+ <dd>
309
+
310
+ **starting_after:** `String` — Return items after this Insion ID. Cannot be used with ending_before.
311
+
312
+ </dd>
313
+ </dl>
314
+
315
+ <dl>
316
+ <dd>
317
+
318
+ **ending_before:** `String` — Return items before this Insion ID. Cannot be used with starting_after.
319
+
320
+ </dd>
321
+ </dl>
322
+
323
+ <dl>
324
+ <dd>
325
+
326
+ **client_id:** `String` — Filter by your record identifier.
327
+
328
+ </dd>
329
+ </dl>
330
+
331
+ <dl>
332
+ <dd>
333
+
334
+ **user:** `String` — Filter by Insion user ID.
335
+
336
+ </dd>
337
+ </dl>
338
+
339
+ <dl>
340
+ <dd>
341
+
342
+ **entity:** `String` — Filter by record entity.
343
+
344
+ </dd>
345
+ </dl>
346
+
347
+ <dl>
348
+ <dd>
349
+
350
+ **status:** `Insion::Types::GetAPIV1RecordsRequestStatus` — Filter by moderation status.
351
+
352
+ </dd>
353
+ </dl>
354
+
355
+ <dl>
356
+ <dd>
357
+
358
+ **request_options:** `Insion::RequestOptions`
359
+
360
+ </dd>
361
+ </dl>
362
+ </dd>
363
+ </dl>
364
+
365
+
366
+ </dd>
367
+ </dl>
368
+ </details>
369
+
370
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">retrieve_a_record</a>(record_id:) -> Insion::Types::RecordResponse</code></summary>
371
+ <dl>
372
+ <dd>
373
+
374
+ #### 📝 Description
375
+
376
+ <dl>
377
+ <dd>
378
+
379
+ <dl>
380
+ <dd>
381
+
382
+ Retrieve one record by its Insion record ID.
383
+ </dd>
384
+ </dl>
385
+ </dd>
386
+ </dl>
387
+
388
+ #### 🔌 Usage
389
+
390
+ <dl>
391
+ <dd>
392
+
393
+ <dl>
394
+ <dd>
395
+
396
+ ```ruby
397
+ client.retrieve_a_record(record_id: "recordId")
398
+ ```
399
+ </dd>
400
+ </dl>
401
+ </dd>
402
+ </dl>
403
+
404
+ #### ⚙️ Parameters
405
+
406
+ <dl>
407
+ <dd>
408
+
409
+ <dl>
410
+ <dd>
411
+
412
+ **record_id:** `String` — Insion record ID.
413
+
414
+ </dd>
415
+ </dl>
416
+
417
+ <dl>
418
+ <dd>
419
+
420
+ **request_options:** `Insion::RequestOptions`
421
+
422
+ </dd>
423
+ </dl>
424
+ </dd>
425
+ </dl>
426
+
427
+
428
+ </dd>
429
+ </dl>
430
+ </details>
431
+
432
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">list_users</a>() -> Insion::Types::ListUsersResponse</code></summary>
433
+ <dl>
434
+ <dd>
435
+
436
+ #### 📝 Description
437
+
438
+ <dl>
439
+ <dd>
440
+
441
+ <dl>
442
+ <dd>
443
+
444
+ List the users belonging to the authenticated organization.
445
+ </dd>
446
+ </dl>
447
+ </dd>
448
+ </dl>
449
+
450
+ #### 🔌 Usage
451
+
452
+ <dl>
453
+ <dd>
454
+
455
+ <dl>
456
+ <dd>
457
+
458
+ ```ruby
459
+ client.list_users
460
+ ```
461
+ </dd>
462
+ </dl>
463
+ </dd>
464
+ </dl>
465
+
466
+ #### ⚙️ Parameters
467
+
468
+ <dl>
469
+ <dd>
470
+
471
+ <dl>
472
+ <dd>
473
+
474
+ **limit:** `Integer` — Maximum number of items to return.
475
+
476
+ </dd>
477
+ </dl>
478
+
479
+ <dl>
480
+ <dd>
481
+
482
+ **starting_after:** `String` — Return items after this Insion ID. Cannot be used with ending_before.
483
+
484
+ </dd>
485
+ </dl>
486
+
487
+ <dl>
488
+ <dd>
489
+
490
+ **ending_before:** `String` — Return items before this Insion ID. Cannot be used with starting_after.
491
+
492
+ </dd>
493
+ </dl>
494
+
495
+ <dl>
496
+ <dd>
497
+
498
+ **client_id:** `String` — Filter by your user identifier.
499
+
500
+ </dd>
501
+ </dl>
502
+
503
+ <dl>
504
+ <dd>
505
+
506
+ **email:** `String` — Filter by user email.
507
+
508
+ </dd>
509
+ </dl>
510
+
511
+ <dl>
512
+ <dd>
513
+
514
+ **status:** `Insion::Types::GetAPIV1UsersRequestStatus` — Filter by user action status.
515
+
516
+ </dd>
517
+ </dl>
518
+
519
+ <dl>
520
+ <dd>
521
+
522
+ **user:** `String` — Filter by Insion user ID.
523
+
524
+ </dd>
525
+ </dl>
526
+
527
+ <dl>
528
+ <dd>
529
+
530
+ **request_options:** `Insion::RequestOptions`
531
+
532
+ </dd>
533
+ </dl>
534
+ </dd>
535
+ </dl>
536
+
537
+
538
+ </dd>
539
+ </dl>
540
+ </details>
541
+
542
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">retrieve_a_user</a>(user_id:) -> Insion::Types::UserResponse</code></summary>
543
+ <dl>
544
+ <dd>
545
+
546
+ #### 📝 Description
547
+
548
+ <dl>
549
+ <dd>
550
+
551
+ <dl>
552
+ <dd>
553
+
554
+ Retrieve one user by its Insion user ID.
555
+ </dd>
556
+ </dl>
557
+ </dd>
558
+ </dl>
559
+
560
+ #### 🔌 Usage
561
+
562
+ <dl>
563
+ <dd>
564
+
565
+ <dl>
566
+ <dd>
567
+
568
+ ```ruby
569
+ client.retrieve_a_user(user_id: "userId")
570
+ ```
571
+ </dd>
572
+ </dl>
573
+ </dd>
574
+ </dl>
575
+
576
+ #### ⚙️ Parameters
577
+
578
+ <dl>
579
+ <dd>
580
+
581
+ <dl>
582
+ <dd>
583
+
584
+ **user_id:** `String` — Insion user ID.
585
+
586
+ </dd>
587
+ </dl>
588
+
589
+ <dl>
590
+ <dd>
591
+
592
+ **request_options:** `Insion::RequestOptions`
593
+
594
+ </dd>
595
+ </dl>
596
+ </dd>
597
+ </dl>
598
+
599
+
600
+ </dd>
601
+ </dl>
602
+ </details>
603
+
604
+ <details><summary><code>client.<a href="/lib/Insion/client.rb">create_an_appeal</a>(user_id:, request) -> Insion::Types::CreateAppealResponse</code></summary>
605
+ <dl>
606
+ <dd>
607
+
608
+ #### 📝 Description
609
+
610
+ <dl>
611
+ <dd>
612
+
613
+ <dl>
614
+ <dd>
615
+
616
+ Create an appeal for a suspended user. Appeals must be enabled for the organization.
617
+ </dd>
618
+ </dl>
619
+ </dd>
620
+ </dl>
621
+
622
+ #### 🔌 Usage
623
+
624
+ <dl>
625
+ <dd>
626
+
627
+ <dl>
628
+ <dd>
629
+
630
+ ```ruby
631
+ client.create_an_appeal(
632
+ user_id: "userId",
633
+ text: "text"
634
+ )
635
+ ```
636
+ </dd>
637
+ </dl>
638
+ </dd>
639
+ </dl>
640
+
641
+ #### ⚙️ Parameters
642
+
643
+ <dl>
644
+ <dd>
645
+
646
+ <dl>
647
+ <dd>
648
+
649
+ **user_id:** `String` — Insion user ID.
650
+
651
+ </dd>
652
+ </dl>
653
+
654
+ <dl>
655
+ <dd>
656
+
657
+ **text:** `String` — The appeal message.
658
+
659
+ </dd>
660
+ </dl>
661
+
662
+ <dl>
663
+ <dd>
664
+
665
+ **request_options:** `Insion::RequestOptions`
666
+
667
+ </dd>
668
+ </dl>
669
+ </dd>
670
+ </dl>
671
+
672
+
673
+ </dd>
674
+ </dl>
675
+ </details>
676
+