hiddenlayer-sdk 2.0.10__py3-none-any.whl → 3.0.1__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 (204) hide show
  1. hiddenlayer/__init__.py +109 -114
  2. hiddenlayer/_base_client.py +1995 -0
  3. hiddenlayer/_client.py +761 -0
  4. hiddenlayer/_compat.py +219 -0
  5. hiddenlayer/_constants.py +14 -0
  6. hiddenlayer/_exceptions.py +108 -0
  7. hiddenlayer/_files.py +123 -0
  8. hiddenlayer/_models.py +835 -0
  9. hiddenlayer/_oauth2.py +118 -0
  10. hiddenlayer/_qs.py +150 -0
  11. hiddenlayer/_resource.py +43 -0
  12. hiddenlayer/_response.py +832 -0
  13. hiddenlayer/_streaming.py +333 -0
  14. hiddenlayer/_types.py +260 -0
  15. hiddenlayer/_utils/__init__.py +64 -0
  16. hiddenlayer/_utils/_compat.py +45 -0
  17. hiddenlayer/_utils/_datetime_parse.py +136 -0
  18. hiddenlayer/_utils/_logs.py +25 -0
  19. hiddenlayer/_utils/_proxy.py +65 -0
  20. hiddenlayer/_utils/_reflection.py +42 -0
  21. hiddenlayer/_utils/_resources_proxy.py +24 -0
  22. hiddenlayer/_utils/_streams.py +12 -0
  23. hiddenlayer/_utils/_sync.py +86 -0
  24. hiddenlayer/_utils/_transform.py +457 -0
  25. hiddenlayer/_utils/_typing.py +156 -0
  26. hiddenlayer/_utils/_utils.py +421 -0
  27. hiddenlayer/_version.py +4 -0
  28. hiddenlayer/lib/.keep +4 -0
  29. hiddenlayer/lib/__init__.py +6 -0
  30. hiddenlayer/lib/community_scan.py +174 -0
  31. hiddenlayer/lib/model_scan.py +752 -0
  32. hiddenlayer/lib/scan_utils.py +142 -0
  33. hiddenlayer/pagination.py +127 -0
  34. hiddenlayer/resources/__init__.py +75 -0
  35. hiddenlayer/resources/interactions.py +205 -0
  36. hiddenlayer/resources/models/__init__.py +33 -0
  37. hiddenlayer/resources/models/cards.py +259 -0
  38. hiddenlayer/resources/models/models.py +284 -0
  39. hiddenlayer/resources/prompt_analyzer.py +207 -0
  40. hiddenlayer/resources/scans/__init__.py +61 -0
  41. hiddenlayer/resources/scans/jobs.py +499 -0
  42. hiddenlayer/resources/scans/results.py +169 -0
  43. hiddenlayer/resources/scans/scans.py +166 -0
  44. hiddenlayer/resources/scans/upload/__init__.py +33 -0
  45. hiddenlayer/resources/scans/upload/file.py +279 -0
  46. hiddenlayer/resources/scans/upload/upload.py +340 -0
  47. hiddenlayer/resources/sensors.py +575 -0
  48. hiddenlayer/types/__init__.py +16 -0
  49. hiddenlayer/types/interaction_analyze_params.py +62 -0
  50. hiddenlayer/types/interaction_analyze_response.py +199 -0
  51. hiddenlayer/types/model_retrieve_response.py +50 -0
  52. hiddenlayer/types/models/__init__.py +6 -0
  53. hiddenlayer/types/models/card_list_params.py +65 -0
  54. hiddenlayer/types/models/card_list_response.py +50 -0
  55. hiddenlayer/types/prompt_analyzer_create_params.py +23 -0
  56. hiddenlayer/types/prompt_analyzer_create_response.py +381 -0
  57. hiddenlayer/types/scans/__init__.py +14 -0
  58. hiddenlayer/types/scans/job_list_params.py +75 -0
  59. hiddenlayer/types/scans/job_list_response.py +22 -0
  60. hiddenlayer/types/scans/job_request_params.py +49 -0
  61. hiddenlayer/types/scans/job_retrieve_params.py +16 -0
  62. hiddenlayer/types/scans/result_sarif_response.py +7 -0
  63. hiddenlayer/types/scans/scan_job.py +46 -0
  64. hiddenlayer/types/scans/scan_report.py +367 -0
  65. hiddenlayer/types/scans/upload/__init__.py +6 -0
  66. hiddenlayer/types/scans/upload/file_add_response.py +24 -0
  67. hiddenlayer/types/scans/upload/file_complete_response.py +12 -0
  68. hiddenlayer/types/scans/upload_complete_all_response.py +12 -0
  69. hiddenlayer/types/scans/upload_start_params.py +34 -0
  70. hiddenlayer/types/scans/upload_start_response.py +12 -0
  71. hiddenlayer/types/sensor_create_params.py +24 -0
  72. hiddenlayer/types/sensor_create_response.py +33 -0
  73. hiddenlayer/types/sensor_query_params.py +39 -0
  74. hiddenlayer/types/sensor_query_response.py +43 -0
  75. hiddenlayer/types/sensor_retrieve_response.py +33 -0
  76. hiddenlayer/types/sensor_update_params.py +20 -0
  77. hiddenlayer/types/sensor_update_response.py +9 -0
  78. hiddenlayer_sdk-3.0.1.dist-info/METADATA +521 -0
  79. hiddenlayer_sdk-3.0.1.dist-info/RECORD +82 -0
  80. {hiddenlayer_sdk-2.0.10.dist-info → hiddenlayer_sdk-3.0.1.dist-info}/WHEEL +1 -2
  81. {hiddenlayer_sdk-2.0.10.dist-info → hiddenlayer_sdk-3.0.1.dist-info}/licenses/LICENSE +1 -1
  82. hiddenlayer/sdk/constants.py +0 -26
  83. hiddenlayer/sdk/exceptions.py +0 -12
  84. hiddenlayer/sdk/models.py +0 -58
  85. hiddenlayer/sdk/rest/__init__.py +0 -135
  86. hiddenlayer/sdk/rest/api/__init__.py +0 -10
  87. hiddenlayer/sdk/rest/api/aidr_predictive_api.py +0 -308
  88. hiddenlayer/sdk/rest/api/health_api.py +0 -272
  89. hiddenlayer/sdk/rest/api/model_api.py +0 -559
  90. hiddenlayer/sdk/rest/api/model_supply_chain_api.py +0 -4063
  91. hiddenlayer/sdk/rest/api/readiness_api.py +0 -272
  92. hiddenlayer/sdk/rest/api/sensor_api.py +0 -1432
  93. hiddenlayer/sdk/rest/api_client.py +0 -770
  94. hiddenlayer/sdk/rest/api_response.py +0 -21
  95. hiddenlayer/sdk/rest/configuration.py +0 -445
  96. hiddenlayer/sdk/rest/exceptions.py +0 -199
  97. hiddenlayer/sdk/rest/models/__init__.py +0 -113
  98. hiddenlayer/sdk/rest/models/address.py +0 -110
  99. hiddenlayer/sdk/rest/models/artifact.py +0 -155
  100. hiddenlayer/sdk/rest/models/artifact_change.py +0 -108
  101. hiddenlayer/sdk/rest/models/artifact_content.py +0 -101
  102. hiddenlayer/sdk/rest/models/artifact_location.py +0 -109
  103. hiddenlayer/sdk/rest/models/attachment.py +0 -129
  104. hiddenlayer/sdk/rest/models/begin_multi_file_upload200_response.py +0 -87
  105. hiddenlayer/sdk/rest/models/begin_multipart_file_upload200_response.py +0 -97
  106. hiddenlayer/sdk/rest/models/begin_multipart_file_upload200_response_parts_inner.py +0 -94
  107. hiddenlayer/sdk/rest/models/code_flow.py +0 -113
  108. hiddenlayer/sdk/rest/models/configuration_override.py +0 -108
  109. hiddenlayer/sdk/rest/models/conversion.py +0 -114
  110. hiddenlayer/sdk/rest/models/create_sensor_request.py +0 -95
  111. hiddenlayer/sdk/rest/models/edge.py +0 -108
  112. hiddenlayer/sdk/rest/models/edge_traversal.py +0 -122
  113. hiddenlayer/sdk/rest/models/errors_inner.py +0 -91
  114. hiddenlayer/sdk/rest/models/exception.py +0 -113
  115. hiddenlayer/sdk/rest/models/external_properties.py +0 -273
  116. hiddenlayer/sdk/rest/models/external_property_file_reference.py +0 -102
  117. hiddenlayer/sdk/rest/models/external_property_file_references.py +0 -240
  118. hiddenlayer/sdk/rest/models/file_details_v3.py +0 -139
  119. hiddenlayer/sdk/rest/models/file_result_v3.py +0 -117
  120. hiddenlayer/sdk/rest/models/file_scan_report_v3.py +0 -132
  121. hiddenlayer/sdk/rest/models/file_scan_reports_v3.py +0 -95
  122. hiddenlayer/sdk/rest/models/fix.py +0 -113
  123. hiddenlayer/sdk/rest/models/get_condensed_model_scan_reports200_response.py +0 -102
  124. hiddenlayer/sdk/rest/models/graph.py +0 -123
  125. hiddenlayer/sdk/rest/models/graph_traversal.py +0 -97
  126. hiddenlayer/sdk/rest/models/inventory_v3.py +0 -101
  127. hiddenlayer/sdk/rest/models/invocation.py +0 -199
  128. hiddenlayer/sdk/rest/models/location.py +0 -146
  129. hiddenlayer/sdk/rest/models/location_inner.py +0 -138
  130. hiddenlayer/sdk/rest/models/location_relationship.py +0 -107
  131. hiddenlayer/sdk/rest/models/logical_location.py +0 -104
  132. hiddenlayer/sdk/rest/models/message.py +0 -92
  133. hiddenlayer/sdk/rest/models/mitre_atlas_inner.py +0 -110
  134. hiddenlayer/sdk/rest/models/model.py +0 -103
  135. hiddenlayer/sdk/rest/models/model_inventory_info.py +0 -103
  136. hiddenlayer/sdk/rest/models/model_version.py +0 -97
  137. hiddenlayer/sdk/rest/models/multi_file_upload_request_v3.py +0 -97
  138. hiddenlayer/sdk/rest/models/multiformat_message_string.py +0 -95
  139. hiddenlayer/sdk/rest/models/node.py +0 -122
  140. hiddenlayer/sdk/rest/models/notification.py +0 -157
  141. hiddenlayer/sdk/rest/models/notify_model_scan_completed200_response.py +0 -87
  142. hiddenlayer/sdk/rest/models/paged_response_with_total.py +0 -94
  143. hiddenlayer/sdk/rest/models/pagination_v3.py +0 -95
  144. hiddenlayer/sdk/rest/models/physical_location.py +0 -94
  145. hiddenlayer/sdk/rest/models/problem_details.py +0 -103
  146. hiddenlayer/sdk/rest/models/property_bag.py +0 -101
  147. hiddenlayer/sdk/rest/models/rectangle.py +0 -110
  148. hiddenlayer/sdk/rest/models/region.py +0 -127
  149. hiddenlayer/sdk/rest/models/replacement.py +0 -103
  150. hiddenlayer/sdk/rest/models/reporting_configuration.py +0 -113
  151. hiddenlayer/sdk/rest/models/reporting_descriptor.py +0 -162
  152. hiddenlayer/sdk/rest/models/reporting_descriptor_reference.py +0 -103
  153. hiddenlayer/sdk/rest/models/reporting_descriptor_relationship.py +0 -115
  154. hiddenlayer/sdk/rest/models/result.py +0 -312
  155. hiddenlayer/sdk/rest/models/result_provenance.py +0 -133
  156. hiddenlayer/sdk/rest/models/rule_details_inner.py +0 -102
  157. hiddenlayer/sdk/rest/models/run.py +0 -318
  158. hiddenlayer/sdk/rest/models/run_automation_details.py +0 -129
  159. hiddenlayer/sdk/rest/models/sarif210.py +0 -123
  160. hiddenlayer/sdk/rest/models/scan_create_request.py +0 -87
  161. hiddenlayer/sdk/rest/models/scan_detection_v3.py +0 -159
  162. hiddenlayer/sdk/rest/models/scan_detection_v31.py +0 -158
  163. hiddenlayer/sdk/rest/models/scan_header_v3.py +0 -129
  164. hiddenlayer/sdk/rest/models/scan_job.py +0 -115
  165. hiddenlayer/sdk/rest/models/scan_job_access.py +0 -97
  166. hiddenlayer/sdk/rest/models/scan_model_details_v3.py +0 -99
  167. hiddenlayer/sdk/rest/models/scan_model_details_v31.py +0 -97
  168. hiddenlayer/sdk/rest/models/scan_model_ids_v3.py +0 -89
  169. hiddenlayer/sdk/rest/models/scan_report_v3.py +0 -139
  170. hiddenlayer/sdk/rest/models/scan_results_map_v3.py +0 -105
  171. hiddenlayer/sdk/rest/models/scan_results_v3.py +0 -120
  172. hiddenlayer/sdk/rest/models/security_posture.py +0 -89
  173. hiddenlayer/sdk/rest/models/sensor.py +0 -100
  174. hiddenlayer/sdk/rest/models/sensor_query_response.py +0 -101
  175. hiddenlayer/sdk/rest/models/sensor_sor_model_card_query_response.py +0 -101
  176. hiddenlayer/sdk/rest/models/sensor_sor_model_card_response.py +0 -127
  177. hiddenlayer/sdk/rest/models/sensor_sor_query_filter.py +0 -108
  178. hiddenlayer/sdk/rest/models/sensor_sor_query_request.py +0 -109
  179. hiddenlayer/sdk/rest/models/special_locations.py +0 -97
  180. hiddenlayer/sdk/rest/models/stack.py +0 -113
  181. hiddenlayer/sdk/rest/models/stack_frame.py +0 -104
  182. hiddenlayer/sdk/rest/models/submission_response.py +0 -95
  183. hiddenlayer/sdk/rest/models/submission_v2.py +0 -109
  184. hiddenlayer/sdk/rest/models/suppression.py +0 -133
  185. hiddenlayer/sdk/rest/models/thread_flow.py +0 -144
  186. hiddenlayer/sdk/rest/models/thread_flow_location.py +0 -166
  187. hiddenlayer/sdk/rest/models/tool.py +0 -107
  188. hiddenlayer/sdk/rest/models/tool_component.py +0 -251
  189. hiddenlayer/sdk/rest/models/tool_component_reference.py +0 -108
  190. hiddenlayer/sdk/rest/models/translation_metadata.py +0 -110
  191. hiddenlayer/sdk/rest/models/validation_error_model.py +0 -99
  192. hiddenlayer/sdk/rest/models/version_control_details.py +0 -108
  193. hiddenlayer/sdk/rest/models/web_request.py +0 -112
  194. hiddenlayer/sdk/rest/models/web_response.py +0 -112
  195. hiddenlayer/sdk/rest/rest.py +0 -257
  196. hiddenlayer/sdk/services/__init__.py +0 -0
  197. hiddenlayer/sdk/services/aidr_predictive.py +0 -130
  198. hiddenlayer/sdk/services/model_scan.py +0 -505
  199. hiddenlayer/sdk/utils.py +0 -92
  200. hiddenlayer/sdk/version.py +0 -1
  201. hiddenlayer_sdk-2.0.10.dist-info/METADATA +0 -368
  202. hiddenlayer_sdk-2.0.10.dist-info/RECORD +0 -126
  203. hiddenlayer_sdk-2.0.10.dist-info/top_level.txt +0 -1
  204. /hiddenlayer/{sdk/__init__.py → py.typed} +0 -0
