moderation_api 1.0.0__py3-none-any.whl

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 (93) hide show
  1. moderation_api/__init__.py +102 -0
  2. moderation_api/_base_client.py +1995 -0
  3. moderation_api/_client.py +454 -0
  4. moderation_api/_compat.py +219 -0
  5. moderation_api/_constants.py +14 -0
  6. moderation_api/_exceptions.py +108 -0
  7. moderation_api/_files.py +123 -0
  8. moderation_api/_models.py +857 -0
  9. moderation_api/_qs.py +150 -0
  10. moderation_api/_resource.py +43 -0
  11. moderation_api/_response.py +832 -0
  12. moderation_api/_streaming.py +333 -0
  13. moderation_api/_types.py +260 -0
  14. moderation_api/_utils/__init__.py +64 -0
  15. moderation_api/_utils/_compat.py +45 -0
  16. moderation_api/_utils/_datetime_parse.py +136 -0
  17. moderation_api/_utils/_logs.py +25 -0
  18. moderation_api/_utils/_proxy.py +65 -0
  19. moderation_api/_utils/_reflection.py +42 -0
  20. moderation_api/_utils/_resources_proxy.py +24 -0
  21. moderation_api/_utils/_streams.py +12 -0
  22. moderation_api/_utils/_sync.py +58 -0
  23. moderation_api/_utils/_transform.py +457 -0
  24. moderation_api/_utils/_typing.py +156 -0
  25. moderation_api/_utils/_utils.py +421 -0
  26. moderation_api/_version.py +4 -0
  27. moderation_api/lib/.keep +4 -0
  28. moderation_api/py.typed +0 -0
  29. moderation_api/resources/__init__.py +103 -0
  30. moderation_api/resources/account.py +135 -0
  31. moderation_api/resources/actions/__init__.py +33 -0
  32. moderation_api/resources/actions/actions.py +810 -0
  33. moderation_api/resources/actions/execute.py +354 -0
  34. moderation_api/resources/auth.py +204 -0
  35. moderation_api/resources/authors.py +714 -0
  36. moderation_api/resources/content.py +244 -0
  37. moderation_api/resources/queue/__init__.py +33 -0
  38. moderation_api/resources/queue/items.py +445 -0
  39. moderation_api/resources/queue/queue.py +302 -0
  40. moderation_api/resources/wordlist/__init__.py +33 -0
  41. moderation_api/resources/wordlist/wordlist.py +470 -0
  42. moderation_api/resources/wordlist/words.py +274 -0
  43. moderation_api/types/__init__.py +35 -0
  44. moderation_api/types/account_list_response.py +31 -0
  45. moderation_api/types/action_create_params.py +94 -0
  46. moderation_api/types/action_create_response.py +82 -0
  47. moderation_api/types/action_delete_response.py +13 -0
  48. moderation_api/types/action_list_params.py +13 -0
  49. moderation_api/types/action_list_response.py +113 -0
  50. moderation_api/types/action_retrieve_response.py +105 -0
  51. moderation_api/types/action_update_params.py +94 -0
  52. moderation_api/types/action_update_response.py +82 -0
  53. moderation_api/types/actions/__init__.py +8 -0
  54. moderation_api/types/actions/execute_execute_by_id_params.py +24 -0
  55. moderation_api/types/actions/execute_execute_by_id_response.py +20 -0
  56. moderation_api/types/actions/execute_execute_params.py +30 -0
  57. moderation_api/types/actions/execute_execute_response.py +10 -0
  58. moderation_api/types/auth_create_response.py +16 -0
  59. moderation_api/types/auth_retrieve_response.py +13 -0
  60. moderation_api/types/author_create_params.py +57 -0
  61. moderation_api/types/author_create_response.py +120 -0
  62. moderation_api/types/author_delete_response.py +9 -0
  63. moderation_api/types/author_list_params.py +40 -0
  64. moderation_api/types/author_list_response.py +147 -0
  65. moderation_api/types/author_retrieve_response.py +120 -0
  66. moderation_api/types/author_update_params.py +54 -0
  67. moderation_api/types/author_update_response.py +120 -0
  68. moderation_api/types/content_submit_params.py +352 -0
  69. moderation_api/types/content_submit_response.py +269 -0
  70. moderation_api/types/queue/__init__.py +10 -0
  71. moderation_api/types/queue/item_list_params.py +36 -0
  72. moderation_api/types/queue/item_list_response.py +90 -0
  73. moderation_api/types/queue/item_resolve_params.py +15 -0
  74. moderation_api/types/queue/item_resolve_response.py +19 -0
  75. moderation_api/types/queue/item_unresolve_params.py +15 -0
  76. moderation_api/types/queue/item_unresolve_response.py +17 -0
  77. moderation_api/types/queue_get_stats_params.py +14 -0
  78. moderation_api/types/queue_get_stats_response.py +110 -0
  79. moderation_api/types/queue_retrieve_response.py +64 -0
  80. moderation_api/types/wordlist/__init__.py +8 -0
  81. moderation_api/types/wordlist/word_add_params.py +14 -0
  82. moderation_api/types/wordlist/word_add_response.py +20 -0
  83. moderation_api/types/wordlist/word_remove_params.py +14 -0
  84. moderation_api/types/wordlist/word_remove_response.py +20 -0
  85. moderation_api/types/wordlist_get_embedding_status_response.py +18 -0
  86. moderation_api/types/wordlist_list_response.py +30 -0
  87. moderation_api/types/wordlist_retrieve_response.py +32 -0
  88. moderation_api/types/wordlist_update_params.py +29 -0
  89. moderation_api/types/wordlist_update_response.py +32 -0
  90. moderation_api-1.0.0.dist-info/METADATA +458 -0
  91. moderation_api-1.0.0.dist-info/RECORD +93 -0
  92. moderation_api-1.0.0.dist-info/WHEEL +4 -0
  93. moderation_api-1.0.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,90 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from ..._models import BaseModel
