profound 0.5.0__tar.gz → 0.7.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.
Files changed (114) hide show
  1. profound-0.7.0/.release-please-manifest.json +3 -0
  2. {profound-0.5.0 → profound-0.7.0}/CHANGELOG.md +21 -0
  3. {profound-0.5.0 → profound-0.7.0}/PKG-INFO +2 -2
  4. {profound-0.5.0 → profound-0.7.0}/pyproject.toml +2 -2
  5. {profound-0.5.0 → profound-0.7.0}/requirements-dev.lock +1 -1
  6. {profound-0.5.0 → profound-0.7.0}/requirements.lock +1 -1
  7. {profound-0.5.0 → profound-0.7.0}/src/profound/_version.py +1 -1
  8. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/logs/raw.py +4 -8
  9. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/prompts.py +4 -0
  10. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/reports.py +8 -14
  11. profound-0.7.0/src/profound/types/logs/raw_bots_params.py +288 -0
  12. profound-0.7.0/src/profound/types/logs/raw_logs_params.py +285 -0
  13. profound-0.7.0/src/profound/types/prompt_answers_params.py +142 -0
  14. profound-0.7.0/src/profound/types/report_citations_params.py +219 -0
  15. profound-0.7.0/src/profound/types/report_sentiment_params.py +173 -0
  16. profound-0.7.0/src/profound/types/report_visibility_params.py +151 -0
  17. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/logs/test_raw.py +2 -2
  18. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/test_prompts.py +4 -4
  19. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/test_reports.py +4 -4
  20. profound-0.5.0/.release-please-manifest.json +0 -3
  21. profound-0.5.0/src/profound/types/logs/raw_bots_params.py +0 -111
  22. profound-0.5.0/src/profound/types/logs/raw_logs_params.py +0 -99
  23. profound-0.5.0/src/profound/types/prompt_answers_params.py +0 -84
  24. profound-0.5.0/src/profound/types/report_citations_params.py +0 -85
  25. profound-0.5.0/src/profound/types/report_sentiment_params.py +0 -83
  26. profound-0.5.0/src/profound/types/report_visibility_params.py +0 -83
  27. {profound-0.5.0 → profound-0.7.0}/.gitignore +0 -0
  28. {profound-0.5.0 → profound-0.7.0}/CONTRIBUTING.md +0 -0
  29. {profound-0.5.0 → profound-0.7.0}/LICENSE +0 -0
  30. {profound-0.5.0 → profound-0.7.0}/README.md +0 -0
  31. {profound-0.5.0 → profound-0.7.0}/SECURITY.md +0 -0
  32. {profound-0.5.0 → profound-0.7.0}/api.md +0 -0
  33. {profound-0.5.0 → profound-0.7.0}/bin/check-release-environment +0 -0
  34. {profound-0.5.0 → profound-0.7.0}/bin/publish-pypi +0 -0
  35. {profound-0.5.0 → profound-0.7.0}/examples/.keep +0 -0
  36. {profound-0.5.0 → profound-0.7.0}/noxfile.py +0 -0
  37. {profound-0.5.0 → profound-0.7.0}/release-please-config.json +0 -0
  38. {profound-0.5.0 → profound-0.7.0}/src/profound/__init__.py +0 -0
  39. {profound-0.5.0 → profound-0.7.0}/src/profound/_base_client.py +0 -0
  40. {profound-0.5.0 → profound-0.7.0}/src/profound/_client.py +0 -0
  41. {profound-0.5.0 → profound-0.7.0}/src/profound/_compat.py +0 -0
  42. {profound-0.5.0 → profound-0.7.0}/src/profound/_constants.py +0 -0
  43. {profound-0.5.0 → profound-0.7.0}/src/profound/_exceptions.py +0 -0
  44. {profound-0.5.0 → profound-0.7.0}/src/profound/_files.py +0 -0
  45. {profound-0.5.0 → profound-0.7.0}/src/profound/_models.py +0 -0
  46. {profound-0.5.0 → profound-0.7.0}/src/profound/_qs.py +0 -0
  47. {profound-0.5.0 → profound-0.7.0}/src/profound/_resource.py +0 -0
  48. {profound-0.5.0 → profound-0.7.0}/src/profound/_response.py +0 -0
  49. {profound-0.5.0 → profound-0.7.0}/src/profound/_streaming.py +0 -0
  50. {profound-0.5.0 → profound-0.7.0}/src/profound/_types.py +0 -0
  51. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/__init__.py +0 -0
  52. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_compat.py +0 -0
  53. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_datetime_parse.py +0 -0
  54. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_logs.py +0 -0
  55. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_proxy.py +0 -0
  56. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_reflection.py +0 -0
  57. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_resources_proxy.py +0 -0
  58. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_streams.py +0 -0
  59. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_sync.py +0 -0
  60. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_transform.py +0 -0
  61. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_typing.py +0 -0
  62. {profound-0.5.0 → profound-0.7.0}/src/profound/_utils/_utils.py +0 -0
  63. {profound-0.5.0 → profound-0.7.0}/src/profound/lib/.keep +0 -0
  64. {profound-0.5.0 → profound-0.7.0}/src/profound/py.typed +0 -0
  65. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/__init__.py +0 -0
  66. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/logs/__init__.py +0 -0
  67. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/logs/logs.py +0 -0
  68. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/organizations/__init__.py +0 -0
  69. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/organizations/categories.py +0 -0
  70. {profound-0.5.0 → profound-0.7.0}/src/profound/resources/organizations/organizations.py +0 -0
  71. {profound-0.5.0 → profound-0.7.0}/src/profound/types/__init__.py +0 -0
  72. {profound-0.5.0 → profound-0.7.0}/src/profound/types/logs/__init__.py +0 -0
  73. {profound-0.5.0 → profound-0.7.0}/src/profound/types/logs/raw_bots_response.py +0 -0
  74. {profound-0.5.0 → profound-0.7.0}/src/profound/types/logs/raw_logs_response.py +0 -0
  75. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organization_domains_response.py +0 -0
  76. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organization_models_response.py +0 -0
  77. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organization_regions_response.py +0 -0
  78. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organizations/__init__.py +0 -0
  79. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organizations/category_list_response.py +0 -0
  80. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organizations/category_prompts_response.py +0 -0
  81. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organizations/category_tags_response.py +0 -0
  82. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organizations/category_topics_response.py +0 -0
  83. {profound-0.5.0 → profound-0.7.0}/src/profound/types/organizations/org_item.py +0 -0
  84. {profound-0.5.0 → profound-0.7.0}/src/profound/types/prompt_answers_response.py +0 -0
  85. {profound-0.5.0 → profound-0.7.0}/src/profound/types/report_citations_response.py +0 -0
  86. {profound-0.5.0 → profound-0.7.0}/src/profound/types/report_info.py +0 -0
  87. {profound-0.5.0 → profound-0.7.0}/src/profound/types/report_response.py +0 -0
  88. {profound-0.5.0 → profound-0.7.0}/src/profound/types/report_result.py +0 -0
  89. {profound-0.5.0 → profound-0.7.0}/src/profound/types/shared/__init__.py +0 -0
  90. {profound-0.5.0 → profound-0.7.0}/src/profound/types/shared/pagination.py +0 -0
  91. {profound-0.5.0 → profound-0.7.0}/src/profound/types/shared_params/__init__.py +0 -0
  92. {profound-0.5.0 → profound-0.7.0}/src/profound/types/shared_params/pagination.py +0 -0
  93. {profound-0.5.0 → profound-0.7.0}/tests/__init__.py +0 -0
  94. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/__init__.py +0 -0
  95. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/logs/__init__.py +0 -0
  96. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/organizations/__init__.py +0 -0
  97. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/organizations/test_categories.py +0 -0
  98. {profound-0.5.0 → profound-0.7.0}/tests/api_resources/test_organizations.py +0 -0
  99. {profound-0.5.0 → profound-0.7.0}/tests/conftest.py +0 -0
  100. {profound-0.5.0 → profound-0.7.0}/tests/sample_file.txt +0 -0
  101. {profound-0.5.0 → profound-0.7.0}/tests/test_client.py +0 -0
  102. {profound-0.5.0 → profound-0.7.0}/tests/test_deepcopy.py +0 -0
  103. {profound-0.5.0 → profound-0.7.0}/tests/test_extract_files.py +0 -0
  104. {profound-0.5.0 → profound-0.7.0}/tests/test_files.py +0 -0
  105. {profound-0.5.0 → profound-0.7.0}/tests/test_models.py +0 -0
  106. {profound-0.5.0 → profound-0.7.0}/tests/test_qs.py +0 -0
  107. {profound-0.5.0 → profound-0.7.0}/tests/test_required_args.py +0 -0
  108. {profound-0.5.0 → profound-0.7.0}/tests/test_response.py +0 -0
  109. {profound-0.5.0 → profound-0.7.0}/tests/test_streaming.py +0 -0
  110. {profound-0.5.0 → profound-0.7.0}/tests/test_transform.py +0 -0
  111. {profound-0.5.0 → profound-0.7.0}/tests/test_utils/test_datetime_parse.py +0 -0
  112. {profound-0.5.0 → profound-0.7.0}/tests/test_utils/test_proxy.py +0 -0
  113. {profound-0.5.0 → profound-0.7.0}/tests/test_utils/test_typing.py +0 -0
  114. {profound-0.5.0 → profound-0.7.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.7.0"
3
+ }
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0 (2025-10-27)
4
+
5
+ Full Changelog: [v0.6.0...v0.7.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.6.0...v0.7.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([375f64d](https://github.com/cooper-square-technologies/profound-python-sdk/commit/375f64db88b85ce558e5132e00067af6bdc4ff1f))
10
+
11
+ ## 0.6.0 (2025-10-21)
12
+
13
+ Full Changelog: [v0.5.0...v0.6.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.5.0...v0.6.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([4e244ad](https://github.com/cooper-square-technologies/profound-python-sdk/commit/4e244ad88c7e6185b4a3865b3db3b83981e2a865))
18
+
19
+
20
+ ### Chores
21
+
22
+ * bump `httpx-aiohttp` version to 0.1.9 ([c4d4695](https://github.com/cooper-square-technologies/profound-python-sdk/commit/c4d46955efd31cff4e9d7d22bdd943b116ef5c08))
23
+
3
24
  ## 0.5.0 (2025-10-17)
4
25
 
5
26
  Full Changelog: [v0.4.0...v0.5.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.4.0...v0.5.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: profound
3
- Version: 0.5.0
3
+ Version: 0.7.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
@@ -30,7 +30,7 @@ Requires-Dist: sniffio
30
30
  Requires-Dist: typing-extensions<5,>=4.10
31
31
  Provides-Extra: aiohttp
32
32
  Requires-Dist: aiohttp; extra == 'aiohttp'
33
- Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
33
+ Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
34
34
  Description-Content-Type: text/markdown
35
35
 
36
36
  # Profound Python API library
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "profound"
3
- version = "0.5.0"
3
+ version = "0.7.0"
4
4
  description = "The official Python library for the profound API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -39,7 +39,7 @@ Homepage = "https://github.com/cooper-square-technologies/profound-python-sdk"
39
39
  Repository = "https://github.com/cooper-square-technologies/profound-python-sdk"
40
40
 
41
41
  [project.optional-dependencies]
42
- aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
42
+ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
43
43
 
44
44
  [tool.rye]
45
45
  managed = true
@@ -56,7 +56,7 @@ httpx==0.28.1
56
56
  # via httpx-aiohttp
57
57
  # via profound
58
58
  # via respx
59
- httpx-aiohttp==0.1.8
59
+ httpx-aiohttp==0.1.9
60
60
  # via profound
61
61
  idna==3.4
62
62
  # via anyio
@@ -43,7 +43,7 @@ httpcore==1.0.9
43
43
  httpx==0.28.1
44
44
  # via httpx-aiohttp
45
45
  # via profound
46
- httpx-aiohttp==0.1.8
46
+ httpx-aiohttp==0.1.9
47
47
  # via profound
48
48
  idna==3.4
49
49
  # via anyio
@@ -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.5.0" # x-release-please-version
4
+ __version__ = "0.7.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
 
@@ -165,8 +164,7 @@ class ReportsResource(SyncAPIResource):
165
164
 
166
165
  dimensions: Dimensions to group the report by.
167
166
 
168
- filters: List of filters to apply to the report. Each filter has an operator, field, and
169
- value.
167
+ filters: List of filters to apply to the sentiment report.
170
168
 
171
169
  order_by: Custom ordering of the report results.
172
170
 
@@ -216,7 +214,7 @@ class ReportsResource(SyncAPIResource):
216
214
  *,
217
215
  category_id: str,
218
216
  end_date: Union[str, datetime],
219
- metrics: List[Literal["share_of_voice", "mentions_count", "visibility_score"]],
217
+ metrics: List[Literal["share_of_voice", "mentions_count", "visibility_score", "executions"]],
220
218
  start_date: Union[str, datetime],
221
219
  date_interval: Literal["day", "week", "month", "year"] | Omit = omit,
222
220
  dimensions: List[Literal["date", "region", "topic", "model", "asset_name", "prompt", "tag"]] | Omit = omit,
@@ -245,8 +243,7 @@ class ReportsResource(SyncAPIResource):
245
243
 
246
244
  dimensions: Dimensions to group the report by.
247
245
 
248
- filters: List of filters to apply to the report. Each filter has an operator, field, and
249
- value.
246
+ filters: List of filters to apply to the visibility report.
250
247
 
251
248
  order_by: Custom ordering of the report results.
252
249
 
@@ -349,8 +346,7 @@ class AsyncReportsResource(AsyncAPIResource):
349
346
 
350
347
  dimensions: Dimensions to group the report by.
351
348
 
352
- filters: List of filters to apply to the report. Each filter has an operator, field, and
353
- value.
349
+ filters: List of filters to apply to the citations report.
354
350
 
355
351
  order_by: Custom ordering of the report results.
356
352
 
@@ -430,8 +426,7 @@ class AsyncReportsResource(AsyncAPIResource):
430
426
 
431
427
  dimensions: Dimensions to group the report by.
432
428
 
433
- filters: List of filters to apply to the report. Each filter has an operator, field, and
434
- value.
429
+ filters: List of filters to apply to the sentiment report.
435
430
 
436
431
  order_by: Custom ordering of the report results.
437
432
 
@@ -481,7 +476,7 @@ class AsyncReportsResource(AsyncAPIResource):
481
476
  *,
482
477
  category_id: str,
483
478
  end_date: Union[str, datetime],
484
- metrics: List[Literal["share_of_voice", "mentions_count", "visibility_score"]],
479
+ metrics: List[Literal["share_of_voice", "mentions_count", "visibility_score", "executions"]],
485
480
  start_date: Union[str, datetime],
486
481
  date_interval: Literal["day", "week", "month", "year"] | Omit = omit,
487
482
  dimensions: List[Literal["date", "region", "topic", "model", "asset_name", "prompt", "tag"]] | Omit = omit,
@@ -510,8 +505,7 @@ class AsyncReportsResource(AsyncAPIResource):
510
505
 
511
506
  dimensions: Dimensions to group the report by.
512
507
 
513
- filters: List of filters to apply to the report. Each filter has an operator, field, and
514
- value.
508
+ filters: List of filters to apply to the visibility report.
515
509
 
516
510
  order_by: Custom ordering of the report results.
517
511
 
@@ -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
+ ]