@@ -0,0 +1,575 @@
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
6
+ from typing_extensions import Literal
7
+
8
+ import httpx
9
+
10
+ from ..types import sensor_query_params, sensor_create_params, sensor_update_params
11
+ from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
12
+ from .._utils import maybe_transform, strip_not_given, async_maybe_transform
13
+ from .._compat import cached_property
14
+ from .._resource import SyncAPIResource, AsyncAPIResource
15
+ from .._response import (
16
+ to_raw_response_wrapper,
17
+ to_streamed_response_wrapper,
18
+ async_to_raw_response_wrapper,
19
+ async_to_streamed_response_wrapper,
20
+ )
21
+ from .._base_client import make_request_options
22
+ from ..types.sensor_query_response import SensorQueryResponse
23
+ from ..types.sensor_create_response import SensorCreateResponse
24
+ from ..types.sensor_update_response import SensorUpdateResponse
25
+ from ..types.sensor_retrieve_response import SensorRetrieveResponse
26
+
27
+ __all__ = ["SensorsResource", "AsyncSensorsResource"]
28
+
29
+
30
+ class SensorsResource(SyncAPIResource):
31
+ @cached_property
32
+ def with_raw_response(self) -> SensorsResourceWithRawResponse:
33
+ """
34
+ This property can be used as a prefix for any HTTP method call to return
35
+ the raw response object instead of the parsed content.
36
+
37
+ For more information, see https://www.github.com/hiddenlayerai/hiddenlayer-sdk-python#accessing-raw-response-data-eg-headers
38
+ """
39
+ return SensorsResourceWithRawResponse(self)
40
+
41
+ @cached_property
42
+ def with_streaming_response(self) -> SensorsResourceWithStreamingResponse:
43
+ """
44
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
45
+
46
+ For more information, see https://www.github.com/hiddenlayerai/hiddenlayer-sdk-python#with_streaming_response
47
+ """
48
+ return SensorsResourceWithStreamingResponse(self)
49
+
50
+ def create(
51
+ self,
52
+ *,
53
+ plaintext_name: str,
54
+ active: bool | Omit = omit,
55
+ adhoc: bool | Omit = omit,
56
+ tags: Dict[str, object] | Omit = omit,
57
+ version: int | Omit = omit,
58
+ x_correlation_id: str | Omit = omit,
59
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
60
+ # The extra values given here take precedence over values defined on the client or passed to this method.
61
+ extra_headers: Headers | None = None,
62
+ extra_query: Query | None = None,
63
+ extra_body: Body | None = None,
64
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
65
+ ) -> SensorCreateResponse:
66
+ """
67
+ Create Sensor Record
68
+
69
+ Args:
70
+ extra_headers: Send extra headers
71
+
72
+ extra_query: Add additional query parameters to the request
73
+
74
+ extra_body: Add additional JSON properties to the request
75
+
76
+ timeout: Override the client-level default timeout for this request, in seconds
77
+ """
78
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
79
+ return self._post(
80
+ "/api/v2/sensors/create",
81
+ body=maybe_transform(
82
+ {
83
+ "plaintext_name": plaintext_name,
84
+ "active": active,
85
+ "adhoc": adhoc,
86
+ "tags": tags,
87
+ "version": version,
88
+ },
89
+ sensor_create_params.SensorCreateParams,
90
+ ),
91
+ options=make_request_options(
92
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
93
+ ),
94
+ cast_to=SensorCreateResponse,
95
+ )
96
+
97
+ def retrieve(
98
+ self,
99
+ sensor_id: str,
100
+ *,
101
+ x_correlation_id: str | Omit = omit,
102
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
103
+ # The extra values given here take precedence over values defined on the client or passed to this method.
104
+ extra_headers: Headers | None = None,
105
+ extra_query: Query | None = None,
106
+ extra_body: Body | None = None,
107
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
108
+ ) -> SensorRetrieveResponse:
109
+ """
110
+ Get Sensor
111
+
112
+ Args:
113
+ extra_headers: Send extra headers
114
+
115
+ extra_query: Add additional query parameters to the request
116
+
117
+ extra_body: Add additional JSON properties to the request
118
+
119
+ timeout: Override the client-level default timeout for this request, in seconds
120
+ """
121
+ if not sensor_id:
122
+ raise ValueError(f"Expected a non-empty value for `sensor_id` but received {sensor_id!r}")
123
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
124
+ return self._get(
125
+ f"/api/v2/sensors/{sensor_id}",
126
+ options=make_request_options(
127
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
128
+ ),
129
+ cast_to=SensorRetrieveResponse,
130
+ )
131
+
132
+ def update(
133
+ self,
134
+ sensor_id: str,
135
+ *,
136
+ active: bool | Omit = omit,
137
+ plaintext_name: str | Omit = omit,
138
+ tags: Dict[str, object] | Omit = omit,
139
+ x_correlation_id: str | Omit = omit,
140
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
141
+ # The extra values given here take precedence over values defined on the client or passed to this method.
142
+ extra_headers: Headers | None = None,
143
+ extra_query: Query | None = None,
144
+ extra_body: Body | None = None,
145
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
146
+ ) -> SensorUpdateResponse:
147
+ """
148
+ Update Sensor
149
+
150
+ Args:
151
+ extra_headers: Send extra headers
152
+
153
+ extra_query: Add additional query parameters to the request
154
+
155
+ extra_body: Add additional JSON properties to the request
156
+
157
+ timeout: Override the client-level default timeout for this request, in seconds
158
+ """
159
+ if not sensor_id:
160
+ raise ValueError(f"Expected a non-empty value for `sensor_id` but received {sensor_id!r}")
161
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
162
+ return self._put(
163
+ f"/api/v2/sensors/{sensor_id}",
164
+ body=maybe_transform(
165
+ {
166
+ "active": active,
167
+ "plaintext_name": plaintext_name,
168
+ "tags": tags,
169
+ },
170
+ sensor_update_params.SensorUpdateParams,
171
+ ),
172
+ options=make_request_options(
173
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
174
+ ),
175
+ cast_to=SensorUpdateResponse,
176
+ )
177
+
178
+ def delete(
179
+ self,
180
+ sensor_id: str,
181
+ *,
182
+ x_correlation_id: str | Omit = omit,
183
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
184
+ # The extra values given here take precedence over values defined on the client or passed to this method.
185
+ extra_headers: Headers | None = None,
186
+ extra_query: Query | None = None,
187
+ extra_body: Body | None = None,
188
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
189
+ ) -> None:
190
+ """
191
+ Remove an Adhoc Sensor
192
+
193
+ Args:
194
+ extra_headers: Send extra headers
195
+
196
+ extra_query: Add additional query parameters to the request
197
+
198
+ extra_body: Add additional JSON properties to the request
199
+
200
+ timeout: Override the client-level default timeout for this request, in seconds
201
+ """
202
+ if not sensor_id:
203
+ raise ValueError(f"Expected a non-empty value for `sensor_id` but received {sensor_id!r}")
204
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
205
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
206
+ return self._delete(
207
+ f"/api/v2/sensors/{sensor_id}",
208
+ options=make_request_options(
209
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
210
+ ),
211
+ cast_to=NoneType,
212
+ )
213
+
214
+ def query(
215
+ self,
216
+ *,
217
+ filter: sensor_query_params.Filter | Omit = omit,
218
+ order_by: str | Omit = omit,
219
+ order_dir: Literal["asc", "desc"] | Omit = omit,
220
+ page_number: int | Omit = omit,
221
+ page_size: int | Omit = omit,
222
+ x_correlation_id: str | Omit = omit,
223
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
224
+ # The extra values given here take precedence over values defined on the client or passed to this method.
225
+ extra_headers: Headers | None = None,
226
+ extra_query: Query | None = None,
227
+ extra_body: Body | None = None,
228
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
229
+ ) -> SensorQueryResponse:
230
+ """
231
+ Query Sensors
232
+
233
+ Args:
234
+ extra_headers: Send extra headers
235
+
236
+ extra_query: Add additional query parameters to the request
237
+
238
+ extra_body: Add additional JSON properties to the request
239
+
240
+ timeout: Override the client-level default timeout for this request, in seconds
241
+ """
242
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
243
+ return self._post(
244
+ "/api/v2/sensors/query",
245
+ body=maybe_transform(
246
+ {
247
+ "filter": filter,
248
+ "order_by": order_by,
249
+ "order_dir": order_dir,
250
+ "page_number": page_number,
251
+ "page_size": page_size,
252
+ },
253
+ sensor_query_params.SensorQueryParams,
254
+ ),
255
+ options=make_request_options(
256
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
257
+ ),
258
+ cast_to=SensorQueryResponse,
259
+ )
260
+
261
+
262
+ class AsyncSensorsResource(AsyncAPIResource):
263
+ @cached_property
264
+ def with_raw_response(self) -> AsyncSensorsResourceWithRawResponse:
265
+ """
266
+ This property can be used as a prefix for any HTTP method call to return
267
+ the raw response object instead of the parsed content.
268
+
269
+ For more information, see https://www.github.com/hiddenlayerai/hiddenlayer-sdk-python#accessing-raw-response-data-eg-headers
270
+ """
271
+ return AsyncSensorsResourceWithRawResponse(self)
272
+
273
+ @cached_property
274
+ def with_streaming_response(self) -> AsyncSensorsResourceWithStreamingResponse:
275
+ """
276
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
277
+
278
+ For more information, see https://www.github.com/hiddenlayerai/hiddenlayer-sdk-python#with_streaming_response
279
+ """
280
+ return AsyncSensorsResourceWithStreamingResponse(self)
281
+
282
+ async def create(
283
+ self,
284
+ *,
285
+ plaintext_name: str,
286
+ active: bool | Omit = omit,
287
+ adhoc: bool | Omit = omit,
288
+ tags: Dict[str, object] | Omit = omit,
289
+ version: int | Omit = omit,
290
+ x_correlation_id: str | Omit = omit,
291
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
292
+ # The extra values given here take precedence over values defined on the client or passed to this method.
293
+ extra_headers: Headers | None = None,
294
+ extra_query: Query | None = None,
295
+ extra_body: Body | None = None,
296
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
297
+ ) -> SensorCreateResponse:
298
+ """
299
+ Create Sensor Record
300
+
301
+ Args:
302
+ extra_headers: Send extra headers
303
+
304
+ extra_query: Add additional query parameters to the request
305
+
306
+ extra_body: Add additional JSON properties to the request
307
+
308
+ timeout: Override the client-level default timeout for this request, in seconds
309
+ """
310
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
311
+ return await self._post(
312
+ "/api/v2/sensors/create",
313
+ body=await async_maybe_transform(
314
+ {
315
+ "plaintext_name": plaintext_name,
316
+ "active": active,
317
+ "adhoc": adhoc,
318
+ "tags": tags,
319
+ "version": version,
320
+ },
321
+ sensor_create_params.SensorCreateParams,
322
+ ),
323
+ options=make_request_options(
324
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
325
+ ),
326
+ cast_to=SensorCreateResponse,
327
+ )
328
+
329
+ async def retrieve(
330
+ self,
331
+ sensor_id: str,
332
+ *,
333
+ x_correlation_id: str | Omit = omit,
334
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
335
+ # The extra values given here take precedence over values defined on the client or passed to this method.
336
+ extra_headers: Headers | None = None,
337
+ extra_query: Query | None = None,
338
+ extra_body: Body | None = None,
339
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
340
+ ) -> SensorRetrieveResponse:
341
+ """
342
+ Get Sensor
343
+
344
+ Args:
345
+ extra_headers: Send extra headers
346
+
347
+ extra_query: Add additional query parameters to the request
348
+
349
+ extra_body: Add additional JSON properties to the request
350
+
351
+ timeout: Override the client-level default timeout for this request, in seconds
352
+ """
353
+ if not sensor_id:
354
+ raise ValueError(f"Expected a non-empty value for `sensor_id` but received {sensor_id!r}")
355
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
356
+ return await self._get(
357
+ f"/api/v2/sensors/{sensor_id}",
358
+ options=make_request_options(
359
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
360
+ ),
361
+ cast_to=SensorRetrieveResponse,
362
+ )
363
+
364
+ async def update(
365
+ self,
366
+ sensor_id: str,
367
+ *,
368
+ active: bool | Omit = omit,
369
+ plaintext_name: str | Omit = omit,
370
+ tags: Dict[str, object] | Omit = omit,
371
+ x_correlation_id: str | Omit = omit,
372
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
373
+ # The extra values given here take precedence over values defined on the client or passed to this method.
374
+ extra_headers: Headers | None = None,
375
+ extra_query: Query | None = None,
376
+ extra_body: Body | None = None,
377
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
378
+ ) -> SensorUpdateResponse:
379
+ """
380
+ Update Sensor
381
+
382
+ Args:
383
+ extra_headers: Send extra headers
384
+
385
+ extra_query: Add additional query parameters to the request
386
+
387
+ extra_body: Add additional JSON properties to the request
388
+
389
+ timeout: Override the client-level default timeout for this request, in seconds
390
+ """
391
+ if not sensor_id:
392
+ raise ValueError(f"Expected a non-empty value for `sensor_id` but received {sensor_id!r}")
393
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
394
+ return await self._put(
395
+ f"/api/v2/sensors/{sensor_id}",
396
+ body=await async_maybe_transform(
397
+ {
398
+ "active": active,
399
+ "plaintext_name": plaintext_name,
400
+ "tags": tags,
401
+ },
402
+ sensor_update_params.SensorUpdateParams,
403
+ ),
404
+ options=make_request_options(
405
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
406
+ ),
407
+ cast_to=SensorUpdateResponse,
408
+ )
409
+
410
+ async def delete(
411
+ self,
412
+ sensor_id: str,
413
+ *,
414
+ x_correlation_id: str | Omit = omit,
415
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
416
+ # The extra values given here take precedence over values defined on the client or passed to this method.
417
+ extra_headers: Headers | None = None,
418
+ extra_query: Query | None = None,
419
+ extra_body: Body | None = None,
420
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
421
+ ) -> None:
422
+ """
423
+ Remove an Adhoc Sensor
424
+
425
+ Args:
426
+ extra_headers: Send extra headers
427
+
428
+ extra_query: Add additional query parameters to the request
429
+
430
+ extra_body: Add additional JSON properties to the request
431
+
432
+ timeout: Override the client-level default timeout for this request, in seconds
433
+ """
434
+ if not sensor_id:
435
+ raise ValueError(f"Expected a non-empty value for `sensor_id` but received {sensor_id!r}")
436
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
437
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
438
+ return await self._delete(
439
+ f"/api/v2/sensors/{sensor_id}",
440
+ options=make_request_options(
441
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
442
+ ),
443
+ cast_to=NoneType,
444
+ )
445
+
446
+ async def query(
447
+ self,
448
+ *,
449
+ filter: sensor_query_params.Filter | Omit = omit,
450
+ order_by: str | Omit = omit,
451
+ order_dir: Literal["asc", "desc"] | Omit = omit,
452
+ page_number: int | Omit = omit,
453
+ page_size: int | Omit = omit,
454
+ x_correlation_id: str | Omit = omit,
455
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
456
+ # The extra values given here take precedence over values defined on the client or passed to this method.
457
+ extra_headers: Headers | None = None,
458
+ extra_query: Query | None = None,
459
+ extra_body: Body | None = None,
460
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
461
+ ) -> SensorQueryResponse:
462
+ """
463
+ Query Sensors
464
+
465
+ Args:
466
+ extra_headers: Send extra headers
467
+
468
+ extra_query: Add additional query parameters to the request
469
+
470
+ extra_body: Add additional JSON properties to the request
471
+
472
+ timeout: Override the client-level default timeout for this request, in seconds
473
+ """
474
+ extra_headers = {**strip_not_given({"X-Correlation-Id": x_correlation_id}), **(extra_headers or {})}
475
+ return await self._post(
476
+ "/api/v2/sensors/query",
477
+ body=await async_maybe_transform(
478
+ {
479
+ "filter": filter,
480
+ "order_by": order_by,
481
+ "order_dir": order_dir,
482
+ "page_number": page_number,
483
+ "page_size": page_size,
484
+ },
485
+ sensor_query_params.SensorQueryParams,
486
+ ),
487
+ options=make_request_options(
488
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
489
+ ),
490
+ cast_to=SensorQueryResponse,
491
+ )
492
+
493
+
494
+ class SensorsResourceWithRawResponse:
495
+ def __init__(self, sensors: SensorsResource) -> None:
496
+ self._sensors = sensors
497
+
498
+ self.create = to_raw_response_wrapper(
499
+ sensors.create,
500
+ )
501
+ self.retrieve = to_raw_response_wrapper(
502
+ sensors.retrieve,
503
+ )
504
+ self.update = to_raw_response_wrapper(
505
+ sensors.update,
506
+ )
507
+ self.delete = to_raw_response_wrapper(
508
+ sensors.delete,
509
+ )
510
+ self.query = to_raw_response_wrapper(
511
+ sensors.query,
512
+ )
513
+
514
+
515
+ class AsyncSensorsResourceWithRawResponse:
516
+ def __init__(self, sensors: AsyncSensorsResource) -> None:
517
+ self._sensors = sensors
518
+
519
+ self.create = async_to_raw_response_wrapper(
520
+ sensors.create,
521
+ )
522
+ self.retrieve = async_to_raw_response_wrapper(
523
+ sensors.retrieve,
524
+ )
525
+ self.update = async_to_raw_response_wrapper(
526
+ sensors.update,
527
+ )
528
+ self.delete = async_to_raw_response_wrapper(
529
+ sensors.delete,
530
+ )
531
+ self.query = async_to_raw_response_wrapper(
532
+ sensors.query,
533
+ )
534
+
535
+
536
+ class SensorsResourceWithStreamingResponse:
537
+ def __init__(self, sensors: SensorsResource) -> None:
538
+ self._sensors = sensors
539
+
540
+ self.create = to_streamed_response_wrapper(
541
+ sensors.create,
542
+ )
543
+ self.retrieve = to_streamed_response_wrapper(
544
+ sensors.retrieve,
545
+ )
546
+ self.update = to_streamed_response_wrapper(
547
+ sensors.update,
548
+ )
549
+ self.delete = to_streamed_response_wrapper(
550
+ sensors.delete,
551
+ )
552
+ self.query = to_streamed_response_wrapper(
553
+ sensors.query,
554
+ )
555
+
556
+
557
+ class AsyncSensorsResourceWithStreamingResponse:
558
+ def __init__(self, sensors: AsyncSensorsResource) -> None:
559
+ self._sensors = sensors
560
+
561
+ self.create = async_to_streamed_response_wrapper(
562
+ sensors.create,
563
+ )
564
+ self.retrieve = async_to_streamed_response_wrapper(
565
+ sensors.retrieve,
566
+ )
567
+ self.update = async_to_streamed_response_wrapper(
568
+ sensors.update,
569
+ )
570
+ self.delete = async_to_streamed_response_wrapper(
571
+ sensors.delete,
572
+ )
573
+ self.query = async_to_streamed_response_wrapper(
574
+ sensors.query,
575
+ )
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .sensor_query_params import SensorQueryParams as SensorQueryParams
6
+ from .sensor_create_params import SensorCreateParams as SensorCreateParams
7
+ from .sensor_update_params import SensorUpdateParams as SensorUpdateParams
8
+ from .sensor_query_response import SensorQueryResponse as SensorQueryResponse
9
+ from .sensor_create_response import SensorCreateResponse as SensorCreateResponse
10
+ from .sensor_update_response import SensorUpdateResponse as SensorUpdateResponse
11
+ from .model_retrieve_response import ModelRetrieveResponse as ModelRetrieveResponse
12
+ from .sensor_retrieve_response import SensorRetrieveResponse as SensorRetrieveResponse
13
+ from .interaction_analyze_params import InteractionAnalyzeParams as InteractionAnalyzeParams
14
+ from .interaction_analyze_response import InteractionAnalyzeResponse as InteractionAnalyzeResponse
15
+ from .prompt_analyzer_create_params import PromptAnalyzerCreateParams as PromptAnalyzerCreateParams
16
+ from .prompt_analyzer_create_response import PromptAnalyzerCreateResponse as PromptAnalyzerCreateResponse
@@ -0,0 +1,62 @@
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, Union, Iterable
6
+ from typing_extensions import Required, Annotated, TypeAlias, TypedDict
7
+
8
+ from .._utils import PropertyInfo
9
+
10
+ __all__ = ["InteractionAnalyzeParams", "Metadata", "Input", "InputMessage", "Output", "OutputMessage"]
11
+
12
+
13
+ class InteractionAnalyzeParams(TypedDict, total=False):
14
+ metadata: Required[Metadata]
15
+
16
+ input: Input
17
+
18
+ output: Output
19
+
20
+ hl_project_id: Annotated[str, PropertyInfo(alias="HL-Project-Id")]
21
+
22
+ x_correlation_id: Annotated[str, PropertyInfo(alias="X-Correlation-Id")]
23
+
24
+
25
+ class Metadata(TypedDict, total=False):
26
+ model: Required[str]
27
+ """The language model for the interactions."""
28
+
29
+ requester_id: Required[str]
30
+ """The identifier for the entity making the interactions."""
31
+
32
+ provider: str
33
+ """The provider of the language model."""
34
+
35
+
36
+ class InputMessage(TypedDict, total=False):
37
+ content: Required[str]
38
+ """The textual content of the message."""
39
+
40
+ role: str
41
+ """The role of the message sender (e.g., user, assistant, system)."""
42
+
43
+
44
+ class InputTyped(TypedDict, total=False):
45
+ messages: Iterable[InputMessage]
46
+ """The list of messages as input to a language model."""
47
+
48
+
49
+ Input: TypeAlias = Union[InputTyped, Dict[str, object]]
50
+
51
+
52
+ class OutputMessage(TypedDict, total=False):
53
+ content: Required[str]
54
+ """The textual content of the message."""
55
+
56
+ role: str
57
+ """The role of the message sender (e.g., user, assistant, system)."""
58
+
59
+
60
+ class Output(TypedDict, total=False):
61
+ messages: Iterable[OutputMessage]
62
+ """The list of messages as output from a language model."""