profound 0.6.0__tar.gz → 0.8.0__tar.gz

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.

Potentially problematic release.


This version of profound might be problematic. Click here for more details.

Files changed (113) hide show
  1. profound-0.8.0/.release-please-manifest.json +3 -0
  2. {profound-0.6.0 → profound-0.8.0}/CHANGELOG.md +16 -0
  3. {profound-0.6.0 → profound-0.8.0}/PKG-INFO +1 -1
  4. {profound-0.6.0 → profound-0.8.0}/pyproject.toml +1 -1
  5. {profound-0.6.0 → profound-0.8.0}/src/profound/_version.py +1 -1
  6. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/logs/raw.py +4 -8
  7. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/prompts.py +4 -0
  8. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/reports.py +14 -16
  9. profound-0.8.0/src/profound/types/logs/raw_bots_params.py +288 -0
  10. profound-0.8.0/src/profound/types/logs/raw_logs_params.py +285 -0
  11. profound-0.8.0/src/profound/types/prompt_answers_params.py +142 -0
  12. profound-0.8.0/src/profound/types/report_citations_params.py +219 -0
  13. profound-0.8.0/src/profound/types/report_sentiment_params.py +175 -0
  14. {profound-0.6.0 → profound-0.8.0}/src/profound/types/report_visibility_params.py +80 -12
  15. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/logs/test_raw.py +2 -2
  16. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/test_prompts.py +4 -4
  17. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/test_reports.py +4 -4
  18. profound-0.6.0/.release-please-manifest.json +0 -3
  19. profound-0.6.0/src/profound/types/logs/raw_bots_params.py +0 -111
  20. profound-0.6.0/src/profound/types/logs/raw_logs_params.py +0 -99
  21. profound-0.6.0/src/profound/types/prompt_answers_params.py +0 -84
  22. profound-0.6.0/src/profound/types/report_citations_params.py +0 -85
  23. profound-0.6.0/src/profound/types/report_sentiment_params.py +0 -83
  24. {profound-0.6.0 → profound-0.8.0}/.gitignore +0 -0
  25. {profound-0.6.0 → profound-0.8.0}/CONTRIBUTING.md +0 -0
  26. {profound-0.6.0 → profound-0.8.0}/LICENSE +0 -0
  27. {profound-0.6.0 → profound-0.8.0}/README.md +0 -0
  28. {profound-0.6.0 → profound-0.8.0}/SECURITY.md +0 -0
  29. {profound-0.6.0 → profound-0.8.0}/api.md +0 -0
  30. {profound-0.6.0 → profound-0.8.0}/bin/check-release-environment +0 -0
  31. {profound-0.6.0 → profound-0.8.0}/bin/publish-pypi +0 -0
  32. {profound-0.6.0 → profound-0.8.0}/examples/.keep +0 -0
  33. {profound-0.6.0 → profound-0.8.0}/noxfile.py +0 -0
  34. {profound-0.6.0 → profound-0.8.0}/release-please-config.json +0 -0
  35. {profound-0.6.0 → profound-0.8.0}/requirements-dev.lock +0 -0
  36. {profound-0.6.0 → profound-0.8.0}/requirements.lock +0 -0
  37. {profound-0.6.0 → profound-0.8.0}/src/profound/__init__.py +0 -0
  38. {profound-0.6.0 → profound-0.8.0}/src/profound/_base_client.py +0 -0
  39. {profound-0.6.0 → profound-0.8.0}/src/profound/_client.py +0 -0
  40. {profound-0.6.0 → profound-0.8.0}/src/profound/_compat.py +0 -0
  41. {profound-0.6.0 → profound-0.8.0}/src/profound/_constants.py +0 -0
  42. {profound-0.6.0 → profound-0.8.0}/src/profound/_exceptions.py +0 -0
  43. {profound-0.6.0 → profound-0.8.0}/src/profound/_files.py +0 -0
  44. {profound-0.6.0 → profound-0.8.0}/src/profound/_models.py +0 -0
  45. {profound-0.6.0 → profound-0.8.0}/src/profound/_qs.py +0 -0
  46. {profound-0.6.0 → profound-0.8.0}/src/profound/_resource.py +0 -0
  47. {profound-0.6.0 → profound-0.8.0}/src/profound/_response.py +0 -0
  48. {profound-0.6.0 → profound-0.8.0}/src/profound/_streaming.py +0 -0
  49. {profound-0.6.0 → profound-0.8.0}/src/profound/_types.py +0 -0
  50. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/__init__.py +0 -0
  51. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_compat.py +0 -0
  52. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_datetime_parse.py +0 -0
  53. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_logs.py +0 -0
  54. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_proxy.py +0 -0
  55. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_reflection.py +0 -0
  56. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_resources_proxy.py +0 -0
  57. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_streams.py +0 -0
  58. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_sync.py +0 -0
  59. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_transform.py +0 -0
  60. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_typing.py +0 -0
  61. {profound-0.6.0 → profound-0.8.0}/src/profound/_utils/_utils.py +0 -0
  62. {profound-0.6.0 → profound-0.8.0}/src/profound/lib/.keep +0 -0
  63. {profound-0.6.0 → profound-0.8.0}/src/profound/py.typed +0 -0
  64. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/__init__.py +0 -0
  65. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/logs/__init__.py +0 -0
  66. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/logs/logs.py +0 -0
  67. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/organizations/__init__.py +0 -0
  68. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/organizations/categories.py +0 -0
  69. {profound-0.6.0 → profound-0.8.0}/src/profound/resources/organizations/organizations.py +0 -0
  70. {profound-0.6.0 → profound-0.8.0}/src/profound/types/__init__.py +0 -0
  71. {profound-0.6.0 → profound-0.8.0}/src/profound/types/logs/__init__.py +0 -0
  72. {profound-0.6.0 → profound-0.8.0}/src/profound/types/logs/raw_bots_response.py +0 -0
  73. {profound-0.6.0 → profound-0.8.0}/src/profound/types/logs/raw_logs_response.py +0 -0
  74. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organization_domains_response.py +0 -0
  75. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organization_models_response.py +0 -0
  76. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organization_regions_response.py +0 -0
  77. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organizations/__init__.py +0 -0
  78. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organizations/category_list_response.py +0 -0
  79. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organizations/category_prompts_response.py +0 -0
  80. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organizations/category_tags_response.py +0 -0
  81. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organizations/category_topics_response.py +0 -0
  82. {profound-0.6.0 → profound-0.8.0}/src/profound/types/organizations/org_item.py +0 -0
  83. {profound-0.6.0 → profound-0.8.0}/src/profound/types/prompt_answers_response.py +0 -0
  84. {profound-0.6.0 → profound-0.8.0}/src/profound/types/report_citations_response.py +0 -0
  85. {profound-0.6.0 → profound-0.8.0}/src/profound/types/report_info.py +0 -0
  86. {profound-0.6.0 → profound-0.8.0}/src/profound/types/report_response.py +0 -0
  87. {profound-0.6.0 → profound-0.8.0}/src/profound/types/report_result.py +0 -0
  88. {profound-0.6.0 → profound-0.8.0}/src/profound/types/shared/__init__.py +0 -0
  89. {profound-0.6.0 → profound-0.8.0}/src/profound/types/shared/pagination.py +0 -0
  90. {profound-0.6.0 → profound-0.8.0}/src/profound/types/shared_params/__init__.py +0 -0
  91. {profound-0.6.0 → profound-0.8.0}/src/profound/types/shared_params/pagination.py +0 -0
  92. {profound-0.6.0 → profound-0.8.0}/tests/__init__.py +0 -0
  93. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/__init__.py +0 -0
  94. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/logs/__init__.py +0 -0
  95. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/organizations/__init__.py +0 -0
  96. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/organizations/test_categories.py +0 -0
  97. {profound-0.6.0 → profound-0.8.0}/tests/api_resources/test_organizations.py +0 -0
  98. {profound-0.6.0 → profound-0.8.0}/tests/conftest.py +0 -0
  99. {profound-0.6.0 → profound-0.8.0}/tests/sample_file.txt +0 -0
  100. {profound-0.6.0 → profound-0.8.0}/tests/test_client.py +0 -0
  101. {profound-0.6.0 → profound-0.8.0}/tests/test_deepcopy.py +0 -0
  102. {profound-0.6.0 → profound-0.8.0}/tests/test_extract_files.py +0 -0
  103. {profound-0.6.0 → profound-0.8.0}/tests/test_files.py +0 -0
  104. {profound-0.6.0 → profound-0.8.0}/tests/test_models.py +0 -0
  105. {profound-0.6.0 → profound-0.8.0}/tests/test_qs.py +0 -0
  106. {profound-0.6.0 → profound-0.8.0}/tests/test_required_args.py +0 -0
  107. {profound-0.6.0 → profound-0.8.0}/tests/test_response.py +0 -0
  108. {profound-0.6.0 → profound-0.8.0}/tests/test_streaming.py +0 -0
  109. {profound-0.6.0 → profound-0.8.0}/tests/test_transform.py +0 -0
  110. {profound-0.6.0 → profound-0.8.0}/tests/test_utils/test_datetime_parse.py +0 -0
  111. {profound-0.6.0 → profound-0.8.0}/tests/test_utils/test_proxy.py +0 -0
  112. {profound-0.6.0 → profound-0.8.0}/tests/test_utils/test_typing.py +0 -0
  113. {profound-0.6.0 → profound-0.8.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.8.0"
3
+ }
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.0 (2025-10-28)
4
+
5
+ Full Changelog: [v0.7.0...v0.8.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.7.0...v0.8.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([7958299](https://github.com/cooper-square-technologies/profound-python-sdk/commit/7958299a1156ad45de08e406fd0d520c32dac51c))
10
+
11
+ ## 0.7.0 (2025-10-27)
12
+
13
+ Full Changelog: [v0.6.0...v0.7.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.6.0...v0.7.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([375f64d](https://github.com/cooper-square-technologies/profound-python-sdk/commit/375f64db88b85ce558e5132e00067af6bdc4ff1f))
18
+
3
19
  ## 0.6.0 (2025-10-21)
4
20
 
5
21
  Full Changelog: [v0.5.0...v0.6.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.5.0...v0.6.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: profound
3
- Version: 0.6.0
3
+ Version: 0.8.0
4
4
  Summary: The official Python library for the profound API
5
5
  Project-URL: Homepage, https://github.com/cooper-square-technologies/profound-python-sdk
6
6
  Project-URL: Repository, https://github.com/cooper-square-technologies/profound-python-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "profound"
3
- version = "0.6.0"
3
+ version = "0.8.0"
4
4
  description = "The official Python library for the profound API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "profound"
4
- __version__ = "0.6.0" # x-release-please-version
4
+ __version__ = "0.8.0" # x-release-please-version
@@ -96,8 +96,7 @@ class RawResource(SyncAPIResource):
96
96
  end_date: End date for logs. Accepts same formats as start_date. Defaults to now if
97
97
  omitted.
98
98
 
99
- filters: List of filters to apply to the report. Each filter has an operator, field, and
100
- value.
99
+ filters: List of filters to apply to the bots logs query.
101
100
 
102
101
  order_by: Custom ordering of the report results.
103
102
 
@@ -195,8 +194,7 @@ class RawResource(SyncAPIResource):
195
194
  end_date: End date for logs. Accepts same formats as start_date. Defaults to now if
196
195
  omitted.
197
196
 
198
- filters: List of filters to apply to the report. Each filter has an operator, field, and
199
- value.
197
+ filters: Filters to apply to the logs query.
200
198
 
201
199
  order_by: Custom ordering of the report results.
202
200
 
@@ -314,8 +312,7 @@ class AsyncRawResource(AsyncAPIResource):
314
312
  end_date: End date for logs. Accepts same formats as start_date. Defaults to now if
315
313
  omitted.
316
314
 
317
- filters: List of filters to apply to the report. Each filter has an operator, field, and
318
- value.
315
+ filters: List of filters to apply to the bots logs query.
319
316
 
320
317
  order_by: Custom ordering of the report results.
321
318
 
@@ -413,8 +410,7 @@ class AsyncRawResource(AsyncAPIResource):
413
410
  end_date: End date for logs. Accepts same formats as start_date. Defaults to now if
414
411
  omitted.
415
412
 
416
- filters: List of filters to apply to the report. Each filter has an operator, field, and
417
- value.
413
+ filters: Filters to apply to the logs query.
418
414
 
419
415
  order_by: Custom ordering of the report results.
420
416
 
@@ -65,6 +65,8 @@ class PromptsResource(SyncAPIResource):
65
65
  Get the answers for the prompts.
66
66
 
67
67
  Args:
68
+ filters: List of filters to apply to the answers report.
69
+
68
70
  pagination: Pagination parameters for the results. Default is 10,000 rows with no offset.
69
71
 
70
72
  extra_headers: Send extra headers
@@ -135,6 +137,8 @@ class AsyncPromptsResource(AsyncAPIResource):
135
137
  Get the answers for the prompts.
136
138
 
137
139
  Args:
140
+ filters: List of filters to apply to the answers report.
141
+
138
142
  pagination: Pagination parameters for the results. Default is 10,000 rows with no offset.
139
143
 
140
144
  extra_headers: Send extra headers
@@ -84,8 +84,7 @@ class ReportsResource(SyncAPIResource):
84
84
 
85
85
  dimensions: Dimensions to group the report by.
86
86
 
87
- filters: List of filters to apply to the report. Each filter has an operator, field, and
88
- value.
87
+ filters: List of filters to apply to the citations report.
89
88
 
90
89
  order_by: Custom ordering of the report results.
91
90
 
@@ -135,10 +134,12 @@ class ReportsResource(SyncAPIResource):
135
134
  *,
136
135
  category_id: str,
137
136
  end_date: Union[str, datetime],
138
- metrics: List[Literal["positive", "negative"]],
137
+ metrics: List[Literal["positive", "negative", "ocurrences"]],
139
138
  start_date: Union[str, datetime],
140
139
  date_interval: Literal["day", "week", "month", "year"] | Omit = omit,
141
- dimensions: List[Literal["theme", "date", "region", "topic", "model", "asset_name", "tag", "prompt"]]
140
+ dimensions: List[
141
+ Literal["theme", "date", "region", "topic", "model", "asset_name", "tag", "prompt", "sentiment_type"]
142
+ ]
142
143
  | Omit = omit,
143
144
  filters: Iterable[report_sentiment_params.Filter] | Omit = omit,
144
145
  order_by: Dict[str, Literal["asc", "desc"]] | Omit = omit,
@@ -165,8 +166,7 @@ class ReportsResource(SyncAPIResource):
165
166
 
166
167
  dimensions: Dimensions to group the report by.
167
168
 
168
- filters: List of filters to apply to the report. Each filter has an operator, field, and
169
- value.
169
+ filters: List of filters to apply to the sentiment report.
170
170
 
171
171
  order_by: Custom ordering of the report results.
172
172
 
@@ -245,8 +245,7 @@ class ReportsResource(SyncAPIResource):
245
245
 
246
246
  dimensions: Dimensions to group the report by.
247
247
 
248
- filters: List of filters to apply to the report. Each filter has an operator, field, and
249
- value.
248
+ filters: List of filters to apply to the visibility report.
250
249
 
251
250
  order_by: Custom ordering of the report results.
252
251
 
@@ -349,8 +348,7 @@ class AsyncReportsResource(AsyncAPIResource):
349
348
 
350
349
  dimensions: Dimensions to group the report by.
351
350
 
352
- filters: List of filters to apply to the report. Each filter has an operator, field, and
353
- value.
351
+ filters: List of filters to apply to the citations report.
354
352
 
355
353
  order_by: Custom ordering of the report results.
356
354
 
@@ -400,10 +398,12 @@ class AsyncReportsResource(AsyncAPIResource):
400
398
  *,
401
399
  category_id: str,
402
400
  end_date: Union[str, datetime],
403
- metrics: List[Literal["positive", "negative"]],
401
+ metrics: List[Literal["positive", "negative", "ocurrences"]],
404
402
  start_date: Union[str, datetime],
405
403
  date_interval: Literal["day", "week", "month", "year"] | Omit = omit,
406
- dimensions: List[Literal["theme", "date", "region", "topic", "model", "asset_name", "tag", "prompt"]]
404
+ dimensions: List[
405
+ Literal["theme", "date", "region", "topic", "model", "asset_name", "tag", "prompt", "sentiment_type"]
406
+ ]
407
407
  | Omit = omit,
408
408
  filters: Iterable[report_sentiment_params.Filter] | Omit = omit,
409
409
  order_by: Dict[str, Literal["asc", "desc"]] | Omit = omit,
@@ -430,8 +430,7 @@ class AsyncReportsResource(AsyncAPIResource):
430
430
 
431
431
  dimensions: Dimensions to group the report by.
432
432
 
433
- filters: List of filters to apply to the report. Each filter has an operator, field, and
434
- value.
433
+ filters: List of filters to apply to the sentiment report.
435
434
 
436
435
  order_by: Custom ordering of the report results.
437
436
 
@@ -510,8 +509,7 @@ class AsyncReportsResource(AsyncAPIResource):
510
509
 
511
510
  dimensions: Dimensions to group the report by.
512
511
 
513
- filters: List of filters to apply to the report. Each filter has an operator, field, and
514
- value.
512
+ filters: List of filters to apply to the visibility report.
515
513
 
516
514
  order_by: Custom ordering of the report results.
517
515
 
@@ -0,0 +1,288 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, List, Union, Iterable
6
+ from datetime import datetime
7
+ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
8
+
9
+ from ..._types import SequenceNotStr
10
+ from ..._utils import PropertyInfo
11
+ from ..shared_params.pagination import Pagination
12
+
13
+ __all__ = [
14
+ "RawBotsParams",
15
+ "Filter",
16
+ "FilterBotNameFilter",
17
+ "FilterBotProviderFilter",
18
+ "FilterBotTypesFilter",
19
+ "FilterMethodFilter",
20
+ "FilterAppModelsAgentAnalyticsFiltersPathFilter",
21
+ "FilterStatusCodeFilter",
22
+ "FilterIPFilter",
23
+ "FilterUserAgentFilter",
24
+ "FilterRefererFilter",
25
+ "FilterQueryParamsFilter",
26
+ ]
27
+
28
+
29
+ class RawBotsParams(TypedDict, total=False):
30
+ domain: Required[str]
31
+ """Domain to query logs for."""
32
+
33
+ metrics: Required[List[Literal["count"]]]
34
+
35
+ start_date: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
36
+ """Start date for logs.
37
+
38
+ Accepts: YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO
39
+ timestamp.
40
+ """
41
+
42
+ date_interval: Literal["day", "week", "month", "year"]
43
+ """Date interval for the report. (only used with date dimension)"""
44
+
45
+ dimensions: List[
46
+ Literal[
47
+ "method",
48
+ "path",
49
+ "status_code",
50
+ "ip",
51
+ "user_agent",
52
+ "referer",
53
+ "query_params",
54
+ "bot_name",
55
+ "bot_provider",
56
+ "bot_types",
57
+ ]
58
+ ]
59
+ """Dimensions to group the report by."""
60
+
61
+ end_date: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
62
+ """End date for logs.
63
+
64
+ Accepts same formats as start_date. Defaults to now if omitted.
65
+ """
66
+
67
+ filters: Iterable[Filter]
68
+ """List of filters to apply to the bots logs query."""
69
+
70
+ order_by: Dict[str, Literal["asc", "desc"]]
71
+ """Custom ordering of the report results.
72
+
73
+ The order is a record of key-value pairs where:
74
+
75
+ - key is the field to order by, which can be a metric or dimension
76
+ - value is the direction of the order, either 'asc' for ascending or 'desc' for
77
+ descending.
78
+
79
+ When not specified, the default order is the first metric in the query
80
+ descending.
81
+ """
82
+
83
+ pagination: Pagination
84
+ """Pagination settings for the report results."""
85
+
86
+
87
+ class FilterBotNameFilter(TypedDict, total=False):
88
+ field: Required[Literal["bot_name"]]
89
+
90
+ operator: Required[
91
+ Literal[
92
+ "is",
93
+ "not_is",
94
+ "in",
95
+ "not_in",
96
+ "contains",
97
+ "not_contains",
98
+ "matches",
99
+ "contains_case_insensitive",
100
+ "not_contains_case_insensitive",
101
+ ]
102
+ ]
103
+
104
+ value: Required[Union[str, SequenceNotStr[str]]]
105
+
106
+
107
+ class FilterBotProviderFilter(TypedDict, total=False):
108
+ field: Required[Literal["bot_provider"]]
109
+
110
+ operator: Required[
111
+ Literal[
112
+ "is",
113
+ "not_is",
114
+ "in",
115
+ "not_in",
116
+ "contains",
117
+ "not_contains",
118
+ "matches",
119
+ "contains_case_insensitive",
120
+ "not_contains_case_insensitive",
121
+ ]
122
+ ]
123
+
124
+ value: Required[Union[str, SequenceNotStr[str]]]
125
+
126
+
127
+ class FilterBotTypesFilter(TypedDict, total=False):
128
+ field: Required[Literal["bot_types"]]
129
+
130
+ operator: Required[
131
+ Literal[
132
+ "is",
133
+ "not_is",
134
+ "in",
135
+ "not_in",
136
+ "contains",
137
+ "not_contains",
138
+ "matches",
139
+ "contains_case_insensitive",
140
+ "not_contains_case_insensitive",
141
+ ]
142
+ ]
143
+
144
+ value: Required[
145
+ Union[Literal["ai_assistant", "ai_training", "index"], List[Literal["ai_assistant", "ai_training", "index"]]]
146
+ ]
147
+
148
+
149
+ class FilterMethodFilter(TypedDict, total=False):
150
+ field: Required[Literal["method"]]
151
+
152
+ operator: Required[
153
+ Literal[
154
+ "is",
155
+ "not_is",
156
+ "in",
157
+ "not_in",
158
+ "contains",
159
+ "not_contains",
160
+ "matches",
161
+ "contains_case_insensitive",
162
+ "not_contains_case_insensitive",
163
+ ]
164
+ ]
165
+
166
+ value: Required[Union[str, SequenceNotStr[str]]]
167
+
168
+
169
+ class FilterAppModelsAgentAnalyticsFiltersPathFilter(TypedDict, total=False):
170
+ field: Required[Literal["path"]]
171
+
172
+ operator: Required[
173
+ Literal[
174
+ "is",
175
+ "not_is",
176
+ "in",
177
+ "not_in",
178
+ "contains",
179
+ "not_contains",
180
+ "matches",
181
+ "contains_case_insensitive",
182
+ "not_contains_case_insensitive",
183
+ ]
184
+ ]
185
+
186
+ value: Required[Union[str, SequenceNotStr[str]]]
187
+
188
+
189
+ class FilterStatusCodeFilter(TypedDict, total=False):
190
+ field: Required[Literal["status_code"]]
191
+
192
+ operator: Required[Literal["is", "not_is", "in", "not_in"]]
193
+
194
+ value: Required[Union[int, Iterable[int]]]
195
+
196
+
197
+ class FilterIPFilter(TypedDict, total=False):
198
+ field: Required[Literal["ip"]]
199
+
200
+ operator: Required[
201
+ Literal[
202
+ "is",
203
+ "not_is",
204
+ "in",
205
+ "not_in",
206
+ "contains",
207
+ "not_contains",
208
+ "matches",
209
+ "contains_case_insensitive",
210
+ "not_contains_case_insensitive",
211
+ ]
212
+ ]
213
+
214
+ value: Required[Union[str, SequenceNotStr[str]]]
215
+
216
+
217
+ class FilterUserAgentFilter(TypedDict, total=False):
218
+ field: Required[Literal["user_agent"]]
219
+
220
+ operator: Required[
221
+ Literal[
222
+ "is",
223
+ "not_is",
224
+ "in",
225
+ "not_in",
226
+ "contains",
227
+ "not_contains",
228
+ "matches",
229
+ "contains_case_insensitive",
230
+ "not_contains_case_insensitive",
231
+ ]
232
+ ]
233
+
234
+ value: Required[Union[str, SequenceNotStr[str]]]
235
+
236
+
237
+ class FilterRefererFilter(TypedDict, total=False):
238
+ field: Required[Literal["referer"]]
239
+
240
+ operator: Required[
241
+ Literal[
242
+ "is",
243
+ "not_is",
244
+ "in",
245
+ "not_in",
246
+ "contains",
247
+ "not_contains",
248
+ "matches",
249
+ "contains_case_insensitive",
250
+ "not_contains_case_insensitive",
251
+ ]
252
+ ]
253
+
254
+ value: Required[Union[str, SequenceNotStr[str]]]
255
+
256
+
257
+ class FilterQueryParamsFilter(TypedDict, total=False):
258
+ field: Required[Literal["query_params"]]
259
+
260
+ operator: Required[
261
+ Literal[
262
+ "is",
263
+ "not_is",
264
+ "in",
265
+ "not_in",
266
+ "contains",
267
+ "not_contains",
268
+ "matches",
269
+ "contains_case_insensitive",
270
+ "not_contains_case_insensitive",
271
+ ]
272
+ ]
273
+
274
+ value: Required[Union[str, SequenceNotStr[str]]]
275
+
276
+
277
+ Filter: TypeAlias = Union[
278
+ FilterBotNameFilter,
279
+ FilterBotProviderFilter,
280
+ FilterBotTypesFilter,
281
+ FilterMethodFilter,
282
+ FilterAppModelsAgentAnalyticsFiltersPathFilter,
283
+ FilterStatusCodeFilter,
284
+ FilterIPFilter,
285
+ FilterUserAgentFilter,
286
+ FilterRefererFilter,
287
+ FilterQueryParamsFilter,
288
+ ]