9
+
10
+ __all__ = ["ItemListResponse", "Item", "ItemLabel", "ItemAction", "Pagination"]
11
+
12
+
13
+ class ItemLabel(BaseModel):
14
+ flagged: bool
15
+ """Whether this label caused a flag"""
16
+
17
+ label: str
18
+ """Label name"""
19
+
20
+ score: float
21
+ """Confidence score of the label"""
22
+
23
+
24
+ class ItemAction(BaseModel):
25
+ id: str
26
+ """Action ID"""
27
+
28
+ name: str
29
+ """Action name"""
30
+
31
+ timestamp: float
32
+ """Unix timestamp of when the action was taken"""
33
+
34
+ comment: Optional[str] = None
35
+ """Action comment"""
36
+
37
+ reviewer: Optional[str] = None
38
+ """Moderator userID"""
39
+
40
+
41
+ class Item(BaseModel):
42
+ id: str
43
+ """Content ID"""
44
+
45
+ content: str
46
+ """The content to be moderated"""
47
+
48
+ flagged: bool
49
+ """Whether the item is flagged by any label"""
50
+
51
+ labels: List[ItemLabel]
52
+
53
+ status: Literal["pending", "resolved"]
54
+ """Status of the item"""
55
+
56
+ timestamp: float
57
+ """Unix timestamp of when the item was created"""
58
+
59
+ actions: Optional[List[ItemAction]] = None
60
+ """Action IDs taken on this item"""
61
+
62
+ author_id: Optional[str] = FieldInfo(alias="authorId", default=None)
63
+ """Author ID"""
64
+
65
+ content_type: Optional[str] = FieldInfo(alias="contentType", default=None)
66
+ """Type of the content object"""
67
+
68
+ conversation_id: Optional[str] = FieldInfo(alias="conversationId", default=None)
69
+ """Conversation ID"""
70
+
71
+ language: Optional[str] = None
72
+ """Content language"""
73
+
74
+
75
+ class Pagination(BaseModel):
76
+ current_page: float = FieldInfo(alias="currentPage")
77
+
78
+ has_next_page: bool = FieldInfo(alias="hasNextPage")
79
+
80
+ has_previous_page: bool = FieldInfo(alias="hasPreviousPage")
81
+
82
+ total_items: float = FieldInfo(alias="totalItems")
83
+
84
+ total_pages: float = FieldInfo(alias="totalPages")
85
+
86
+
87
+ class ItemListResponse(BaseModel):
88
+ items: List[Item]
89
+
90
+ pagination: Pagination
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["ItemResolveParams"]
8
+
9
+
10
+ class ItemResolveParams(TypedDict, total=False):
11
+ id: Required[str]
12
+ """The queue ID"""
13
+
14
+ comment: str
15
+ """Optional comment"""
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["ItemResolveResponse"]
10
+
11
+
12
+ class ItemResolveResponse(BaseModel):
13
+ resolved_at: str = FieldInfo(alias="resolvedAt")
14
+ """Timestamp when the item was resolved"""
15
+
16
+ success: bool
17
+
18
+ comment: Optional[str] = None
19
+ """Optional comment"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["ItemUnresolveParams"]
8
+
9
+
10
+ class ItemUnresolveParams(TypedDict, total=False):
11
+ id: Required[str]
12
+ """The queue ID"""
13
+
14
+ comment: str
15
+ """Optional reason for unresolving the item"""
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from pydantic import Field as FieldInfo
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["ItemUnresolveResponse"]
8
+
9
+
10
+ class ItemUnresolveResponse(BaseModel):
11
+ status: str
12
+ """New status of the item"""
13
+
14
+ success: bool
15
+
16
+ unresolved_at: str = FieldInfo(alias="unresolvedAt")
17
+ """Timestamp when the item was unresolved"""
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Annotated, TypedDict
6
+
7
+ from .._utils import PropertyInfo
8
+
9
+ __all__ = ["QueueGetStatsParams"]
10
+
11
+
12
+ class QueueGetStatsParams(TypedDict, total=False):
13
+ within_days: Annotated[str, PropertyInfo(alias="withinDays")]
14
+ """Number of days to analyze statistics for"""
@@ -0,0 +1,110 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = [
10
+ "QueueGetStatsResponse",
11
+ "ActionStat",
12
+ "ReviewStats",
13
+ "TopReviewer",
14
+ "TopReviewerTopAction",
15
+ "Trends",
16
+ "TrendsDailyReviewCount",
17
+ "TrendsFlaggedContentTrend",
18
+ ]
19
+
20
+
21
+ class ActionStat(BaseModel):
22
+ action_id: str = FieldInfo(alias="actionId")
23
+ """ID of the moderation action"""
24
+
25
+ action_name: str = FieldInfo(alias="actionName")
26
+ """Name of the moderation action"""
27
+
28
+ count: float
29
+ """Number of times this action was taken"""
30
+
31
+ percentage_of_total: float = FieldInfo(alias="percentageOfTotal")
32
+ """Percentage this action represents of all actions"""
33
+
34
+
35
+ class ReviewStats(BaseModel):
36
+ average_time_to_review: float = FieldInfo(alias="averageTimeToReview")
37
+ """Average time in milliseconds to review an item"""
38
+
39
+ total_pending: float = FieldInfo(alias="totalPending")
40
+ """Total number of items pending review"""
41
+
42
+ total_reviewed: float = FieldInfo(alias="totalReviewed")
43
+ """Total number of items reviewed"""
44
+
45
+
46
+ class TopReviewerTopAction(BaseModel):
47
+ action_id: str = FieldInfo(alias="actionId")
48
+ """Most used action by this reviewer"""
49
+
50
+ action_name: str = FieldInfo(alias="actionName")
51
+ """Name of the most used action"""
52
+
53
+ count: float
54
+ """Number of times this action was used"""
55
+
56
+
57
+ class TopReviewer(BaseModel):
58
+ average_time_per_review: float = FieldInfo(alias="averageTimePerReview")
59
+ """Average review time in milliseconds"""
60
+
61
+ name: str
62
+ """Name of the reviewer"""
63
+
64
+ review_count: float = FieldInfo(alias="reviewCount")
65
+ """Number of items reviewed"""
66
+
67
+ top_actions: List[TopReviewerTopAction] = FieldInfo(alias="topActions")
68
+ """Most common actions taken by this reviewer"""
69
+
70
+ user_id: str = FieldInfo(alias="userId")
71
+ """ID of the reviewer"""
72
+
73
+ accuracy_score: Optional[float] = FieldInfo(alias="accuracyScore", default=None)
74
+ """Optional accuracy score based on review quality metrics"""
75
+
76
+
77
+ class TrendsDailyReviewCount(BaseModel):
78
+ count: float
79
+ """Number of reviews on this date"""
80
+
81
+ date: str
82
+ """Date in YYYY-MM-DD format"""
83
+
84
+
85
+ class TrendsFlaggedContentTrend(BaseModel):
86
+ label: str
87
+ """Content flag/label"""
88
+
89
+ trend: float
90
+ """
91
+ Trend indicator (-1 to 1) showing if this type of flagged content is increasing
92
+ or decreasing
93
+ """
94
+
95
+
96
+ class Trends(BaseModel):
97
+ daily_review_counts: List[TrendsDailyReviewCount] = FieldInfo(alias="dailyReviewCounts")
98
+
99
+ flagged_content_trends: List[TrendsFlaggedContentTrend] = FieldInfo(alias="flaggedContentTrends")
100
+
101
+
102
+ class QueueGetStatsResponse(BaseModel):
103
+ action_stats: List[ActionStat] = FieldInfo(alias="actionStats")
104
+
105
+ review_stats: ReviewStats = FieldInfo(alias="reviewStats")
106
+
107
+ top_reviewers: List[TopReviewer] = FieldInfo(alias="topReviewers")
108
+ """List of top reviewers and their statistics"""
109
+
110
+ trends: Trends
@@ -0,0 +1,64 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from .._models import BaseModel
9
+
10
+ __all__ = ["QueueRetrieveResponse", "Queue", "QueueFilter", "QueueFilterFilterLabel"]
11
+
12
+
13
+ class QueueFilterFilterLabel(BaseModel):
14
+ label: str
15
+
16
+ type: Literal["FLAGGED", "NOT_FLAGGED", "THRESHOLDS"]
17
+
18
+ max_threshold: Optional[float] = FieldInfo(alias="maxThreshold", default=None)
19
+
20
+ min_threshold: Optional[float] = FieldInfo(alias="minThreshold", default=None)
21
+
22
+
23
+ class QueueFilter(BaseModel):
24
+ after_date: Optional[str] = FieldInfo(alias="afterDate", default=None)
25
+
26
+ author_id: Optional[str] = FieldInfo(alias="authorID", default=None)
27
+
28
+ before_date: Optional[str] = FieldInfo(alias="beforeDate", default=None)
29
+
30
+ conversation_ids: Optional[List[Optional[str]]] = FieldInfo(alias="conversationIds", default=None)
31
+
32
+ filtered_action_ids: Optional[List[str]] = FieldInfo(alias="filteredActionIds", default=None)
33
+
34
+ filtered_channel_ids: Optional[List[str]] = FieldInfo(alias="filteredChannelIds", default=None)
35
+
36
+ filter_labels: Optional[List[QueueFilterFilterLabel]] = FieldInfo(alias="filterLabels", default=None)
37
+
38
+ labels: Optional[List[str]] = None
39
+
40
+ recommendation_actions: Optional[List[Literal["review", "allow", "reject"]]] = FieldInfo(
41
+ alias="recommendationActions", default=None
42
+ )
43
+
44
+ show_checked: Optional[bool] = FieldInfo(alias="showChecked", default=None)
45
+
46
+
47
+ class Queue(BaseModel):
48
+ id: str
49
+
50
+ description: str
51
+
52
+ filter: QueueFilter
53
+
54
+ name: str
55
+
56
+ resolved_items_count: float = FieldInfo(alias="resolvedItemsCount")
57
+
58
+ total_items_count: float = FieldInfo(alias="totalItemsCount")
59
+
60
+ unresolved_items_count: float = FieldInfo(alias="unresolvedItemsCount")
61
+
62
+
63
+ class QueueRetrieveResponse(BaseModel):
64
+ queue: Queue
@@ -0,0 +1,8 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .word_add_params import WordAddParams as WordAddParams
6
+ from .word_add_response import WordAddResponse as WordAddResponse
7
+ from .word_remove_params import WordRemoveParams as WordRemoveParams
8
+ from .word_remove_response import WordRemoveResponse as WordRemoveResponse
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ from ..._types import SequenceNotStr
8
+
9
+ __all__ = ["WordAddParams"]
10
+
11
+
12
+ class WordAddParams(TypedDict, total=False):
13
+ words: Required[SequenceNotStr[str]]
14
+ """Array of words to add to the wordlist. Duplicate words will be ignored."""
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["WordAddResponse"]
10
+
11
+
12
+ class WordAddResponse(BaseModel):
13
+ added_count: float = FieldInfo(alias="addedCount")
14
+ """Number of words added"""
15
+
16
+ added_words: List[str] = FieldInfo(alias="addedWords")
17
+ """List of words that were added"""
18
+
19
+ total_count: float = FieldInfo(alias="totalCount")
20
+ """Total number of words in wordlist"""
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ from ..._types import SequenceNotStr
8
+
9
+ __all__ = ["WordRemoveParams"]
10
+
11
+
12
+ class WordRemoveParams(TypedDict, total=False):
13
+ words: Required[SequenceNotStr[str]]
14
+ """Array of words to remove from the wordlist"""
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["WordRemoveResponse"]
10
+
11
+
12
+ class WordRemoveResponse(BaseModel):
13
+ removed_count: float = FieldInfo(alias="removedCount")
14
+ """Number of words removed"""
15
+
16
+ removed_words: List[str] = FieldInfo(alias="removedWords")
17
+ """List of words removed"""
18
+
19
+ total_count: float = FieldInfo(alias="totalCount")
20
+ """Total number of words in wordlist"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from pydantic import Field as FieldInfo
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["WordlistGetEmbeddingStatusResponse"]
8
+
9
+
10
+ class WordlistGetEmbeddingStatusResponse(BaseModel):
11
+ progress: float
12
+ """Percentage of words that have been embedded (0-100)"""
13
+
14
+ remaining_words: float = FieldInfo(alias="remainingWords")
15
+ """Number of words still waiting to be embedded"""
16
+
17
+ total_words: float = FieldInfo(alias="totalWords")
18
+ """Total number of words in the wordlist"""
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import TypeAlias
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from .._models import BaseModel
9
+
10
+ __all__ = ["WordlistListResponse", "WordlistListResponseItem"]
11
+
12
+
13
+ class WordlistListResponseItem(BaseModel):
14
+ id: str
15
+ """Unique identifier of the wordlist"""
16
+
17
+ created_at: Optional[str] = FieldInfo(alias="createdAt", default=None)
18
+ """When the wordlist was created"""
19
+
20
+ description: Optional[str] = None
21
+ """Description of the wordlist"""
22
+
23
+ name: Optional[str] = None
24
+ """Name of the wordlist"""
25
+
26
+ user_id: Optional[str] = FieldInfo(alias="userId", default=None)
27
+ """User who created the wordlist"""
28
+
29
+
30
+ WordlistListResponse: TypeAlias = List[WordlistListResponseItem]
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["WordlistRetrieveResponse"]
10
+
11
+
12
+ class WordlistRetrieveResponse(BaseModel):
13
+ id: str
14
+ """ID of the wordlist"""
15
+
16
+ created_at: str = FieldInfo(alias="createdAt")
17
+ """Creation date of the wordlist"""
18
+
19
+ name: Optional[str] = None
20
+ """Name of the wordlist"""
21
+
22
+ organization_id: str = FieldInfo(alias="organizationId")
23
+ """ID of the organization"""
24
+
25
+ strict: bool
26
+ """Strict mode"""
27
+
28
+ user_id: Optional[str] = FieldInfo(alias="userId", default=None)
29
+ """ID of the user"""
30
+
31
+ words: List[str]
32
+ """Words in the wordlist"""
@@ -0,0 +1,29 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from .._types import SequenceNotStr
8
+
9
+ __all__ = ["WordlistUpdateParams"]
10
+
11
+
12
+ class WordlistUpdateParams(TypedDict, total=False):
13
+ description: str
14
+ """New description for the wordlist"""
15
+
16
+ key: str
17
+ """New key for the wordlist"""
18
+
19
+ name: str
20
+ """New name for the wordlist"""
21
+
22
+ strict: bool
23
+ """Deprecated. Now using threshold in project settings."""
24
+
25
+ words: SequenceNotStr[str]
26
+ """New words for the wordlist.
27
+
28
+ Replace the existing words with these new ones. Duplicate words will be ignored.
29
+ """
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["WordlistUpdateResponse"]
10
+
11
+
12
+ class WordlistUpdateResponse(BaseModel):
13
+ id: str
14
+ """ID of the wordlist"""
15
+
16
+ created_at: str = FieldInfo(alias="createdAt")
17
+ """Creation date of the wordlist"""
18
+
19
+ name: Optional[str] = None
20
+ """Name of the wordlist"""
21
+
22
+ organization_id: str = FieldInfo(alias="organizationId")
23
+ """ID of the organization"""
24
+
25
+ strict: bool
26
+ """Strict mode"""
27
+
28
+ user_id: Optional[str] = FieldInfo(alias="userId", default=None)
29
+ """ID of the user"""
30
+
31
+ words: List[str]
32
+ """Words in the wordlist"""