hiddenlayer-sdk 1.2.1__py3-none-any.whl → 2.0.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. hiddenlayer/__init__.py +0 -10
  2. hiddenlayer/sdk/exceptions.py +1 -1
  3. hiddenlayer/sdk/models.py +2 -3
  4. hiddenlayer/sdk/rest/__init__.py +16 -11
  5. hiddenlayer/sdk/rest/api/__init__.py +0 -1
  6. hiddenlayer/sdk/rest/api/model_supply_chain_api.py +1706 -571
  7. hiddenlayer/sdk/rest/api/sensor_api.py +214 -1320
  8. hiddenlayer/sdk/rest/models/__init__.py +16 -10
  9. hiddenlayer/sdk/rest/models/{scan_model_request.py → begin_multi_file_upload200_response.py} +9 -9
  10. hiddenlayer/sdk/rest/models/{get_multipart_upload_response.py → begin_multipart_file_upload200_response.py} +9 -9
  11. hiddenlayer/sdk/rest/models/{multipart_upload_part.py → begin_multipart_file_upload200_response_parts_inner.py} +11 -10
  12. hiddenlayer/sdk/rest/models/errors_inner.py +91 -0
  13. hiddenlayer/sdk/rest/models/file_details_v3.py +8 -2
  14. hiddenlayer/sdk/rest/models/{scan_results_v2.py → file_result_v3.py} +21 -32
  15. hiddenlayer/sdk/rest/models/{model_scan_api_v3_scan_query200_response.py → get_condensed_model_scan_reports200_response.py} +4 -4
  16. hiddenlayer/sdk/rest/models/inventory_v3.py +97 -0
  17. hiddenlayer/sdk/rest/models/model_inventory_info.py +1 -1
  18. hiddenlayer/sdk/rest/models/{detections.py → multi_file_upload_request_v3.py} +14 -22
  19. hiddenlayer/sdk/rest/models/{model_scan_api_v3_scan_model_version_id_patch200_response.py → notify_model_scan_completed200_response.py} +4 -4
  20. hiddenlayer/sdk/rest/models/pagination_v3.py +95 -0
  21. hiddenlayer/sdk/rest/models/problem_details.py +103 -0
  22. hiddenlayer/sdk/rest/models/scan_detection_v31.py +155 -0
  23. hiddenlayer/sdk/rest/models/scan_model_details_v3.py +1 -1
  24. hiddenlayer/sdk/rest/models/scan_results_map_v3.py +105 -0
  25. hiddenlayer/sdk/rest/models/scan_results_v3.py +120 -0
  26. hiddenlayer/sdk/rest/models/{model.py → sensor.py} +4 -4
  27. hiddenlayer/sdk/rest/models/{model_query_response.py → sensor_query_response.py} +7 -7
  28. hiddenlayer/sdk/services/aidr_predictive.py +57 -3
  29. hiddenlayer/sdk/services/model_scan.py +98 -135
  30. hiddenlayer/sdk/version.py +1 -1
  31. {hiddenlayer_sdk-1.2.1.dist-info → hiddenlayer_sdk-2.0.1.dist-info}/METADATA +12 -2
  32. {hiddenlayer_sdk-1.2.1.dist-info → hiddenlayer_sdk-2.0.1.dist-info}/RECORD +35 -31
  33. hiddenlayer/sdk/rest/api/model_scan_api.py +0 -591
  34. hiddenlayer/sdk/rest/models/scan_results.py +0 -118
  35. hiddenlayer/sdk/services/model.py +0 -149
  36. {hiddenlayer_sdk-1.2.1.dist-info → hiddenlayer_sdk-2.0.1.dist-info}/LICENSE +0 -0
  37. {hiddenlayer_sdk-1.2.1.dist-info → hiddenlayer_sdk-2.0.1.dist-info}/WHEEL +0 -0
  38. {hiddenlayer_sdk-1.2.1.dist-info → hiddenlayer_sdk-2.0.1.dist-info}/top_level.txt +0 -0
@@ -17,15 +17,18 @@ from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
19
  from datetime import datetime
20
- from pydantic import Field, StrictBool, StrictStr, field_validator
20
+ from pydantic import Field, StrictBool, StrictInt, StrictStr, field_validator
21
21
  from typing import List, Optional
22
22
  from typing_extensions import Annotated
23
- from hiddenlayer.sdk.rest.models.model_scan_api_v3_scan_model_version_id_patch200_response import ModelScanApiV3ScanModelVersionIdPatch200Response
24
- from hiddenlayer.sdk.rest.models.model_scan_api_v3_scan_query200_response import ModelScanApiV3ScanQuery200Response
23
+ from hiddenlayer.sdk.rest.models.begin_multi_file_upload200_response import BeginMultiFileUpload200Response
24
+ from hiddenlayer.sdk.rest.models.begin_multipart_file_upload200_response import BeginMultipartFileUpload200Response
25
+ from hiddenlayer.sdk.rest.models.get_condensed_model_scan_reports200_response import GetCondensedModelScanReports200Response
26
+ from hiddenlayer.sdk.rest.models.multi_file_upload_request_v3 import MultiFileUploadRequestV3
27
+ from hiddenlayer.sdk.rest.models.notify_model_scan_completed200_response import NotifyModelScanCompleted200Response
25
28
  from hiddenlayer.sdk.rest.models.scan_create_request import ScanCreateRequest
26
29
  from hiddenlayer.sdk.rest.models.scan_job import ScanJob
27
30
  from hiddenlayer.sdk.rest.models.scan_report_v3 import ScanReportV3
28
- from hiddenlayer.sdk.rest.models.scan_results_v2 import ScanResultsV2
31
+ from hiddenlayer.sdk.rest.models.scan_results_map_v3 import ScanResultsMapV3
29
32
 
30
33
  from hiddenlayer.sdk.rest.api_client import ApiClient, RequestSerialized
31
34
  from hiddenlayer.sdk.rest.api_response import ApiResponse
@@ -46,10 +49,9 @@ class ModelSupplyChainApi:
46
49
 
47
50
 
48
51
  @validate_call
49
- def model_scan_api_v3_scan_model_version_id_get(
52
+ def begin_multi_file_upload(
50
53
  self,
51
- scan_id: StrictStr,
52
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
54
+ multi_file_upload_request_v3: Annotated[MultiFileUploadRequestV3, Field(description="Request body for create")],
53
55
  _request_timeout: Union[
54
56
  None,
55
57
  Annotated[StrictFloat, Field(gt=0)],
@@ -62,14 +64,12 @@ class ModelSupplyChainApi:
62
64
  _content_type: Optional[StrictStr] = None,
63
65
  _headers: Optional[Dict[StrictStr, Any]] = None,
64
66
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
65
- ) -> ScanReportV3:
66
- """Get Result of a Model Scan
67
+ ) -> BeginMultiFileUpload200Response:
68
+ """Start V3 Upload
67
69
 
68
70
 
69
- :param scan_id: (required)
70
- :type scan_id: str
71
- :param has_detections: Filter file_results to only those that have detections (and parents)
72
- :type has_detections: bool
71
+ :param multi_file_upload_request_v3: Request body for create (required)
72
+ :type multi_file_upload_request_v3: MultiFileUploadRequestV3
73
73
  :param _request_timeout: timeout setting for this request. If one
74
74
  number provided, it will be total request
75
75
  timeout. It can also be a pair (tuple) of
@@ -92,9 +92,8 @@ class ModelSupplyChainApi:
92
92
  :return: Returns the result object.
93
93
  """ # noqa: E501
94
94
 
95
- _param = self._model_scan_api_v3_scan_model_version_id_get_serialize(
96
- scan_id=scan_id,
97
- has_detections=has_detections,
95
+ _param = self._begin_multi_file_upload_serialize(
96
+ multi_file_upload_request_v3=multi_file_upload_request_v3,
98
97
  _request_auth=_request_auth,
99
98
  _content_type=_content_type,
100
99
  _headers=_headers,
@@ -102,9 +101,9 @@ class ModelSupplyChainApi:
102
101
  )
103
102
 
104
103
  _response_types_map: Dict[str, Optional[str]] = {
105
- '200': "ScanReportV3",
104
+ '200': "BeginMultiFileUpload200Response",
106
105
  '400': None,
107
- '404': None,
106
+ '422': "ValidationErrorModel",
108
107
  }
109
108
  response_data = self.api_client.call_api(
110
109
  *_param,
@@ -118,10 +117,9 @@ class ModelSupplyChainApi:
118
117
 
119
118
 
120
119
  @validate_call
121
- def model_scan_api_v3_scan_model_version_id_get_with_http_info(
120
+ def begin_multi_file_upload_with_http_info(
122
121
  self,
123
- scan_id: StrictStr,
124
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
122
+ multi_file_upload_request_v3: Annotated[MultiFileUploadRequestV3, Field(description="Request body for create")],
125
123
  _request_timeout: Union[
126
124
  None,
127
125
  Annotated[StrictFloat, Field(gt=0)],
@@ -134,14 +132,12 @@ class ModelSupplyChainApi:
134
132
  _content_type: Optional[StrictStr] = None,
135
133
  _headers: Optional[Dict[StrictStr, Any]] = None,
136
134
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
137
- ) -> ApiResponse[ScanReportV3]:
138
- """Get Result of a Model Scan
135
+ ) -> ApiResponse[BeginMultiFileUpload200Response]:
136
+ """Start V3 Upload
139
137
 
140
138
 
141
- :param scan_id: (required)
142
- :type scan_id: str
143
- :param has_detections: Filter file_results to only those that have detections (and parents)
144
- :type has_detections: bool
139
+ :param multi_file_upload_request_v3: Request body for create (required)
140
+ :type multi_file_upload_request_v3: MultiFileUploadRequestV3
145
141
  :param _request_timeout: timeout setting for this request. If one
146
142
  number provided, it will be total request
147
143
  timeout. It can also be a pair (tuple) of
@@ -164,9 +160,8 @@ class ModelSupplyChainApi:
164
160
  :return: Returns the result object.
165
161
  """ # noqa: E501
166
162
 
167
- _param = self._model_scan_api_v3_scan_model_version_id_get_serialize(
168
- scan_id=scan_id,
169
- has_detections=has_detections,
163
+ _param = self._begin_multi_file_upload_serialize(
164
+ multi_file_upload_request_v3=multi_file_upload_request_v3,
170
165
  _request_auth=_request_auth,
171
166
  _content_type=_content_type,
172
167
  _headers=_headers,
@@ -174,9 +169,9 @@ class ModelSupplyChainApi:
174
169
  )
175
170
 
176
171
  _response_types_map: Dict[str, Optional[str]] = {
177
- '200': "ScanReportV3",
172
+ '200': "BeginMultiFileUpload200Response",
178
173
  '400': None,
179
- '404': None,
174
+ '422': "ValidationErrorModel",
180
175
  }
181
176
  response_data = self.api_client.call_api(
182
177
  *_param,
@@ -190,10 +185,9 @@ class ModelSupplyChainApi:
190
185
 
191
186
 
192
187
  @validate_call
193
- def model_scan_api_v3_scan_model_version_id_get_without_preload_content(
188
+ def begin_multi_file_upload_without_preload_content(
194
189
  self,
195
- scan_id: StrictStr,
196
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
190
+ multi_file_upload_request_v3: Annotated[MultiFileUploadRequestV3, Field(description="Request body for create")],
197
191
  _request_timeout: Union[
198
192
  None,
199
193
  Annotated[StrictFloat, Field(gt=0)],
@@ -207,13 +201,11 @@ class ModelSupplyChainApi:
207
201
  _headers: Optional[Dict[StrictStr, Any]] = None,
208
202
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
209
203
  ) -> RESTResponseType:
210
- """Get Result of a Model Scan
204
+ """Start V3 Upload
211
205
 
212
206
 
213
- :param scan_id: (required)
214
- :type scan_id: str
215
- :param has_detections: Filter file_results to only those that have detections (and parents)
216
- :type has_detections: bool
207
+ :param multi_file_upload_request_v3: Request body for create (required)
208
+ :type multi_file_upload_request_v3: MultiFileUploadRequestV3
217
209
  :param _request_timeout: timeout setting for this request. If one
218
210
  number provided, it will be total request
219
211
  timeout. It can also be a pair (tuple) of
@@ -236,9 +228,8 @@ class ModelSupplyChainApi:
236
228
  :return: Returns the result object.
237
229
  """ # noqa: E501
238
230
 
239
- _param = self._model_scan_api_v3_scan_model_version_id_get_serialize(
240
- scan_id=scan_id,
241
- has_detections=has_detections,
231
+ _param = self._begin_multi_file_upload_serialize(
232
+ multi_file_upload_request_v3=multi_file_upload_request_v3,
242
233
  _request_auth=_request_auth,
243
234
  _content_type=_content_type,
244
235
  _headers=_headers,
@@ -246,9 +237,9 @@ class ModelSupplyChainApi:
246
237
  )
247
238
 
248
239
  _response_types_map: Dict[str, Optional[str]] = {
249
- '200': "ScanReportV3",
240
+ '200': "BeginMultiFileUpload200Response",
250
241
  '400': None,
251
- '404': None,
242
+ '422': "ValidationErrorModel",
252
243
  }
253
244
  response_data = self.api_client.call_api(
254
245
  *_param,
@@ -257,10 +248,9 @@ class ModelSupplyChainApi:
257
248
  return response_data.response
258
249
 
259
250
 
260
- def _model_scan_api_v3_scan_model_version_id_get_serialize(
251
+ def _begin_multi_file_upload_serialize(
261
252
  self,
262
- scan_id,
263
- has_detections,
253
+ multi_file_upload_request_v3,
264
254
  _request_auth,
265
255
  _content_type,
266
256
  _headers,
@@ -280,26 +270,34 @@ class ModelSupplyChainApi:
280
270
  _body_params: Optional[bytes] = None
281
271
 
282
272
  # process the path parameters
283
- if scan_id is not None:
284
- _path_params['scan_id'] = scan_id
285
273
  # process the query parameters
286
- if has_detections is not None:
287
-
288
- _query_params.append(('has_detections', has_detections))
289
-
290
274
  # process the header parameters
291
275
  # process the form parameters
292
276
  # process the body parameter
277
+ if multi_file_upload_request_v3 is not None:
278
+ _body_params = multi_file_upload_request_v3
293
279
 
294
280
 
295
281
  # set the HTTP header `Accept`
296
282
  _header_params['Accept'] = self.api_client.select_header_accept(
297
283
  [
298
- 'application/json; charset=utf-8',
299
- 'application/sarif+json'
284
+ 'application/json'
300
285
  ]
301
286
  )
302
287
 
288
+ # set the HTTP header `Content-Type`
289
+ if _content_type:
290
+ _header_params['Content-Type'] = _content_type
291
+ else:
292
+ _default_content_type = (
293
+ self.api_client.select_header_content_type(
294
+ [
295
+ 'application/json'
296
+ ]
297
+ )
298
+ )
299
+ if _default_content_type is not None:
300
+ _header_params['Content-Type'] = _default_content_type
303
301
 
304
302
  # authentication setting
305
303
  _auth_settings: List[str] = [
@@ -307,8 +305,8 @@ class ModelSupplyChainApi:
307
305
  ]
308
306
 
309
307
  return self.api_client.param_serialize(
310
- method='GET',
311
- resource_path='/scan/v3/results/{scan_id}',
308
+ method='POST',
309
+ resource_path='/scan/v3/upload',
312
310
  path_params=_path_params,
313
311
  query_params=_query_params,
314
312
  header_params=_header_params,
@@ -325,11 +323,11 @@ class ModelSupplyChainApi:
325
323
 
326
324
 
327
325
  @validate_call
328
- def model_scan_api_v3_scan_model_version_id_patch(
326
+ def begin_multipart_file_upload(
329
327
  self,
328
+ file_content_length: Annotated[StrictInt, Field(description="Added file size in bytes")],
329
+ file_name: Annotated[StrictStr, Field(description="Added file name")],
330
330
  scan_id: StrictStr,
331
- scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for partial update")],
332
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
333
331
  _request_timeout: Union[
334
332
  None,
335
333
  Annotated[StrictFloat, Field(gt=0)],
@@ -342,16 +340,16 @@ class ModelSupplyChainApi:
342
340
  _content_type: Optional[StrictStr] = None,
343
341
  _headers: Optional[Dict[StrictStr, Any]] = None,
344
342
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
345
- ) -> ModelScanApiV3ScanModelVersionIdPatch200Response:
346
- """Indicate part (file or files) of a model scan has completed
343
+ ) -> BeginMultipartFileUpload200Response:
344
+ """Add file to V3 Upload
347
345
 
348
346
 
347
+ :param file_content_length: Added file size in bytes (required)
348
+ :type file_content_length: int
349
+ :param file_name: Added file name (required)
350
+ :type file_name: str
349
351
  :param scan_id: (required)
350
352
  :type scan_id: str
351
- :param scan_report_v3: Request body for partial update (required)
352
- :type scan_report_v3: ScanReportV3
353
- :param has_detections: Filter file_results to only those that have detections (and parents)
354
- :type has_detections: bool
355
353
  :param _request_timeout: timeout setting for this request. If one
356
354
  number provided, it will be total request
357
355
  timeout. It can also be a pair (tuple) of
@@ -374,10 +372,10 @@ class ModelSupplyChainApi:
374
372
  :return: Returns the result object.
375
373
  """ # noqa: E501
376
374
 
377
- _param = self._model_scan_api_v3_scan_model_version_id_patch_serialize(
375
+ _param = self._begin_multipart_file_upload_serialize(
376
+ file_content_length=file_content_length,
377
+ file_name=file_name,
378
378
  scan_id=scan_id,
379
- scan_report_v3=scan_report_v3,
380
- has_detections=has_detections,
381
379
  _request_auth=_request_auth,
382
380
  _content_type=_content_type,
383
381
  _headers=_headers,
@@ -385,7 +383,7 @@ class ModelSupplyChainApi:
385
383
  )
386
384
 
387
385
  _response_types_map: Dict[str, Optional[str]] = {
388
- '200': "ModelScanApiV3ScanModelVersionIdPatch200Response",
386
+ '200': "BeginMultipartFileUpload200Response",
389
387
  '400': None,
390
388
  '422': "ValidationErrorModel",
391
389
  }
@@ -401,11 +399,11 @@ class ModelSupplyChainApi:
401
399
 
402
400
 
403
401
  @validate_call
404
- def model_scan_api_v3_scan_model_version_id_patch_with_http_info(
402
+ def begin_multipart_file_upload_with_http_info(
405
403
  self,
404
+ file_content_length: Annotated[StrictInt, Field(description="Added file size in bytes")],
405
+ file_name: Annotated[StrictStr, Field(description="Added file name")],
406
406
  scan_id: StrictStr,
407
- scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for partial update")],
408
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
409
407
  _request_timeout: Union[
410
408
  None,
411
409
  Annotated[StrictFloat, Field(gt=0)],
@@ -418,16 +416,16 @@ class ModelSupplyChainApi:
418
416
  _content_type: Optional[StrictStr] = None,
419
417
  _headers: Optional[Dict[StrictStr, Any]] = None,
420
418
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
421
- ) -> ApiResponse[ModelScanApiV3ScanModelVersionIdPatch200Response]:
422
- """Indicate part (file or files) of a model scan has completed
419
+ ) -> ApiResponse[BeginMultipartFileUpload200Response]:
420
+ """Add file to V3 Upload
423
421
 
424
422
 
423
+ :param file_content_length: Added file size in bytes (required)
424
+ :type file_content_length: int
425
+ :param file_name: Added file name (required)
426
+ :type file_name: str
425
427
  :param scan_id: (required)
426
428
  :type scan_id: str
427
- :param scan_report_v3: Request body for partial update (required)
428
- :type scan_report_v3: ScanReportV3
429
- :param has_detections: Filter file_results to only those that have detections (and parents)
430
- :type has_detections: bool
431
429
  :param _request_timeout: timeout setting for this request. If one
432
430
  number provided, it will be total request
433
431
  timeout. It can also be a pair (tuple) of
@@ -450,10 +448,10 @@ class ModelSupplyChainApi:
450
448
  :return: Returns the result object.
451
449
  """ # noqa: E501
452
450
 
453
- _param = self._model_scan_api_v3_scan_model_version_id_patch_serialize(
451
+ _param = self._begin_multipart_file_upload_serialize(
452
+ file_content_length=file_content_length,
453
+ file_name=file_name,
454
454
  scan_id=scan_id,
455
- scan_report_v3=scan_report_v3,
456
- has_detections=has_detections,
457
455
  _request_auth=_request_auth,
458
456
  _content_type=_content_type,
459
457
  _headers=_headers,
@@ -461,7 +459,7 @@ class ModelSupplyChainApi:
461
459
  )
462
460
 
463
461
  _response_types_map: Dict[str, Optional[str]] = {
464
- '200': "ModelScanApiV3ScanModelVersionIdPatch200Response",
462
+ '200': "BeginMultipartFileUpload200Response",
465
463
  '400': None,
466
464
  '422': "ValidationErrorModel",
467
465
  }
@@ -477,11 +475,11 @@ class ModelSupplyChainApi:
477
475
 
478
476
 
479
477
  @validate_call
480
- def model_scan_api_v3_scan_model_version_id_patch_without_preload_content(
478
+ def begin_multipart_file_upload_without_preload_content(
481
479
  self,
480
+ file_content_length: Annotated[StrictInt, Field(description="Added file size in bytes")],
481
+ file_name: Annotated[StrictStr, Field(description="Added file name")],
482
482
  scan_id: StrictStr,
483
- scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for partial update")],
484
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
485
483
  _request_timeout: Union[
486
484
  None,
487
485
  Annotated[StrictFloat, Field(gt=0)],
@@ -495,15 +493,15 @@ class ModelSupplyChainApi:
495
493
  _headers: Optional[Dict[StrictStr, Any]] = None,
496
494
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
497
495
  ) -> RESTResponseType:
498
- """Indicate part (file or files) of a model scan has completed
496
+ """Add file to V3 Upload
499
497
 
500
498
 
499
+ :param file_content_length: Added file size in bytes (required)
500
+ :type file_content_length: int
501
+ :param file_name: Added file name (required)
502
+ :type file_name: str
501
503
  :param scan_id: (required)
502
504
  :type scan_id: str
503
- :param scan_report_v3: Request body for partial update (required)
504
- :type scan_report_v3: ScanReportV3
505
- :param has_detections: Filter file_results to only those that have detections (and parents)
506
- :type has_detections: bool
507
505
  :param _request_timeout: timeout setting for this request. If one
508
506
  number provided, it will be total request
509
507
  timeout. It can also be a pair (tuple) of
@@ -526,10 +524,10 @@ class ModelSupplyChainApi:
526
524
  :return: Returns the result object.
527
525
  """ # noqa: E501
528
526
 
529
- _param = self._model_scan_api_v3_scan_model_version_id_patch_serialize(
527
+ _param = self._begin_multipart_file_upload_serialize(
528
+ file_content_length=file_content_length,
529
+ file_name=file_name,
530
530
  scan_id=scan_id,
531
- scan_report_v3=scan_report_v3,
532
- has_detections=has_detections,
533
531
  _request_auth=_request_auth,
534
532
  _content_type=_content_type,
535
533
  _headers=_headers,
@@ -537,7 +535,7 @@ class ModelSupplyChainApi:
537
535
  )
538
536
 
539
537
  _response_types_map: Dict[str, Optional[str]] = {
540
- '200': "ModelScanApiV3ScanModelVersionIdPatch200Response",
538
+ '200': "BeginMultipartFileUpload200Response",
541
539
  '400': None,
542
540
  '422': "ValidationErrorModel",
543
541
  }
@@ -548,11 +546,11 @@ class ModelSupplyChainApi:
548
546
  return response_data.response
549
547
 
550
548
 
551
- def _model_scan_api_v3_scan_model_version_id_patch_serialize(
549
+ def _begin_multipart_file_upload_serialize(
552
550
  self,
551
+ file_content_length,
552
+ file_name,
553
553
  scan_id,
554
- scan_report_v3,
555
- has_detections,
556
554
  _request_auth,
557
555
  _content_type,
558
556
  _headers,
@@ -575,15 +573,13 @@ class ModelSupplyChainApi:
575
573
  if scan_id is not None:
576
574
  _path_params['scan_id'] = scan_id
577
575
  # process the query parameters
578
- if has_detections is not None:
579
-
580
- _query_params.append(('has_detections', has_detections))
581
-
582
576
  # process the header parameters
577
+ if file_content_length is not None:
578
+ _header_params['file-content-length'] = file_content_length
579
+ if file_name is not None:
580
+ _header_params['file-name'] = file_name
583
581
  # process the form parameters
584
582
  # process the body parameter
585
- if scan_report_v3 is not None:
586
- _body_params = scan_report_v3
587
583
 
588
584
 
589
585
  # set the HTTP header `Accept`
@@ -593,19 +589,6 @@ class ModelSupplyChainApi:
593
589
  ]
594
590
  )
595
591
 
596
- # set the HTTP header `Content-Type`
597
- if _content_type:
598
- _header_params['Content-Type'] = _content_type
599
- else:
600
- _default_content_type = (
601
- self.api_client.select_header_content_type(
602
- [
603
- 'application/json'
604
- ]
605
- )
606
- )
607
- if _default_content_type is not None:
608
- _header_params['Content-Type'] = _default_content_type
609
592
 
610
593
  # authentication setting
611
594
  _auth_settings: List[str] = [
@@ -613,8 +596,8 @@ class ModelSupplyChainApi:
613
596
  ]
614
597
 
615
598
  return self.api_client.param_serialize(
616
- method='PATCH',
617
- resource_path='/scan/v3/results/{scan_id}',
599
+ method='POST',
600
+ resource_path='/scan/v3/upload/{scan_id}/file',
618
601
  path_params=_path_params,
619
602
  query_params=_query_params,
620
603
  header_params=_header_params,
@@ -631,11 +614,9 @@ class ModelSupplyChainApi:
631
614
 
632
615
 
633
616
  @validate_call
634
- def model_scan_api_v3_scan_model_version_id_post(
617
+ def complete_multi_file_upload(
635
618
  self,
636
619
  scan_id: StrictStr,
637
- scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for create")],
638
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
639
620
  _request_timeout: Union[
640
621
  None,
641
622
  Annotated[StrictFloat, Field(gt=0)],
@@ -648,16 +629,12 @@ class ModelSupplyChainApi:
648
629
  _content_type: Optional[StrictStr] = None,
649
630
  _headers: Optional[Dict[StrictStr, Any]] = None,
650
631
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
651
- ) -> None:
652
- """Indicate model scan has started
632
+ ) -> BeginMultiFileUpload200Response:
633
+ """Indicate All files are uploaded and start the scan
653
634
 
654
635
 
655
636
  :param scan_id: (required)
656
637
  :type scan_id: str
657
- :param scan_report_v3: Request body for create (required)
658
- :type scan_report_v3: ScanReportV3
659
- :param has_detections: Filter file_results to only those that have detections (and parents)
660
- :type has_detections: bool
661
638
  :param _request_timeout: timeout setting for this request. If one
662
639
  number provided, it will be total request
663
640
  timeout. It can also be a pair (tuple) of
@@ -680,10 +657,8 @@ class ModelSupplyChainApi:
680
657
  :return: Returns the result object.
681
658
  """ # noqa: E501
682
659
 
683
- _param = self._model_scan_api_v3_scan_model_version_id_post_serialize(
660
+ _param = self._complete_multi_file_upload_serialize(
684
661
  scan_id=scan_id,
685
- scan_report_v3=scan_report_v3,
686
- has_detections=has_detections,
687
662
  _request_auth=_request_auth,
688
663
  _content_type=_content_type,
689
664
  _headers=_headers,
@@ -691,7 +666,7 @@ class ModelSupplyChainApi:
691
666
  )
692
667
 
693
668
  _response_types_map: Dict[str, Optional[str]] = {
694
- '201': None,
669
+ '200': "BeginMultiFileUpload200Response",
695
670
  '400': None,
696
671
  '422': "ValidationErrorModel",
697
672
  }
@@ -707,11 +682,9 @@ class ModelSupplyChainApi:
707
682
 
708
683
 
709
684
  @validate_call
710
- def model_scan_api_v3_scan_model_version_id_post_with_http_info(
685
+ def complete_multi_file_upload_with_http_info(
711
686
  self,
712
687
  scan_id: StrictStr,
713
- scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for create")],
714
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
715
688
  _request_timeout: Union[
716
689
  None,
717
690
  Annotated[StrictFloat, Field(gt=0)],
@@ -724,16 +697,12 @@ class ModelSupplyChainApi:
724
697
  _content_type: Optional[StrictStr] = None,
725
698
  _headers: Optional[Dict[StrictStr, Any]] = None,
726
699
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
727
- ) -> ApiResponse[None]:
728
- """Indicate model scan has started
700
+ ) -> ApiResponse[BeginMultiFileUpload200Response]:
701
+ """Indicate All files are uploaded and start the scan
729
702
 
730
703
 
731
704
  :param scan_id: (required)
732
705
  :type scan_id: str
733
- :param scan_report_v3: Request body for create (required)
734
- :type scan_report_v3: ScanReportV3
735
- :param has_detections: Filter file_results to only those that have detections (and parents)
736
- :type has_detections: bool
737
706
  :param _request_timeout: timeout setting for this request. If one
738
707
  number provided, it will be total request
739
708
  timeout. It can also be a pair (tuple) of
@@ -756,10 +725,8 @@ class ModelSupplyChainApi:
756
725
  :return: Returns the result object.
757
726
  """ # noqa: E501
758
727
 
759
- _param = self._model_scan_api_v3_scan_model_version_id_post_serialize(
728
+ _param = self._complete_multi_file_upload_serialize(
760
729
  scan_id=scan_id,
761
- scan_report_v3=scan_report_v3,
762
- has_detections=has_detections,
763
730
  _request_auth=_request_auth,
764
731
  _content_type=_content_type,
765
732
  _headers=_headers,
@@ -767,7 +734,7 @@ class ModelSupplyChainApi:
767
734
  )
768
735
 
769
736
  _response_types_map: Dict[str, Optional[str]] = {
770
- '201': None,
737
+ '200': "BeginMultiFileUpload200Response",
771
738
  '400': None,
772
739
  '422': "ValidationErrorModel",
773
740
  }
@@ -783,11 +750,9 @@ class ModelSupplyChainApi:
783
750
 
784
751
 
785
752
  @validate_call
786
- def model_scan_api_v3_scan_model_version_id_post_without_preload_content(
753
+ def complete_multi_file_upload_without_preload_content(
787
754
  self,
788
755
  scan_id: StrictStr,
789
- scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for create")],
790
- has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
791
756
  _request_timeout: Union[
792
757
  None,
793
758
  Annotated[StrictFloat, Field(gt=0)],
@@ -801,15 +766,11 @@ class ModelSupplyChainApi:
801
766
  _headers: Optional[Dict[StrictStr, Any]] = None,
802
767
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
803
768
  ) -> RESTResponseType:
804
- """Indicate model scan has started
769
+ """Indicate All files are uploaded and start the scan
805
770
 
806
771
 
807
772
  :param scan_id: (required)
808
773
  :type scan_id: str
809
- :param scan_report_v3: Request body for create (required)
810
- :type scan_report_v3: ScanReportV3
811
- :param has_detections: Filter file_results to only those that have detections (and parents)
812
- :type has_detections: bool
813
774
  :param _request_timeout: timeout setting for this request. If one
814
775
  number provided, it will be total request
815
776
  timeout. It can also be a pair (tuple) of
@@ -832,10 +793,8 @@ class ModelSupplyChainApi:
832
793
  :return: Returns the result object.
833
794
  """ # noqa: E501
834
795
 
835
- _param = self._model_scan_api_v3_scan_model_version_id_post_serialize(
796
+ _param = self._complete_multi_file_upload_serialize(
836
797
  scan_id=scan_id,
837
- scan_report_v3=scan_report_v3,
838
- has_detections=has_detections,
839
798
  _request_auth=_request_auth,
840
799
  _content_type=_content_type,
841
800
  _headers=_headers,
@@ -843,7 +802,7 @@ class ModelSupplyChainApi:
843
802
  )
844
803
 
845
804
  _response_types_map: Dict[str, Optional[str]] = {
846
- '201': None,
805
+ '200': "BeginMultiFileUpload200Response",
847
806
  '400': None,
848
807
  '422': "ValidationErrorModel",
849
808
  }
@@ -854,11 +813,9 @@ class ModelSupplyChainApi:
854
813
  return response_data.response
855
814
 
856
815
 
857
- def _model_scan_api_v3_scan_model_version_id_post_serialize(
816
+ def _complete_multi_file_upload_serialize(
858
817
  self,
859
818
  scan_id,
860
- scan_report_v3,
861
- has_detections,
862
819
  _request_auth,
863
820
  _content_type,
864
821
  _headers,
@@ -881,15 +838,9 @@ class ModelSupplyChainApi:
881
838
  if scan_id is not None:
882
839
  _path_params['scan_id'] = scan_id
883
840
  # process the query parameters
884
- if has_detections is not None:
885
-
886
- _query_params.append(('has_detections', has_detections))
887
-
888
841
  # process the header parameters
889
842
  # process the form parameters
890
843
  # process the body parameter
891
- if scan_report_v3 is not None:
892
- _body_params = scan_report_v3
893
844
 
894
845
 
895
846
  # set the HTTP header `Accept`
@@ -899,19 +850,6 @@ class ModelSupplyChainApi:
899
850
  ]
900
851
  )
901
852
 
902
- # set the HTTP header `Content-Type`
903
- if _content_type:
904
- _header_params['Content-Type'] = _content_type
905
- else:
906
- _default_content_type = (
907
- self.api_client.select_header_content_type(
908
- [
909
- 'application/json'
910
- ]
911
- )
912
- )
913
- if _default_content_type is not None:
914
- _header_params['Content-Type'] = _default_content_type
915
853
 
916
854
  # authentication setting
917
855
  _auth_settings: List[str] = [
@@ -919,8 +857,8 @@ class ModelSupplyChainApi:
919
857
  ]
920
858
 
921
859
  return self.api_client.param_serialize(
922
- method='POST',
923
- resource_path='/scan/v3/results/{scan_id}',
860
+ method='PATCH',
861
+ resource_path='/scan/v3/upload/{scan_id}',
924
862
  path_params=_path_params,
925
863
  query_params=_query_params,
926
864
  header_params=_header_params,
@@ -937,18 +875,10 @@ class ModelSupplyChainApi:
937
875
 
938
876
 
939
877
  @validate_call
940
- def model_scan_api_v3_scan_query(
878
+ def complete_multipart_file_upload(
941
879
  self,
942
- model_version_ids: Annotated[Optional[List[StrictStr]], Field(description="Model Version ID")] = None,
943
- model_ids: Annotated[Optional[List[StrictStr]], Field(description="Model ID")] = None,
944
- start_time: Annotated[Optional[datetime], Field(description="Start Time")] = None,
945
- end_time: Annotated[Optional[datetime], Field(description="End Time")] = None,
946
- severity: Annotated[Optional[List[StrictStr]], Field(description="Severities")] = None,
947
- status: Annotated[Optional[List[StrictStr]], Field(description="Statuses")] = None,
948
- limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None,
949
- offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
950
- sort: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="allow sorting by status, severity or created at, ascending (+) or the default descending (-)")] = None,
951
- latest_per_model_version_only: Annotated[Optional[StrictBool], Field(description="only return latest result per model version")] = None,
880
+ scan_id: StrictStr,
881
+ file_id: StrictStr,
952
882
  _request_timeout: Union[
953
883
  None,
954
884
  Annotated[StrictFloat, Field(gt=0)],
@@ -961,30 +891,14 @@ class ModelSupplyChainApi:
961
891
  _content_type: Optional[StrictStr] = None,
962
892
  _headers: Optional[Dict[StrictStr, Any]] = None,
963
893
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
964
- ) -> ModelScanApiV3ScanQuery200Response:
965
- """Get condensed reports for a Model Scan
894
+ ) -> BeginMultiFileUpload200Response:
895
+ """Indicate that upload is completed for {file_id}
966
896
 
967
897
 
968
- :param model_version_ids: Model Version ID
969
- :type model_version_ids: List[str]
970
- :param model_ids: Model ID
971
- :type model_ids: List[str]
972
- :param start_time: Start Time
973
- :type start_time: datetime
974
- :param end_time: End Time
975
- :type end_time: datetime
976
- :param severity: Severities
977
- :type severity: List[str]
978
- :param status: Statuses
979
- :type status: List[str]
980
- :param limit:
981
- :type limit: int
982
- :param offset:
983
- :type offset: int
984
- :param sort: allow sorting by status, severity or created at, ascending (+) or the default descending (-)
985
- :type sort: str
986
- :param latest_per_model_version_only: only return latest result per model version
987
- :type latest_per_model_version_only: bool
898
+ :param scan_id: (required)
899
+ :type scan_id: str
900
+ :param file_id: (required)
901
+ :type file_id: str
988
902
  :param _request_timeout: timeout setting for this request. If one
989
903
  number provided, it will be total request
990
904
  timeout. It can also be a pair (tuple) of
@@ -1007,17 +921,9 @@ class ModelSupplyChainApi:
1007
921
  :return: Returns the result object.
1008
922
  """ # noqa: E501
1009
923
 
1010
- _param = self._model_scan_api_v3_scan_query_serialize(
1011
- model_version_ids=model_version_ids,
1012
- model_ids=model_ids,
1013
- start_time=start_time,
1014
- end_time=end_time,
1015
- severity=severity,
1016
- status=status,
1017
- limit=limit,
1018
- offset=offset,
1019
- sort=sort,
1020
- latest_per_model_version_only=latest_per_model_version_only,
924
+ _param = self._complete_multipart_file_upload_serialize(
925
+ scan_id=scan_id,
926
+ file_id=file_id,
1021
927
  _request_auth=_request_auth,
1022
928
  _content_type=_content_type,
1023
929
  _headers=_headers,
@@ -1025,9 +931,9 @@ class ModelSupplyChainApi:
1025
931
  )
1026
932
 
1027
933
  _response_types_map: Dict[str, Optional[str]] = {
1028
- '200': "ModelScanApiV3ScanQuery200Response",
934
+ '200': "BeginMultiFileUpload200Response",
1029
935
  '400': None,
1030
- '404': None,
936
+ '422': "ValidationErrorModel",
1031
937
  }
1032
938
  response_data = self.api_client.call_api(
1033
939
  *_param,
@@ -1041,18 +947,10 @@ class ModelSupplyChainApi:
1041
947
 
1042
948
 
1043
949
  @validate_call
1044
- def model_scan_api_v3_scan_query_with_http_info(
950
+ def complete_multipart_file_upload_with_http_info(
1045
951
  self,
1046
- model_version_ids: Annotated[Optional[List[StrictStr]], Field(description="Model Version ID")] = None,
1047
- model_ids: Annotated[Optional[List[StrictStr]], Field(description="Model ID")] = None,
1048
- start_time: Annotated[Optional[datetime], Field(description="Start Time")] = None,
1049
- end_time: Annotated[Optional[datetime], Field(description="End Time")] = None,
1050
- severity: Annotated[Optional[List[StrictStr]], Field(description="Severities")] = None,
1051
- status: Annotated[Optional[List[StrictStr]], Field(description="Statuses")] = None,
1052
- limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None,
1053
- offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
1054
- sort: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="allow sorting by status, severity or created at, ascending (+) or the default descending (-)")] = None,
1055
- latest_per_model_version_only: Annotated[Optional[StrictBool], Field(description="only return latest result per model version")] = None,
952
+ scan_id: StrictStr,
953
+ file_id: StrictStr,
1056
954
  _request_timeout: Union[
1057
955
  None,
1058
956
  Annotated[StrictFloat, Field(gt=0)],
@@ -1065,30 +963,14 @@ class ModelSupplyChainApi:
1065
963
  _content_type: Optional[StrictStr] = None,
1066
964
  _headers: Optional[Dict[StrictStr, Any]] = None,
1067
965
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1068
- ) -> ApiResponse[ModelScanApiV3ScanQuery200Response]:
1069
- """Get condensed reports for a Model Scan
966
+ ) -> ApiResponse[BeginMultiFileUpload200Response]:
967
+ """Indicate that upload is completed for {file_id}
1070
968
 
1071
969
 
1072
- :param model_version_ids: Model Version ID
1073
- :type model_version_ids: List[str]
1074
- :param model_ids: Model ID
1075
- :type model_ids: List[str]
1076
- :param start_time: Start Time
1077
- :type start_time: datetime
1078
- :param end_time: End Time
1079
- :type end_time: datetime
1080
- :param severity: Severities
1081
- :type severity: List[str]
1082
- :param status: Statuses
1083
- :type status: List[str]
1084
- :param limit:
1085
- :type limit: int
1086
- :param offset:
1087
- :type offset: int
1088
- :param sort: allow sorting by status, severity or created at, ascending (+) or the default descending (-)
1089
- :type sort: str
1090
- :param latest_per_model_version_only: only return latest result per model version
1091
- :type latest_per_model_version_only: bool
970
+ :param scan_id: (required)
971
+ :type scan_id: str
972
+ :param file_id: (required)
973
+ :type file_id: str
1092
974
  :param _request_timeout: timeout setting for this request. If one
1093
975
  number provided, it will be total request
1094
976
  timeout. It can also be a pair (tuple) of
@@ -1111,10 +993,721 @@ class ModelSupplyChainApi:
1111
993
  :return: Returns the result object.
1112
994
  """ # noqa: E501
1113
995
 
1114
- _param = self._model_scan_api_v3_scan_query_serialize(
1115
- model_version_ids=model_version_ids,
1116
- model_ids=model_ids,
1117
- start_time=start_time,
996
+ _param = self._complete_multipart_file_upload_serialize(
997
+ scan_id=scan_id,
998
+ file_id=file_id,
999
+ _request_auth=_request_auth,
1000
+ _content_type=_content_type,
1001
+ _headers=_headers,
1002
+ _host_index=_host_index
1003
+ )
1004
+
1005
+ _response_types_map: Dict[str, Optional[str]] = {
1006
+ '200': "BeginMultiFileUpload200Response",
1007
+ '400': None,
1008
+ '422': "ValidationErrorModel",
1009
+ }
1010
+ response_data = self.api_client.call_api(
1011
+ *_param,
1012
+ _request_timeout=_request_timeout
1013
+ )
1014
+ response_data.read()
1015
+ return self.api_client.response_deserialize(
1016
+ response_data=response_data,
1017
+ response_types_map=_response_types_map,
1018
+ )
1019
+
1020
+
1021
+ @validate_call
1022
+ def complete_multipart_file_upload_without_preload_content(
1023
+ self,
1024
+ scan_id: StrictStr,
1025
+ file_id: StrictStr,
1026
+ _request_timeout: Union[
1027
+ None,
1028
+ Annotated[StrictFloat, Field(gt=0)],
1029
+ Tuple[
1030
+ Annotated[StrictFloat, Field(gt=0)],
1031
+ Annotated[StrictFloat, Field(gt=0)]
1032
+ ]
1033
+ ] = None,
1034
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1035
+ _content_type: Optional[StrictStr] = None,
1036
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1037
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1038
+ ) -> RESTResponseType:
1039
+ """Indicate that upload is completed for {file_id}
1040
+
1041
+
1042
+ :param scan_id: (required)
1043
+ :type scan_id: str
1044
+ :param file_id: (required)
1045
+ :type file_id: str
1046
+ :param _request_timeout: timeout setting for this request. If one
1047
+ number provided, it will be total request
1048
+ timeout. It can also be a pair (tuple) of
1049
+ (connection, read) timeouts.
1050
+ :type _request_timeout: int, tuple(int, int), optional
1051
+ :param _request_auth: set to override the auth_settings for an a single
1052
+ request; this effectively ignores the
1053
+ authentication in the spec for a single request.
1054
+ :type _request_auth: dict, optional
1055
+ :param _content_type: force content-type for the request.
1056
+ :type _content_type: str, Optional
1057
+ :param _headers: set to override the headers for a single
1058
+ request; this effectively ignores the headers
1059
+ in the spec for a single request.
1060
+ :type _headers: dict, optional
1061
+ :param _host_index: set to override the host_index for a single
1062
+ request; this effectively ignores the host_index
1063
+ in the spec for a single request.
1064
+ :type _host_index: int, optional
1065
+ :return: Returns the result object.
1066
+ """ # noqa: E501
1067
+
1068
+ _param = self._complete_multipart_file_upload_serialize(
1069
+ scan_id=scan_id,
1070
+ file_id=file_id,
1071
+ _request_auth=_request_auth,
1072
+ _content_type=_content_type,
1073
+ _headers=_headers,
1074
+ _host_index=_host_index
1075
+ )
1076
+
1077
+ _response_types_map: Dict[str, Optional[str]] = {
1078
+ '200': "BeginMultiFileUpload200Response",
1079
+ '400': None,
1080
+ '422': "ValidationErrorModel",
1081
+ }
1082
+ response_data = self.api_client.call_api(
1083
+ *_param,
1084
+ _request_timeout=_request_timeout
1085
+ )
1086
+ return response_data.response
1087
+
1088
+
1089
+ def _complete_multipart_file_upload_serialize(
1090
+ self,
1091
+ scan_id,
1092
+ file_id,
1093
+ _request_auth,
1094
+ _content_type,
1095
+ _headers,
1096
+ _host_index,
1097
+ ) -> RequestSerialized:
1098
+
1099
+ _host = None
1100
+
1101
+ _collection_formats: Dict[str, str] = {
1102
+ }
1103
+
1104
+ _path_params: Dict[str, str] = {}
1105
+ _query_params: List[Tuple[str, str]] = []
1106
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1107
+ _form_params: List[Tuple[str, str]] = []
1108
+ _files: Dict[str, Union[str, bytes]] = {}
1109
+ _body_params: Optional[bytes] = None
1110
+
1111
+ # process the path parameters
1112
+ if scan_id is not None:
1113
+ _path_params['scan_id'] = scan_id
1114
+ if file_id is not None:
1115
+ _path_params['file_id'] = file_id
1116
+ # process the query parameters
1117
+ # process the header parameters
1118
+ # process the form parameters
1119
+ # process the body parameter
1120
+
1121
+
1122
+ # set the HTTP header `Accept`
1123
+ _header_params['Accept'] = self.api_client.select_header_accept(
1124
+ [
1125
+ 'application/json'
1126
+ ]
1127
+ )
1128
+
1129
+
1130
+ # authentication setting
1131
+ _auth_settings: List[str] = [
1132
+ 'BearerAuth'
1133
+ ]
1134
+
1135
+ return self.api_client.param_serialize(
1136
+ method='PATCH',
1137
+ resource_path='/scan/v3/upload/{scan_id}/file/{file_id}',
1138
+ path_params=_path_params,
1139
+ query_params=_query_params,
1140
+ header_params=_header_params,
1141
+ body=_body_params,
1142
+ post_params=_form_params,
1143
+ files=_files,
1144
+ auth_settings=_auth_settings,
1145
+ collection_formats=_collection_formats,
1146
+ _host=_host,
1147
+ _request_auth=_request_auth
1148
+ )
1149
+
1150
+
1151
+
1152
+
1153
+ @validate_call
1154
+ def create_scan_job(
1155
+ self,
1156
+ scan_job: Annotated[ScanJob, Field(description="Request body for create scan request")],
1157
+ _request_timeout: Union[
1158
+ None,
1159
+ Annotated[StrictFloat, Field(gt=0)],
1160
+ Tuple[
1161
+ Annotated[StrictFloat, Field(gt=0)],
1162
+ Annotated[StrictFloat, Field(gt=0)]
1163
+ ]
1164
+ ] = None,
1165
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1166
+ _content_type: Optional[StrictStr] = None,
1167
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1168
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1169
+ ) -> None:
1170
+ """Request a Model Scan Job
1171
+
1172
+
1173
+ :param scan_job: Request body for create scan request (required)
1174
+ :type scan_job: ScanJob
1175
+ :param _request_timeout: timeout setting for this request. If one
1176
+ number provided, it will be total request
1177
+ timeout. It can also be a pair (tuple) of
1178
+ (connection, read) timeouts.
1179
+ :type _request_timeout: int, tuple(int, int), optional
1180
+ :param _request_auth: set to override the auth_settings for an a single
1181
+ request; this effectively ignores the
1182
+ authentication in the spec for a single request.
1183
+ :type _request_auth: dict, optional
1184
+ :param _content_type: force content-type for the request.
1185
+ :type _content_type: str, Optional
1186
+ :param _headers: set to override the headers for a single
1187
+ request; this effectively ignores the headers
1188
+ in the spec for a single request.
1189
+ :type _headers: dict, optional
1190
+ :param _host_index: set to override the host_index for a single
1191
+ request; this effectively ignores the host_index
1192
+ in the spec for a single request.
1193
+ :type _host_index: int, optional
1194
+ :return: Returns the result object.
1195
+ """ # noqa: E501
1196
+
1197
+ _param = self._create_scan_job_serialize(
1198
+ scan_job=scan_job,
1199
+ _request_auth=_request_auth,
1200
+ _content_type=_content_type,
1201
+ _headers=_headers,
1202
+ _host_index=_host_index
1203
+ )
1204
+
1205
+ _response_types_map: Dict[str, Optional[str]] = {
1206
+ '201': None,
1207
+ '400': None,
1208
+ '422': "ProblemDetails",
1209
+ }
1210
+ response_data = self.api_client.call_api(
1211
+ *_param,
1212
+ _request_timeout=_request_timeout
1213
+ )
1214
+ response_data.read()
1215
+ return self.api_client.response_deserialize(
1216
+ response_data=response_data,
1217
+ response_types_map=_response_types_map,
1218
+ ).data
1219
+
1220
+
1221
+ @validate_call
1222
+ def create_scan_job_with_http_info(
1223
+ self,
1224
+ scan_job: Annotated[ScanJob, Field(description="Request body for create scan request")],
1225
+ _request_timeout: Union[
1226
+ None,
1227
+ Annotated[StrictFloat, Field(gt=0)],
1228
+ Tuple[
1229
+ Annotated[StrictFloat, Field(gt=0)],
1230
+ Annotated[StrictFloat, Field(gt=0)]
1231
+ ]
1232
+ ] = None,
1233
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1234
+ _content_type: Optional[StrictStr] = None,
1235
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1236
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1237
+ ) -> ApiResponse[None]:
1238
+ """Request a Model Scan Job
1239
+
1240
+
1241
+ :param scan_job: Request body for create scan request (required)
1242
+ :type scan_job: ScanJob
1243
+ :param _request_timeout: timeout setting for this request. If one
1244
+ number provided, it will be total request
1245
+ timeout. It can also be a pair (tuple) of
1246
+ (connection, read) timeouts.
1247
+ :type _request_timeout: int, tuple(int, int), optional
1248
+ :param _request_auth: set to override the auth_settings for an a single
1249
+ request; this effectively ignores the
1250
+ authentication in the spec for a single request.
1251
+ :type _request_auth: dict, optional
1252
+ :param _content_type: force content-type for the request.
1253
+ :type _content_type: str, Optional
1254
+ :param _headers: set to override the headers for a single
1255
+ request; this effectively ignores the headers
1256
+ in the spec for a single request.
1257
+ :type _headers: dict, optional
1258
+ :param _host_index: set to override the host_index for a single
1259
+ request; this effectively ignores the host_index
1260
+ in the spec for a single request.
1261
+ :type _host_index: int, optional
1262
+ :return: Returns the result object.
1263
+ """ # noqa: E501
1264
+
1265
+ _param = self._create_scan_job_serialize(
1266
+ scan_job=scan_job,
1267
+ _request_auth=_request_auth,
1268
+ _content_type=_content_type,
1269
+ _headers=_headers,
1270
+ _host_index=_host_index
1271
+ )
1272
+
1273
+ _response_types_map: Dict[str, Optional[str]] = {
1274
+ '201': None,
1275
+ '400': None,
1276
+ '422': "ProblemDetails",
1277
+ }
1278
+ response_data = self.api_client.call_api(
1279
+ *_param,
1280
+ _request_timeout=_request_timeout
1281
+ )
1282
+ response_data.read()
1283
+ return self.api_client.response_deserialize(
1284
+ response_data=response_data,
1285
+ response_types_map=_response_types_map,
1286
+ )
1287
+
1288
+
1289
+ @validate_call
1290
+ def create_scan_job_without_preload_content(
1291
+ self,
1292
+ scan_job: Annotated[ScanJob, Field(description="Request body for create scan request")],
1293
+ _request_timeout: Union[
1294
+ None,
1295
+ Annotated[StrictFloat, Field(gt=0)],
1296
+ Tuple[
1297
+ Annotated[StrictFloat, Field(gt=0)],
1298
+ Annotated[StrictFloat, Field(gt=0)]
1299
+ ]
1300
+ ] = None,
1301
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1302
+ _content_type: Optional[StrictStr] = None,
1303
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1304
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1305
+ ) -> RESTResponseType:
1306
+ """Request a Model Scan Job
1307
+
1308
+
1309
+ :param scan_job: Request body for create scan request (required)
1310
+ :type scan_job: ScanJob
1311
+ :param _request_timeout: timeout setting for this request. If one
1312
+ number provided, it will be total request
1313
+ timeout. It can also be a pair (tuple) of
1314
+ (connection, read) timeouts.
1315
+ :type _request_timeout: int, tuple(int, int), optional
1316
+ :param _request_auth: set to override the auth_settings for an a single
1317
+ request; this effectively ignores the
1318
+ authentication in the spec for a single request.
1319
+ :type _request_auth: dict, optional
1320
+ :param _content_type: force content-type for the request.
1321
+ :type _content_type: str, Optional
1322
+ :param _headers: set to override the headers for a single
1323
+ request; this effectively ignores the headers
1324
+ in the spec for a single request.
1325
+ :type _headers: dict, optional
1326
+ :param _host_index: set to override the host_index for a single
1327
+ request; this effectively ignores the host_index
1328
+ in the spec for a single request.
1329
+ :type _host_index: int, optional
1330
+ :return: Returns the result object.
1331
+ """ # noqa: E501
1332
+
1333
+ _param = self._create_scan_job_serialize(
1334
+ scan_job=scan_job,
1335
+ _request_auth=_request_auth,
1336
+ _content_type=_content_type,
1337
+ _headers=_headers,
1338
+ _host_index=_host_index
1339
+ )
1340
+
1341
+ _response_types_map: Dict[str, Optional[str]] = {
1342
+ '201': None,
1343
+ '400': None,
1344
+ '422': "ProblemDetails",
1345
+ }
1346
+ response_data = self.api_client.call_api(
1347
+ *_param,
1348
+ _request_timeout=_request_timeout
1349
+ )
1350
+ return response_data.response
1351
+
1352
+
1353
+ def _create_scan_job_serialize(
1354
+ self,
1355
+ scan_job,
1356
+ _request_auth,
1357
+ _content_type,
1358
+ _headers,
1359
+ _host_index,
1360
+ ) -> RequestSerialized:
1361
+
1362
+ _host = None
1363
+
1364
+ _collection_formats: Dict[str, str] = {
1365
+ }
1366
+
1367
+ _path_params: Dict[str, str] = {}
1368
+ _query_params: List[Tuple[str, str]] = []
1369
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1370
+ _form_params: List[Tuple[str, str]] = []
1371
+ _files: Dict[str, Union[str, bytes]] = {}
1372
+ _body_params: Optional[bytes] = None
1373
+
1374
+ # process the path parameters
1375
+ # process the query parameters
1376
+ # process the header parameters
1377
+ # process the form parameters
1378
+ # process the body parameter
1379
+ if scan_job is not None:
1380
+ _body_params = scan_job
1381
+
1382
+
1383
+ # set the HTTP header `Accept`
1384
+ _header_params['Accept'] = self.api_client.select_header_accept(
1385
+ [
1386
+ 'application/json'
1387
+ ]
1388
+ )
1389
+
1390
+ # set the HTTP header `Content-Type`
1391
+ if _content_type:
1392
+ _header_params['Content-Type'] = _content_type
1393
+ else:
1394
+ _default_content_type = (
1395
+ self.api_client.select_header_content_type(
1396
+ [
1397
+ 'application/json; charset=utf-8',
1398
+ 'application/octet-stream'
1399
+ ]
1400
+ )
1401
+ )
1402
+ if _default_content_type is not None:
1403
+ _header_params['Content-Type'] = _default_content_type
1404
+
1405
+ # authentication setting
1406
+ _auth_settings: List[str] = [
1407
+ 'BearerAuth'
1408
+ ]
1409
+
1410
+ return self.api_client.param_serialize(
1411
+ method='POST',
1412
+ resource_path='/scans/v3/jobs',
1413
+ path_params=_path_params,
1414
+ query_params=_query_params,
1415
+ header_params=_header_params,
1416
+ body=_body_params,
1417
+ post_params=_form_params,
1418
+ files=_files,
1419
+ auth_settings=_auth_settings,
1420
+ collection_formats=_collection_formats,
1421
+ _host=_host,
1422
+ _request_auth=_request_auth
1423
+ )
1424
+
1425
+
1426
+
1427
+
1428
+ @validate_call
1429
+ def get_condensed_model_scan_reports(
1430
+ self,
1431
+ model_version_ids: Annotated[Optional[List[StrictStr]], Field(description="Model Version ID")] = None,
1432
+ model_ids: Annotated[Optional[List[StrictStr]], Field(description="Model ID")] = None,
1433
+ start_time: Annotated[Optional[datetime], Field(description="Start Time")] = None,
1434
+ end_time: Annotated[Optional[datetime], Field(description="End Time")] = None,
1435
+ severity: Annotated[Optional[List[StrictStr]], Field(description="Severities")] = None,
1436
+ status: Annotated[Optional[List[StrictStr]], Field(description="Statuses")] = None,
1437
+ limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None,
1438
+ offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
1439
+ sort: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="allow sorting by status, severity or created at, ascending (+) or the default descending (-)")] = None,
1440
+ latest_per_model_version_only: Annotated[Optional[StrictBool], Field(description="only return latest result per model version")] = None,
1441
+ _request_timeout: Union[
1442
+ None,
1443
+ Annotated[StrictFloat, Field(gt=0)],
1444
+ Tuple[
1445
+ Annotated[StrictFloat, Field(gt=0)],
1446
+ Annotated[StrictFloat, Field(gt=0)]
1447
+ ]
1448
+ ] = None,
1449
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1450
+ _content_type: Optional[StrictStr] = None,
1451
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1452
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1453
+ ) -> GetCondensedModelScanReports200Response:
1454
+ """Get condensed reports for a Model Scan
1455
+
1456
+
1457
+ :param model_version_ids: Model Version ID
1458
+ :type model_version_ids: List[str]
1459
+ :param model_ids: Model ID
1460
+ :type model_ids: List[str]
1461
+ :param start_time: Start Time
1462
+ :type start_time: datetime
1463
+ :param end_time: End Time
1464
+ :type end_time: datetime
1465
+ :param severity: Severities
1466
+ :type severity: List[str]
1467
+ :param status: Statuses
1468
+ :type status: List[str]
1469
+ :param limit:
1470
+ :type limit: int
1471
+ :param offset:
1472
+ :type offset: int
1473
+ :param sort: allow sorting by status, severity or created at, ascending (+) or the default descending (-)
1474
+ :type sort: str
1475
+ :param latest_per_model_version_only: only return latest result per model version
1476
+ :type latest_per_model_version_only: bool
1477
+ :param _request_timeout: timeout setting for this request. If one
1478
+ number provided, it will be total request
1479
+ timeout. It can also be a pair (tuple) of
1480
+ (connection, read) timeouts.
1481
+ :type _request_timeout: int, tuple(int, int), optional
1482
+ :param _request_auth: set to override the auth_settings for an a single
1483
+ request; this effectively ignores the
1484
+ authentication in the spec for a single request.
1485
+ :type _request_auth: dict, optional
1486
+ :param _content_type: force content-type for the request.
1487
+ :type _content_type: str, Optional
1488
+ :param _headers: set to override the headers for a single
1489
+ request; this effectively ignores the headers
1490
+ in the spec for a single request.
1491
+ :type _headers: dict, optional
1492
+ :param _host_index: set to override the host_index for a single
1493
+ request; this effectively ignores the host_index
1494
+ in the spec for a single request.
1495
+ :type _host_index: int, optional
1496
+ :return: Returns the result object.
1497
+ """ # noqa: E501
1498
+
1499
+ _param = self._get_condensed_model_scan_reports_serialize(
1500
+ model_version_ids=model_version_ids,
1501
+ model_ids=model_ids,
1502
+ start_time=start_time,
1503
+ end_time=end_time,
1504
+ severity=severity,
1505
+ status=status,
1506
+ limit=limit,
1507
+ offset=offset,
1508
+ sort=sort,
1509
+ latest_per_model_version_only=latest_per_model_version_only,
1510
+ _request_auth=_request_auth,
1511
+ _content_type=_content_type,
1512
+ _headers=_headers,
1513
+ _host_index=_host_index
1514
+ )
1515
+
1516
+ _response_types_map: Dict[str, Optional[str]] = {
1517
+ '200': "GetCondensedModelScanReports200Response",
1518
+ '400': None,
1519
+ '404': None,
1520
+ }
1521
+ response_data = self.api_client.call_api(
1522
+ *_param,
1523
+ _request_timeout=_request_timeout
1524
+ )
1525
+ response_data.read()
1526
+ return self.api_client.response_deserialize(
1527
+ response_data=response_data,
1528
+ response_types_map=_response_types_map,
1529
+ ).data
1530
+
1531
+
1532
+ @validate_call
1533
+ def get_condensed_model_scan_reports_with_http_info(
1534
+ self,
1535
+ model_version_ids: Annotated[Optional[List[StrictStr]], Field(description="Model Version ID")] = None,
1536
+ model_ids: Annotated[Optional[List[StrictStr]], Field(description="Model ID")] = None,
1537
+ start_time: Annotated[Optional[datetime], Field(description="Start Time")] = None,
1538
+ end_time: Annotated[Optional[datetime], Field(description="End Time")] = None,
1539
+ severity: Annotated[Optional[List[StrictStr]], Field(description="Severities")] = None,
1540
+ status: Annotated[Optional[List[StrictStr]], Field(description="Statuses")] = None,
1541
+ limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None,
1542
+ offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
1543
+ sort: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="allow sorting by status, severity or created at, ascending (+) or the default descending (-)")] = None,
1544
+ latest_per_model_version_only: Annotated[Optional[StrictBool], Field(description="only return latest result per model version")] = None,
1545
+ _request_timeout: Union[
1546
+ None,
1547
+ Annotated[StrictFloat, Field(gt=0)],
1548
+ Tuple[
1549
+ Annotated[StrictFloat, Field(gt=0)],
1550
+ Annotated[StrictFloat, Field(gt=0)]
1551
+ ]
1552
+ ] = None,
1553
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1554
+ _content_type: Optional[StrictStr] = None,
1555
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1556
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1557
+ ) -> ApiResponse[GetCondensedModelScanReports200Response]:
1558
+ """Get condensed reports for a Model Scan
1559
+
1560
+
1561
+ :param model_version_ids: Model Version ID
1562
+ :type model_version_ids: List[str]
1563
+ :param model_ids: Model ID
1564
+ :type model_ids: List[str]
1565
+ :param start_time: Start Time
1566
+ :type start_time: datetime
1567
+ :param end_time: End Time
1568
+ :type end_time: datetime
1569
+ :param severity: Severities
1570
+ :type severity: List[str]
1571
+ :param status: Statuses
1572
+ :type status: List[str]
1573
+ :param limit:
1574
+ :type limit: int
1575
+ :param offset:
1576
+ :type offset: int
1577
+ :param sort: allow sorting by status, severity or created at, ascending (+) or the default descending (-)
1578
+ :type sort: str
1579
+ :param latest_per_model_version_only: only return latest result per model version
1580
+ :type latest_per_model_version_only: bool
1581
+ :param _request_timeout: timeout setting for this request. If one
1582
+ number provided, it will be total request
1583
+ timeout. It can also be a pair (tuple) of
1584
+ (connection, read) timeouts.
1585
+ :type _request_timeout: int, tuple(int, int), optional
1586
+ :param _request_auth: set to override the auth_settings for an a single
1587
+ request; this effectively ignores the
1588
+ authentication in the spec for a single request.
1589
+ :type _request_auth: dict, optional
1590
+ :param _content_type: force content-type for the request.
1591
+ :type _content_type: str, Optional
1592
+ :param _headers: set to override the headers for a single
1593
+ request; this effectively ignores the headers
1594
+ in the spec for a single request.
1595
+ :type _headers: dict, optional
1596
+ :param _host_index: set to override the host_index for a single
1597
+ request; this effectively ignores the host_index
1598
+ in the spec for a single request.
1599
+ :type _host_index: int, optional
1600
+ :return: Returns the result object.
1601
+ """ # noqa: E501
1602
+
1603
+ _param = self._get_condensed_model_scan_reports_serialize(
1604
+ model_version_ids=model_version_ids,
1605
+ model_ids=model_ids,
1606
+ start_time=start_time,
1607
+ end_time=end_time,
1608
+ severity=severity,
1609
+ status=status,
1610
+ limit=limit,
1611
+ offset=offset,
1612
+ sort=sort,
1613
+ latest_per_model_version_only=latest_per_model_version_only,
1614
+ _request_auth=_request_auth,
1615
+ _content_type=_content_type,
1616
+ _headers=_headers,
1617
+ _host_index=_host_index
1618
+ )
1619
+
1620
+ _response_types_map: Dict[str, Optional[str]] = {
1621
+ '200': "GetCondensedModelScanReports200Response",
1622
+ '400': None,
1623
+ '404': None,
1624
+ }
1625
+ response_data = self.api_client.call_api(
1626
+ *_param,
1627
+ _request_timeout=_request_timeout
1628
+ )
1629
+ response_data.read()
1630
+ return self.api_client.response_deserialize(
1631
+ response_data=response_data,
1632
+ response_types_map=_response_types_map,
1633
+ )
1634
+
1635
+
1636
+ @validate_call
1637
+ def get_condensed_model_scan_reports_without_preload_content(
1638
+ self,
1639
+ model_version_ids: Annotated[Optional[List[StrictStr]], Field(description="Model Version ID")] = None,
1640
+ model_ids: Annotated[Optional[List[StrictStr]], Field(description="Model ID")] = None,
1641
+ start_time: Annotated[Optional[datetime], Field(description="Start Time")] = None,
1642
+ end_time: Annotated[Optional[datetime], Field(description="End Time")] = None,
1643
+ severity: Annotated[Optional[List[StrictStr]], Field(description="Severities")] = None,
1644
+ status: Annotated[Optional[List[StrictStr]], Field(description="Statuses")] = None,
1645
+ limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None,
1646
+ offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
1647
+ sort: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="allow sorting by status, severity or created at, ascending (+) or the default descending (-)")] = None,
1648
+ latest_per_model_version_only: Annotated[Optional[StrictBool], Field(description="only return latest result per model version")] = None,
1649
+ _request_timeout: Union[
1650
+ None,
1651
+ Annotated[StrictFloat, Field(gt=0)],
1652
+ Tuple[
1653
+ Annotated[StrictFloat, Field(gt=0)],
1654
+ Annotated[StrictFloat, Field(gt=0)]
1655
+ ]
1656
+ ] = None,
1657
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1658
+ _content_type: Optional[StrictStr] = None,
1659
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1660
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1661
+ ) -> RESTResponseType:
1662
+ """Get condensed reports for a Model Scan
1663
+
1664
+
1665
+ :param model_version_ids: Model Version ID
1666
+ :type model_version_ids: List[str]
1667
+ :param model_ids: Model ID
1668
+ :type model_ids: List[str]
1669
+ :param start_time: Start Time
1670
+ :type start_time: datetime
1671
+ :param end_time: End Time
1672
+ :type end_time: datetime
1673
+ :param severity: Severities
1674
+ :type severity: List[str]
1675
+ :param status: Statuses
1676
+ :type status: List[str]
1677
+ :param limit:
1678
+ :type limit: int
1679
+ :param offset:
1680
+ :type offset: int
1681
+ :param sort: allow sorting by status, severity or created at, ascending (+) or the default descending (-)
1682
+ :type sort: str
1683
+ :param latest_per_model_version_only: only return latest result per model version
1684
+ :type latest_per_model_version_only: bool
1685
+ :param _request_timeout: timeout setting for this request. If one
1686
+ number provided, it will be total request
1687
+ timeout. It can also be a pair (tuple) of
1688
+ (connection, read) timeouts.
1689
+ :type _request_timeout: int, tuple(int, int), optional
1690
+ :param _request_auth: set to override the auth_settings for an a single
1691
+ request; this effectively ignores the
1692
+ authentication in the spec for a single request.
1693
+ :type _request_auth: dict, optional
1694
+ :param _content_type: force content-type for the request.
1695
+ :type _content_type: str, Optional
1696
+ :param _headers: set to override the headers for a single
1697
+ request; this effectively ignores the headers
1698
+ in the spec for a single request.
1699
+ :type _headers: dict, optional
1700
+ :param _host_index: set to override the host_index for a single
1701
+ request; this effectively ignores the host_index
1702
+ in the spec for a single request.
1703
+ :type _host_index: int, optional
1704
+ :return: Returns the result object.
1705
+ """ # noqa: E501
1706
+
1707
+ _param = self._get_condensed_model_scan_reports_serialize(
1708
+ model_version_ids=model_version_ids,
1709
+ model_ids=model_ids,
1710
+ start_time=start_time,
1118
1711
  end_time=end_time,
1119
1712
  severity=severity,
1120
1713
  status=status,
@@ -1129,7 +1722,451 @@ class ModelSupplyChainApi:
1129
1722
  )
1130
1723
 
1131
1724
  _response_types_map: Dict[str, Optional[str]] = {
1132
- '200': "ModelScanApiV3ScanQuery200Response",
1725
+ '200': "GetCondensedModelScanReports200Response",
1726
+ '400': None,
1727
+ '404': None,
1728
+ }
1729
+ response_data = self.api_client.call_api(
1730
+ *_param,
1731
+ _request_timeout=_request_timeout
1732
+ )
1733
+ return response_data.response
1734
+
1735
+
1736
+ def _get_condensed_model_scan_reports_serialize(
1737
+ self,
1738
+ model_version_ids,
1739
+ model_ids,
1740
+ start_time,
1741
+ end_time,
1742
+ severity,
1743
+ status,
1744
+ limit,
1745
+ offset,
1746
+ sort,
1747
+ latest_per_model_version_only,
1748
+ _request_auth,
1749
+ _content_type,
1750
+ _headers,
1751
+ _host_index,
1752
+ ) -> RequestSerialized:
1753
+
1754
+ _host = None
1755
+
1756
+ _collection_formats: Dict[str, str] = {
1757
+ 'model_version_ids': 'csv',
1758
+ 'model_ids': 'csv',
1759
+ 'severity': 'csv',
1760
+ 'status': 'csv',
1761
+ }
1762
+
1763
+ _path_params: Dict[str, str] = {}
1764
+ _query_params: List[Tuple[str, str]] = []
1765
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1766
+ _form_params: List[Tuple[str, str]] = []
1767
+ _files: Dict[str, Union[str, bytes]] = {}
1768
+ _body_params: Optional[bytes] = None
1769
+
1770
+ # process the path parameters
1771
+ # process the query parameters
1772
+ if model_version_ids is not None:
1773
+
1774
+ _query_params.append(('model_version_ids', model_version_ids))
1775
+
1776
+ if model_ids is not None:
1777
+
1778
+ _query_params.append(('model_ids', model_ids))
1779
+
1780
+ if start_time is not None:
1781
+ if isinstance(start_time, datetime):
1782
+ _query_params.append(
1783
+ (
1784
+ 'start_time',
1785
+ start_time.strftime(
1786
+ self.api_client.configuration.datetime_format
1787
+ )
1788
+ )
1789
+ )
1790
+ else:
1791
+ _query_params.append(('start_time', start_time))
1792
+
1793
+ if end_time is not None:
1794
+ if isinstance(end_time, datetime):
1795
+ _query_params.append(
1796
+ (
1797
+ 'end_time',
1798
+ end_time.strftime(
1799
+ self.api_client.configuration.datetime_format
1800
+ )
1801
+ )
1802
+ )
1803
+ else:
1804
+ _query_params.append(('end_time', end_time))
1805
+
1806
+ if severity is not None:
1807
+
1808
+ _query_params.append(('severity', severity))
1809
+
1810
+ if status is not None:
1811
+
1812
+ _query_params.append(('status', status))
1813
+
1814
+ if limit is not None:
1815
+
1816
+ _query_params.append(('limit', limit))
1817
+
1818
+ if offset is not None:
1819
+
1820
+ _query_params.append(('offset', offset))
1821
+
1822
+ if sort is not None:
1823
+
1824
+ _query_params.append(('sort', sort))
1825
+
1826
+ if latest_per_model_version_only is not None:
1827
+
1828
+ _query_params.append(('latest_per_model_version_only', latest_per_model_version_only))
1829
+
1830
+ # process the header parameters
1831
+ # process the form parameters
1832
+ # process the body parameter
1833
+
1834
+
1835
+ # set the HTTP header `Accept`
1836
+ _header_params['Accept'] = self.api_client.select_header_accept(
1837
+ [
1838
+ 'application/json; charset=utf-8'
1839
+ ]
1840
+ )
1841
+
1842
+
1843
+ # authentication setting
1844
+ _auth_settings: List[str] = [
1845
+ 'BearerAuth'
1846
+ ]
1847
+
1848
+ return self.api_client.param_serialize(
1849
+ method='GET',
1850
+ resource_path='/scan/v3/results',
1851
+ path_params=_path_params,
1852
+ query_params=_query_params,
1853
+ header_params=_header_params,
1854
+ body=_body_params,
1855
+ post_params=_form_params,
1856
+ files=_files,
1857
+ auth_settings=_auth_settings,
1858
+ collection_formats=_collection_formats,
1859
+ _host=_host,
1860
+ _request_auth=_request_auth
1861
+ )
1862
+
1863
+
1864
+
1865
+
1866
+ @validate_call
1867
+ def get_scan_jobs(
1868
+ self,
1869
+ _request_timeout: Union[
1870
+ None,
1871
+ Annotated[StrictFloat, Field(gt=0)],
1872
+ Tuple[
1873
+ Annotated[StrictFloat, Field(gt=0)],
1874
+ Annotated[StrictFloat, Field(gt=0)]
1875
+ ]
1876
+ ] = None,
1877
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1878
+ _content_type: Optional[StrictStr] = None,
1879
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1880
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1881
+ ) -> List[ScanJob]:
1882
+ """List all Model Scan Jobs
1883
+
1884
+
1885
+ :param _request_timeout: timeout setting for this request. If one
1886
+ number provided, it will be total request
1887
+ timeout. It can also be a pair (tuple) of
1888
+ (connection, read) timeouts.
1889
+ :type _request_timeout: int, tuple(int, int), optional
1890
+ :param _request_auth: set to override the auth_settings for an a single
1891
+ request; this effectively ignores the
1892
+ authentication in the spec for a single request.
1893
+ :type _request_auth: dict, optional
1894
+ :param _content_type: force content-type for the request.
1895
+ :type _content_type: str, Optional
1896
+ :param _headers: set to override the headers for a single
1897
+ request; this effectively ignores the headers
1898
+ in the spec for a single request.
1899
+ :type _headers: dict, optional
1900
+ :param _host_index: set to override the host_index for a single
1901
+ request; this effectively ignores the host_index
1902
+ in the spec for a single request.
1903
+ :type _host_index: int, optional
1904
+ :return: Returns the result object.
1905
+ """ # noqa: E501
1906
+
1907
+ _param = self._get_scan_jobs_serialize(
1908
+ _request_auth=_request_auth,
1909
+ _content_type=_content_type,
1910
+ _headers=_headers,
1911
+ _host_index=_host_index
1912
+ )
1913
+
1914
+ _response_types_map: Dict[str, Optional[str]] = {
1915
+ '200': "List[ScanJob]",
1916
+ '400': None,
1917
+ '404': None,
1918
+ }
1919
+ response_data = self.api_client.call_api(
1920
+ *_param,
1921
+ _request_timeout=_request_timeout
1922
+ )
1923
+ response_data.read()
1924
+ return self.api_client.response_deserialize(
1925
+ response_data=response_data,
1926
+ response_types_map=_response_types_map,
1927
+ ).data
1928
+
1929
+
1930
+ @validate_call
1931
+ def get_scan_jobs_with_http_info(
1932
+ self,
1933
+ _request_timeout: Union[
1934
+ None,
1935
+ Annotated[StrictFloat, Field(gt=0)],
1936
+ Tuple[
1937
+ Annotated[StrictFloat, Field(gt=0)],
1938
+ Annotated[StrictFloat, Field(gt=0)]
1939
+ ]
1940
+ ] = None,
1941
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1942
+ _content_type: Optional[StrictStr] = None,
1943
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1944
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1945
+ ) -> ApiResponse[List[ScanJob]]:
1946
+ """List all Model Scan Jobs
1947
+
1948
+
1949
+ :param _request_timeout: timeout setting for this request. If one
1950
+ number provided, it will be total request
1951
+ timeout. It can also be a pair (tuple) of
1952
+ (connection, read) timeouts.
1953
+ :type _request_timeout: int, tuple(int, int), optional
1954
+ :param _request_auth: set to override the auth_settings for an a single
1955
+ request; this effectively ignores the
1956
+ authentication in the spec for a single request.
1957
+ :type _request_auth: dict, optional
1958
+ :param _content_type: force content-type for the request.
1959
+ :type _content_type: str, Optional
1960
+ :param _headers: set to override the headers for a single
1961
+ request; this effectively ignores the headers
1962
+ in the spec for a single request.
1963
+ :type _headers: dict, optional
1964
+ :param _host_index: set to override the host_index for a single
1965
+ request; this effectively ignores the host_index
1966
+ in the spec for a single request.
1967
+ :type _host_index: int, optional
1968
+ :return: Returns the result object.
1969
+ """ # noqa: E501
1970
+
1971
+ _param = self._get_scan_jobs_serialize(
1972
+ _request_auth=_request_auth,
1973
+ _content_type=_content_type,
1974
+ _headers=_headers,
1975
+ _host_index=_host_index
1976
+ )
1977
+
1978
+ _response_types_map: Dict[str, Optional[str]] = {
1979
+ '200': "List[ScanJob]",
1980
+ '400': None,
1981
+ '404': None,
1982
+ }
1983
+ response_data = self.api_client.call_api(
1984
+ *_param,
1985
+ _request_timeout=_request_timeout
1986
+ )
1987
+ response_data.read()
1988
+ return self.api_client.response_deserialize(
1989
+ response_data=response_data,
1990
+ response_types_map=_response_types_map,
1991
+ )
1992
+
1993
+
1994
+ @validate_call
1995
+ def get_scan_jobs_without_preload_content(
1996
+ self,
1997
+ _request_timeout: Union[
1998
+ None,
1999
+ Annotated[StrictFloat, Field(gt=0)],
2000
+ Tuple[
2001
+ Annotated[StrictFloat, Field(gt=0)],
2002
+ Annotated[StrictFloat, Field(gt=0)]
2003
+ ]
2004
+ ] = None,
2005
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2006
+ _content_type: Optional[StrictStr] = None,
2007
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2008
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2009
+ ) -> RESTResponseType:
2010
+ """List all Model Scan Jobs
2011
+
2012
+
2013
+ :param _request_timeout: timeout setting for this request. If one
2014
+ number provided, it will be total request
2015
+ timeout. It can also be a pair (tuple) of
2016
+ (connection, read) timeouts.
2017
+ :type _request_timeout: int, tuple(int, int), optional
2018
+ :param _request_auth: set to override the auth_settings for an a single
2019
+ request; this effectively ignores the
2020
+ authentication in the spec for a single request.
2021
+ :type _request_auth: dict, optional
2022
+ :param _content_type: force content-type for the request.
2023
+ :type _content_type: str, Optional
2024
+ :param _headers: set to override the headers for a single
2025
+ request; this effectively ignores the headers
2026
+ in the spec for a single request.
2027
+ :type _headers: dict, optional
2028
+ :param _host_index: set to override the host_index for a single
2029
+ request; this effectively ignores the host_index
2030
+ in the spec for a single request.
2031
+ :type _host_index: int, optional
2032
+ :return: Returns the result object.
2033
+ """ # noqa: E501
2034
+
2035
+ _param = self._get_scan_jobs_serialize(
2036
+ _request_auth=_request_auth,
2037
+ _content_type=_content_type,
2038
+ _headers=_headers,
2039
+ _host_index=_host_index
2040
+ )
2041
+
2042
+ _response_types_map: Dict[str, Optional[str]] = {
2043
+ '200': "List[ScanJob]",
2044
+ '400': None,
2045
+ '404': None,
2046
+ }
2047
+ response_data = self.api_client.call_api(
2048
+ *_param,
2049
+ _request_timeout=_request_timeout
2050
+ )
2051
+ return response_data.response
2052
+
2053
+
2054
+ def _get_scan_jobs_serialize(
2055
+ self,
2056
+ _request_auth,
2057
+ _content_type,
2058
+ _headers,
2059
+ _host_index,
2060
+ ) -> RequestSerialized:
2061
+
2062
+ _host = None
2063
+
2064
+ _collection_formats: Dict[str, str] = {
2065
+ }
2066
+
2067
+ _path_params: Dict[str, str] = {}
2068
+ _query_params: List[Tuple[str, str]] = []
2069
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2070
+ _form_params: List[Tuple[str, str]] = []
2071
+ _files: Dict[str, Union[str, bytes]] = {}
2072
+ _body_params: Optional[bytes] = None
2073
+
2074
+ # process the path parameters
2075
+ # process the query parameters
2076
+ # process the header parameters
2077
+ # process the form parameters
2078
+ # process the body parameter
2079
+
2080
+
2081
+ # set the HTTP header `Accept`
2082
+ _header_params['Accept'] = self.api_client.select_header_accept(
2083
+ [
2084
+ 'application/json; charset=utf-8'
2085
+ ]
2086
+ )
2087
+
2088
+
2089
+ # authentication setting
2090
+ _auth_settings: List[str] = [
2091
+ 'BearerAuth'
2092
+ ]
2093
+
2094
+ return self.api_client.param_serialize(
2095
+ method='GET',
2096
+ resource_path='/scans/v3/jobs',
2097
+ path_params=_path_params,
2098
+ query_params=_query_params,
2099
+ header_params=_header_params,
2100
+ body=_body_params,
2101
+ post_params=_form_params,
2102
+ files=_files,
2103
+ auth_settings=_auth_settings,
2104
+ collection_formats=_collection_formats,
2105
+ _host=_host,
2106
+ _request_auth=_request_auth
2107
+ )
2108
+
2109
+
2110
+
2111
+
2112
+ @validate_call
2113
+ def get_scan_results(
2114
+ self,
2115
+ scan_id: StrictStr,
2116
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2117
+ _request_timeout: Union[
2118
+ None,
2119
+ Annotated[StrictFloat, Field(gt=0)],
2120
+ Tuple[
2121
+ Annotated[StrictFloat, Field(gt=0)],
2122
+ Annotated[StrictFloat, Field(gt=0)]
2123
+ ]
2124
+ ] = None,
2125
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2126
+ _content_type: Optional[StrictStr] = None,
2127
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2128
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2129
+ ) -> ScanReportV3:
2130
+ """Get Result of a Model Scan
2131
+
2132
+
2133
+ :param scan_id: (required)
2134
+ :type scan_id: str
2135
+ :param has_detections: Filter file_results to only those that have detections (and parents)
2136
+ :type has_detections: bool
2137
+ :param _request_timeout: timeout setting for this request. If one
2138
+ number provided, it will be total request
2139
+ timeout. It can also be a pair (tuple) of
2140
+ (connection, read) timeouts.
2141
+ :type _request_timeout: int, tuple(int, int), optional
2142
+ :param _request_auth: set to override the auth_settings for an a single
2143
+ request; this effectively ignores the
2144
+ authentication in the spec for a single request.
2145
+ :type _request_auth: dict, optional
2146
+ :param _content_type: force content-type for the request.
2147
+ :type _content_type: str, Optional
2148
+ :param _headers: set to override the headers for a single
2149
+ request; this effectively ignores the headers
2150
+ in the spec for a single request.
2151
+ :type _headers: dict, optional
2152
+ :param _host_index: set to override the host_index for a single
2153
+ request; this effectively ignores the host_index
2154
+ in the spec for a single request.
2155
+ :type _host_index: int, optional
2156
+ :return: Returns the result object.
2157
+ """ # noqa: E501
2158
+
2159
+ _param = self._get_scan_results_serialize(
2160
+ scan_id=scan_id,
2161
+ has_detections=has_detections,
2162
+ _request_auth=_request_auth,
2163
+ _content_type=_content_type,
2164
+ _headers=_headers,
2165
+ _host_index=_host_index
2166
+ )
2167
+
2168
+ _response_types_map: Dict[str, Optional[str]] = {
2169
+ '200': "ScanReportV3",
1133
2170
  '400': None,
1134
2171
  '404': None,
1135
2172
  }
@@ -1141,22 +2178,86 @@ class ModelSupplyChainApi:
1141
2178
  return self.api_client.response_deserialize(
1142
2179
  response_data=response_data,
1143
2180
  response_types_map=_response_types_map,
1144
- )
2181
+ ).data
1145
2182
 
1146
2183
 
1147
2184
  @validate_call
1148
- def model_scan_api_v3_scan_query_without_preload_content(
2185
+ def get_scan_results_with_http_info(
1149
2186
  self,
1150
- model_version_ids: Annotated[Optional[List[StrictStr]], Field(description="Model Version ID")] = None,
1151
- model_ids: Annotated[Optional[List[StrictStr]], Field(description="Model ID")] = None,
1152
- start_time: Annotated[Optional[datetime], Field(description="Start Time")] = None,
1153
- end_time: Annotated[Optional[datetime], Field(description="End Time")] = None,
1154
- severity: Annotated[Optional[List[StrictStr]], Field(description="Severities")] = None,
1155
- status: Annotated[Optional[List[StrictStr]], Field(description="Statuses")] = None,
1156
- limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None,
1157
- offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
1158
- sort: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="allow sorting by status, severity or created at, ascending (+) or the default descending (-)")] = None,
1159
- latest_per_model_version_only: Annotated[Optional[StrictBool], Field(description="only return latest result per model version")] = None,
2187
+ scan_id: StrictStr,
2188
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2189
+ _request_timeout: Union[
2190
+ None,
2191
+ Annotated[StrictFloat, Field(gt=0)],
2192
+ Tuple[
2193
+ Annotated[StrictFloat, Field(gt=0)],
2194
+ Annotated[StrictFloat, Field(gt=0)]
2195
+ ]
2196
+ ] = None,
2197
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2198
+ _content_type: Optional[StrictStr] = None,
2199
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2200
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2201
+ ) -> ApiResponse[ScanReportV3]:
2202
+ """Get Result of a Model Scan
2203
+
2204
+
2205
+ :param scan_id: (required)
2206
+ :type scan_id: str
2207
+ :param has_detections: Filter file_results to only those that have detections (and parents)
2208
+ :type has_detections: bool
2209
+ :param _request_timeout: timeout setting for this request. If one
2210
+ number provided, it will be total request
2211
+ timeout. It can also be a pair (tuple) of
2212
+ (connection, read) timeouts.
2213
+ :type _request_timeout: int, tuple(int, int), optional
2214
+ :param _request_auth: set to override the auth_settings for an a single
2215
+ request; this effectively ignores the
2216
+ authentication in the spec for a single request.
2217
+ :type _request_auth: dict, optional
2218
+ :param _content_type: force content-type for the request.
2219
+ :type _content_type: str, Optional
2220
+ :param _headers: set to override the headers for a single
2221
+ request; this effectively ignores the headers
2222
+ in the spec for a single request.
2223
+ :type _headers: dict, optional
2224
+ :param _host_index: set to override the host_index for a single
2225
+ request; this effectively ignores the host_index
2226
+ in the spec for a single request.
2227
+ :type _host_index: int, optional
2228
+ :return: Returns the result object.
2229
+ """ # noqa: E501
2230
+
2231
+ _param = self._get_scan_results_serialize(
2232
+ scan_id=scan_id,
2233
+ has_detections=has_detections,
2234
+ _request_auth=_request_auth,
2235
+ _content_type=_content_type,
2236
+ _headers=_headers,
2237
+ _host_index=_host_index
2238
+ )
2239
+
2240
+ _response_types_map: Dict[str, Optional[str]] = {
2241
+ '200': "ScanReportV3",
2242
+ '400': None,
2243
+ '404': None,
2244
+ }
2245
+ response_data = self.api_client.call_api(
2246
+ *_param,
2247
+ _request_timeout=_request_timeout
2248
+ )
2249
+ response_data.read()
2250
+ return self.api_client.response_deserialize(
2251
+ response_data=response_data,
2252
+ response_types_map=_response_types_map,
2253
+ )
2254
+
2255
+
2256
+ @validate_call
2257
+ def get_scan_results_without_preload_content(
2258
+ self,
2259
+ scan_id: StrictStr,
2260
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
1160
2261
  _request_timeout: Union[
1161
2262
  None,
1162
2263
  Annotated[StrictFloat, Field(gt=0)],
@@ -1170,29 +2271,13 @@ class ModelSupplyChainApi:
1170
2271
  _headers: Optional[Dict[StrictStr, Any]] = None,
1171
2272
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1172
2273
  ) -> RESTResponseType:
1173
- """Get condensed reports for a Model Scan
2274
+ """Get Result of a Model Scan
1174
2275
 
1175
2276
 
1176
- :param model_version_ids: Model Version ID
1177
- :type model_version_ids: List[str]
1178
- :param model_ids: Model ID
1179
- :type model_ids: List[str]
1180
- :param start_time: Start Time
1181
- :type start_time: datetime
1182
- :param end_time: End Time
1183
- :type end_time: datetime
1184
- :param severity: Severities
1185
- :type severity: List[str]
1186
- :param status: Statuses
1187
- :type status: List[str]
1188
- :param limit:
1189
- :type limit: int
1190
- :param offset:
1191
- :type offset: int
1192
- :param sort: allow sorting by status, severity or created at, ascending (+) or the default descending (-)
1193
- :type sort: str
1194
- :param latest_per_model_version_only: only return latest result per model version
1195
- :type latest_per_model_version_only: bool
2277
+ :param scan_id: (required)
2278
+ :type scan_id: str
2279
+ :param has_detections: Filter file_results to only those that have detections (and parents)
2280
+ :type has_detections: bool
1196
2281
  :param _request_timeout: timeout setting for this request. If one
1197
2282
  number provided, it will be total request
1198
2283
  timeout. It can also be a pair (tuple) of
@@ -1215,17 +2300,9 @@ class ModelSupplyChainApi:
1215
2300
  :return: Returns the result object.
1216
2301
  """ # noqa: E501
1217
2302
 
1218
- _param = self._model_scan_api_v3_scan_query_serialize(
1219
- model_version_ids=model_version_ids,
1220
- model_ids=model_ids,
1221
- start_time=start_time,
1222
- end_time=end_time,
1223
- severity=severity,
1224
- status=status,
1225
- limit=limit,
1226
- offset=offset,
1227
- sort=sort,
1228
- latest_per_model_version_only=latest_per_model_version_only,
2303
+ _param = self._get_scan_results_serialize(
2304
+ scan_id=scan_id,
2305
+ has_detections=has_detections,
1229
2306
  _request_auth=_request_auth,
1230
2307
  _content_type=_content_type,
1231
2308
  _headers=_headers,
@@ -1233,7 +2310,7 @@ class ModelSupplyChainApi:
1233
2310
  )
1234
2311
 
1235
2312
  _response_types_map: Dict[str, Optional[str]] = {
1236
- '200': "ModelScanApiV3ScanQuery200Response",
2313
+ '200': "ScanReportV3",
1237
2314
  '400': None,
1238
2315
  '404': None,
1239
2316
  }
@@ -1244,18 +2321,10 @@ class ModelSupplyChainApi:
1244
2321
  return response_data.response
1245
2322
 
1246
2323
 
1247
- def _model_scan_api_v3_scan_query_serialize(
2324
+ def _get_scan_results_serialize(
1248
2325
  self,
1249
- model_version_ids,
1250
- model_ids,
1251
- start_time,
1252
- end_time,
1253
- severity,
1254
- status,
1255
- limit,
1256
- offset,
1257
- sort,
1258
- latest_per_model_version_only,
2326
+ scan_id,
2327
+ has_detections,
1259
2328
  _request_auth,
1260
2329
  _content_type,
1261
2330
  _headers,
@@ -1265,10 +2334,6 @@ class ModelSupplyChainApi:
1265
2334
  _host = None
1266
2335
 
1267
2336
  _collection_formats: Dict[str, str] = {
1268
- 'model_version_ids': 'csv',
1269
- 'model_ids': 'csv',
1270
- 'severity': 'csv',
1271
- 'status': 'csv',
1272
2337
  }
1273
2338
 
1274
2339
  _path_params: Dict[str, str] = {}
@@ -1279,64 +2344,12 @@ class ModelSupplyChainApi:
1279
2344
  _body_params: Optional[bytes] = None
1280
2345
 
1281
2346
  # process the path parameters
2347
+ if scan_id is not None:
2348
+ _path_params['scan_id'] = scan_id
1282
2349
  # process the query parameters
1283
- if model_version_ids is not None:
1284
-
1285
- _query_params.append(('model_version_ids', model_version_ids))
1286
-
1287
- if model_ids is not None:
1288
-
1289
- _query_params.append(('model_ids', model_ids))
1290
-
1291
- if start_time is not None:
1292
- if isinstance(start_time, datetime):
1293
- _query_params.append(
1294
- (
1295
- 'start_time',
1296
- start_time.strftime(
1297
- self.api_client.configuration.datetime_format
1298
- )
1299
- )
1300
- )
1301
- else:
1302
- _query_params.append(('start_time', start_time))
1303
-
1304
- if end_time is not None:
1305
- if isinstance(end_time, datetime):
1306
- _query_params.append(
1307
- (
1308
- 'end_time',
1309
- end_time.strftime(
1310
- self.api_client.configuration.datetime_format
1311
- )
1312
- )
1313
- )
1314
- else:
1315
- _query_params.append(('end_time', end_time))
1316
-
1317
- if severity is not None:
1318
-
1319
- _query_params.append(('severity', severity))
1320
-
1321
- if status is not None:
1322
-
1323
- _query_params.append(('status', status))
1324
-
1325
- if limit is not None:
1326
-
1327
- _query_params.append(('limit', limit))
1328
-
1329
- if offset is not None:
1330
-
1331
- _query_params.append(('offset', offset))
1332
-
1333
- if sort is not None:
1334
-
1335
- _query_params.append(('sort', sort))
1336
-
1337
- if latest_per_model_version_only is not None:
2350
+ if has_detections is not None:
1338
2351
 
1339
- _query_params.append(('latest_per_model_version_only', latest_per_model_version_only))
2352
+ _query_params.append(('has_detections', has_detections))
1340
2353
 
1341
2354
  # process the header parameters
1342
2355
  # process the form parameters
@@ -1346,7 +2359,8 @@ class ModelSupplyChainApi:
1346
2359
  # set the HTTP header `Accept`
1347
2360
  _header_params['Accept'] = self.api_client.select_header_accept(
1348
2361
  [
1349
- 'application/json; charset=utf-8'
2362
+ 'application/json; charset=utf-8',
2363
+ 'application/sarif+json'
1350
2364
  ]
1351
2365
  )
1352
2366
 
@@ -1358,7 +2372,7 @@ class ModelSupplyChainApi:
1358
2372
 
1359
2373
  return self.api_client.param_serialize(
1360
2374
  method='GET',
1361
- resource_path='/scan/v3/results',
2375
+ resource_path='/scan/v3/results/{scan_id}',
1362
2376
  path_params=_path_params,
1363
2377
  query_params=_query_params,
1364
2378
  header_params=_header_params,
@@ -1375,9 +2389,11 @@ class ModelSupplyChainApi:
1375
2389
 
1376
2390
 
1377
2391
  @validate_call
1378
- def modelscan_api_v3_get_scan_results(
2392
+ def get_scan_results1(
1379
2393
  self,
1380
2394
  scan_id: Optional[StrictStr] = None,
2395
+ cursor: Optional[StrictStr] = None,
2396
+ page_size: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
1381
2397
  _request_timeout: Union[
1382
2398
  None,
1383
2399
  Annotated[StrictFloat, Field(gt=0)],
@@ -1390,12 +2406,16 @@ class ModelSupplyChainApi:
1390
2406
  _content_type: Optional[StrictStr] = None,
1391
2407
  _headers: Optional[Dict[StrictStr, Any]] = None,
1392
2408
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1393
- ) -> List[ScanResultsV2]:
2409
+ ) -> List[ScanResultsMapV3]:
1394
2410
  """Retrieve Model Scan Results
1395
2411
 
1396
2412
 
1397
2413
  :param scan_id:
1398
2414
  :type scan_id: str
2415
+ :param cursor:
2416
+ :type cursor: str
2417
+ :param page_size:
2418
+ :type page_size: int
1399
2419
  :param _request_timeout: timeout setting for this request. If one
1400
2420
  number provided, it will be total request
1401
2421
  timeout. It can also be a pair (tuple) of
@@ -1418,8 +2438,10 @@ class ModelSupplyChainApi:
1418
2438
  :return: Returns the result object.
1419
2439
  """ # noqa: E501
1420
2440
 
1421
- _param = self._modelscan_api_v3_get_scan_results_serialize(
2441
+ _param = self._get_scan_results1_serialize(
1422
2442
  scan_id=scan_id,
2443
+ cursor=cursor,
2444
+ page_size=page_size,
1423
2445
  _request_auth=_request_auth,
1424
2446
  _content_type=_content_type,
1425
2447
  _headers=_headers,
@@ -1427,11 +2449,10 @@ class ModelSupplyChainApi:
1427
2449
  )
1428
2450
 
1429
2451
  _response_types_map: Dict[str, Optional[str]] = {
1430
- '200': "List[ScanResultsV2]",
1431
- '202': "List[ScanResultsV2]",
2452
+ '200': "List[ScanResultsMapV3]",
1432
2453
  '400': None,
1433
2454
  '404': None,
1434
- '422': "ValidationErrorModel",
2455
+ '405': None,
1435
2456
  }
1436
2457
  response_data = self.api_client.call_api(
1437
2458
  *_param,
@@ -1445,9 +2466,11 @@ class ModelSupplyChainApi:
1445
2466
 
1446
2467
 
1447
2468
  @validate_call
1448
- def modelscan_api_v3_get_scan_results_with_http_info(
2469
+ def get_scan_results1_with_http_info(
1449
2470
  self,
1450
2471
  scan_id: Optional[StrictStr] = None,
2472
+ cursor: Optional[StrictStr] = None,
2473
+ page_size: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
1451
2474
  _request_timeout: Union[
1452
2475
  None,
1453
2476
  Annotated[StrictFloat, Field(gt=0)],
@@ -1460,12 +2483,16 @@ class ModelSupplyChainApi:
1460
2483
  _content_type: Optional[StrictStr] = None,
1461
2484
  _headers: Optional[Dict[StrictStr, Any]] = None,
1462
2485
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1463
- ) -> ApiResponse[List[ScanResultsV2]]:
2486
+ ) -> ApiResponse[List[ScanResultsMapV3]]:
1464
2487
  """Retrieve Model Scan Results
1465
2488
 
1466
2489
 
1467
2490
  :param scan_id:
1468
2491
  :type scan_id: str
2492
+ :param cursor:
2493
+ :type cursor: str
2494
+ :param page_size:
2495
+ :type page_size: int
1469
2496
  :param _request_timeout: timeout setting for this request. If one
1470
2497
  number provided, it will be total request
1471
2498
  timeout. It can also be a pair (tuple) of
@@ -1488,8 +2515,10 @@ class ModelSupplyChainApi:
1488
2515
  :return: Returns the result object.
1489
2516
  """ # noqa: E501
1490
2517
 
1491
- _param = self._modelscan_api_v3_get_scan_results_serialize(
2518
+ _param = self._get_scan_results1_serialize(
1492
2519
  scan_id=scan_id,
2520
+ cursor=cursor,
2521
+ page_size=page_size,
1493
2522
  _request_auth=_request_auth,
1494
2523
  _content_type=_content_type,
1495
2524
  _headers=_headers,
@@ -1497,11 +2526,10 @@ class ModelSupplyChainApi:
1497
2526
  )
1498
2527
 
1499
2528
  _response_types_map: Dict[str, Optional[str]] = {
1500
- '200': "List[ScanResultsV2]",
1501
- '202': "List[ScanResultsV2]",
2529
+ '200': "List[ScanResultsMapV3]",
1502
2530
  '400': None,
1503
2531
  '404': None,
1504
- '422': "ValidationErrorModel",
2532
+ '405': None,
1505
2533
  }
1506
2534
  response_data = self.api_client.call_api(
1507
2535
  *_param,
@@ -1515,9 +2543,11 @@ class ModelSupplyChainApi:
1515
2543
 
1516
2544
 
1517
2545
  @validate_call
1518
- def modelscan_api_v3_get_scan_results_without_preload_content(
2546
+ def get_scan_results1_without_preload_content(
1519
2547
  self,
1520
2548
  scan_id: Optional[StrictStr] = None,
2549
+ cursor: Optional[StrictStr] = None,
2550
+ page_size: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
1521
2551
  _request_timeout: Union[
1522
2552
  None,
1523
2553
  Annotated[StrictFloat, Field(gt=0)],
@@ -1536,6 +2566,10 @@ class ModelSupplyChainApi:
1536
2566
 
1537
2567
  :param scan_id:
1538
2568
  :type scan_id: str
2569
+ :param cursor:
2570
+ :type cursor: str
2571
+ :param page_size:
2572
+ :type page_size: int
1539
2573
  :param _request_timeout: timeout setting for this request. If one
1540
2574
  number provided, it will be total request
1541
2575
  timeout. It can also be a pair (tuple) of
@@ -1558,8 +2592,10 @@ class ModelSupplyChainApi:
1558
2592
  :return: Returns the result object.
1559
2593
  """ # noqa: E501
1560
2594
 
1561
- _param = self._modelscan_api_v3_get_scan_results_serialize(
2595
+ _param = self._get_scan_results1_serialize(
1562
2596
  scan_id=scan_id,
2597
+ cursor=cursor,
2598
+ page_size=page_size,
1563
2599
  _request_auth=_request_auth,
1564
2600
  _content_type=_content_type,
1565
2601
  _headers=_headers,
@@ -1567,11 +2603,10 @@ class ModelSupplyChainApi:
1567
2603
  )
1568
2604
 
1569
2605
  _response_types_map: Dict[str, Optional[str]] = {
1570
- '200': "List[ScanResultsV2]",
1571
- '202': "List[ScanResultsV2]",
2606
+ '200': "List[ScanResultsMapV3]",
1572
2607
  '400': None,
1573
2608
  '404': None,
1574
- '422': "ValidationErrorModel",
2609
+ '405': None,
1575
2610
  }
1576
2611
  response_data = self.api_client.call_api(
1577
2612
  *_param,
@@ -1580,9 +2615,11 @@ class ModelSupplyChainApi:
1580
2615
  return response_data.response
1581
2616
 
1582
2617
 
1583
- def _modelscan_api_v3_get_scan_results_serialize(
2618
+ def _get_scan_results1_serialize(
1584
2619
  self,
1585
2620
  scan_id,
2621
+ cursor,
2622
+ page_size,
1586
2623
  _request_auth,
1587
2624
  _content_type,
1588
2625
  _headers,
@@ -1605,6 +2642,14 @@ class ModelSupplyChainApi:
1605
2642
  if scan_id is not None:
1606
2643
  _path_params['scan_id'] = scan_id
1607
2644
  # process the query parameters
2645
+ if cursor is not None:
2646
+
2647
+ _query_params.append(('cursor', cursor))
2648
+
2649
+ if page_size is not None:
2650
+
2651
+ _query_params.append(('page_size', page_size))
2652
+
1608
2653
  # process the header parameters
1609
2654
  # process the form parameters
1610
2655
  # process the body parameter
@@ -1613,8 +2658,7 @@ class ModelSupplyChainApi:
1613
2658
  # set the HTTP header `Accept`
1614
2659
  _header_params['Accept'] = self.api_client.select_header_accept(
1615
2660
  [
1616
- 'application/json; charset=utf-8',
1617
- 'application/json'
2661
+ 'application/json; charset=utf-8'
1618
2662
  ]
1619
2663
  )
1620
2664
 
@@ -1643,10 +2687,8 @@ class ModelSupplyChainApi:
1643
2687
 
1644
2688
 
1645
2689
  @validate_call
1646
- def modelscan_api_v3_post_scan_results(
2690
+ def modelscanner_api_v3_health_check(
1647
2691
  self,
1648
- scan_id: StrictStr,
1649
- scan_create_request: Annotated[ScanCreateRequest, Field(description="Request body for reporting a scan of one or more file results")],
1650
2692
  _request_timeout: Union[
1651
2693
  None,
1652
2694
  Annotated[StrictFloat, Field(gt=0)],
@@ -1660,13 +2702,9 @@ class ModelSupplyChainApi:
1660
2702
  _headers: Optional[Dict[StrictStr, Any]] = None,
1661
2703
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1662
2704
  ) -> None:
1663
- """Engine Report Endpoint of Model Scan Results
2705
+ """Health check endpoint for Model Supply Chain Services
1664
2706
 
1665
2707
 
1666
- :param scan_id: (required)
1667
- :type scan_id: str
1668
- :param scan_create_request: Request body for reporting a scan of one or more file results (required)
1669
- :type scan_create_request: ScanCreateRequest
1670
2708
  :param _request_timeout: timeout setting for this request. If one
1671
2709
  number provided, it will be total request
1672
2710
  timeout. It can also be a pair (tuple) of
@@ -1689,9 +2727,7 @@ class ModelSupplyChainApi:
1689
2727
  :return: Returns the result object.
1690
2728
  """ # noqa: E501
1691
2729
 
1692
- _param = self._modelscan_api_v3_post_scan_results_serialize(
1693
- scan_id=scan_id,
1694
- scan_create_request=scan_create_request,
2730
+ _param = self._modelscanner_api_v3_health_check_serialize(
1695
2731
  _request_auth=_request_auth,
1696
2732
  _content_type=_content_type,
1697
2733
  _headers=_headers,
@@ -1699,9 +2735,8 @@ class ModelSupplyChainApi:
1699
2735
  )
1700
2736
 
1701
2737
  _response_types_map: Dict[str, Optional[str]] = {
1702
- '204': None,
1703
- '400': None,
1704
- '422': "ValidationErrorModel",
2738
+ '200': None,
2739
+ '503': None,
1705
2740
  }
1706
2741
  response_data = self.api_client.call_api(
1707
2742
  *_param,
@@ -1715,10 +2750,8 @@ class ModelSupplyChainApi:
1715
2750
 
1716
2751
 
1717
2752
  @validate_call
1718
- def modelscan_api_v3_post_scan_results_with_http_info(
2753
+ def modelscanner_api_v3_health_check_with_http_info(
1719
2754
  self,
1720
- scan_id: StrictStr,
1721
- scan_create_request: Annotated[ScanCreateRequest, Field(description="Request body for reporting a scan of one or more file results")],
1722
2755
  _request_timeout: Union[
1723
2756
  None,
1724
2757
  Annotated[StrictFloat, Field(gt=0)],
@@ -1732,13 +2765,9 @@ class ModelSupplyChainApi:
1732
2765
  _headers: Optional[Dict[StrictStr, Any]] = None,
1733
2766
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1734
2767
  ) -> ApiResponse[None]:
1735
- """Engine Report Endpoint of Model Scan Results
2768
+ """Health check endpoint for Model Supply Chain Services
1736
2769
 
1737
2770
 
1738
- :param scan_id: (required)
1739
- :type scan_id: str
1740
- :param scan_create_request: Request body for reporting a scan of one or more file results (required)
1741
- :type scan_create_request: ScanCreateRequest
1742
2771
  :param _request_timeout: timeout setting for this request. If one
1743
2772
  number provided, it will be total request
1744
2773
  timeout. It can also be a pair (tuple) of
@@ -1761,9 +2790,7 @@ class ModelSupplyChainApi:
1761
2790
  :return: Returns the result object.
1762
2791
  """ # noqa: E501
1763
2792
 
1764
- _param = self._modelscan_api_v3_post_scan_results_serialize(
1765
- scan_id=scan_id,
1766
- scan_create_request=scan_create_request,
2793
+ _param = self._modelscanner_api_v3_health_check_serialize(
1767
2794
  _request_auth=_request_auth,
1768
2795
  _content_type=_content_type,
1769
2796
  _headers=_headers,
@@ -1771,9 +2798,8 @@ class ModelSupplyChainApi:
1771
2798
  )
1772
2799
 
1773
2800
  _response_types_map: Dict[str, Optional[str]] = {
1774
- '204': None,
1775
- '400': None,
1776
- '422': "ValidationErrorModel",
2801
+ '200': None,
2802
+ '503': None,
1777
2803
  }
1778
2804
  response_data = self.api_client.call_api(
1779
2805
  *_param,
@@ -1787,10 +2813,8 @@ class ModelSupplyChainApi:
1787
2813
 
1788
2814
 
1789
2815
  @validate_call
1790
- def modelscan_api_v3_post_scan_results_without_preload_content(
2816
+ def modelscanner_api_v3_health_check_without_preload_content(
1791
2817
  self,
1792
- scan_id: StrictStr,
1793
- scan_create_request: Annotated[ScanCreateRequest, Field(description="Request body for reporting a scan of one or more file results")],
1794
2818
  _request_timeout: Union[
1795
2819
  None,
1796
2820
  Annotated[StrictFloat, Field(gt=0)],
@@ -1804,13 +2828,9 @@ class ModelSupplyChainApi:
1804
2828
  _headers: Optional[Dict[StrictStr, Any]] = None,
1805
2829
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1806
2830
  ) -> RESTResponseType:
1807
- """Engine Report Endpoint of Model Scan Results
2831
+ """Health check endpoint for Model Supply Chain Services
1808
2832
 
1809
2833
 
1810
- :param scan_id: (required)
1811
- :type scan_id: str
1812
- :param scan_create_request: Request body for reporting a scan of one or more file results (required)
1813
- :type scan_create_request: ScanCreateRequest
1814
2834
  :param _request_timeout: timeout setting for this request. If one
1815
2835
  number provided, it will be total request
1816
2836
  timeout. It can also be a pair (tuple) of
@@ -1833,9 +2853,7 @@ class ModelSupplyChainApi:
1833
2853
  :return: Returns the result object.
1834
2854
  """ # noqa: E501
1835
2855
 
1836
- _param = self._modelscan_api_v3_post_scan_results_serialize(
1837
- scan_id=scan_id,
1838
- scan_create_request=scan_create_request,
2856
+ _param = self._modelscanner_api_v3_health_check_serialize(
1839
2857
  _request_auth=_request_auth,
1840
2858
  _content_type=_content_type,
1841
2859
  _headers=_headers,
@@ -1843,9 +2861,8 @@ class ModelSupplyChainApi:
1843
2861
  )
1844
2862
 
1845
2863
  _response_types_map: Dict[str, Optional[str]] = {
1846
- '204': None,
1847
- '400': None,
1848
- '422': "ValidationErrorModel",
2864
+ '200': None,
2865
+ '503': None,
1849
2866
  }
1850
2867
  response_data = self.api_client.call_api(
1851
2868
  *_param,
@@ -1854,10 +2871,8 @@ class ModelSupplyChainApi:
1854
2871
  return response_data.response
1855
2872
 
1856
2873
 
1857
- def _modelscan_api_v3_post_scan_results_serialize(
2874
+ def _modelscanner_api_v3_health_check_serialize(
1858
2875
  self,
1859
- scan_id,
1860
- scan_create_request,
1861
2876
  _request_auth,
1862
2877
  _content_type,
1863
2878
  _headers,
@@ -1877,37 +2892,13 @@ class ModelSupplyChainApi:
1877
2892
  _body_params: Optional[bytes] = None
1878
2893
 
1879
2894
  # process the path parameters
1880
- if scan_id is not None:
1881
- _path_params['scan_id'] = scan_id
1882
2895
  # process the query parameters
1883
2896
  # process the header parameters
1884
2897
  # process the form parameters
1885
2898
  # process the body parameter
1886
- if scan_create_request is not None:
1887
- _body_params = scan_create_request
1888
2899
 
1889
2900
 
1890
- # set the HTTP header `Accept`
1891
- _header_params['Accept'] = self.api_client.select_header_accept(
1892
- [
1893
- 'application/json'
1894
- ]
1895
- )
1896
2901
 
1897
- # set the HTTP header `Content-Type`
1898
- if _content_type:
1899
- _header_params['Content-Type'] = _content_type
1900
- else:
1901
- _default_content_type = (
1902
- self.api_client.select_header_content_type(
1903
- [
1904
- 'application/json',
1905
- 'application/octet-stream'
1906
- ]
1907
- )
1908
- )
1909
- if _default_content_type is not None:
1910
- _header_params['Content-Type'] = _default_content_type
1911
2902
 
1912
2903
  # authentication setting
1913
2904
  _auth_settings: List[str] = [
@@ -1915,8 +2906,8 @@ class ModelSupplyChainApi:
1915
2906
  ]
1916
2907
 
1917
2908
  return self.api_client.param_serialize(
1918
- method='POST',
1919
- resource_path='/scans/v3/reports/{scan_id}',
2909
+ method='GET',
2910
+ resource_path='/scans/v3/health',
1920
2911
  path_params=_path_params,
1921
2912
  query_params=_query_params,
1922
2913
  header_params=_header_params,
@@ -1933,7 +2924,7 @@ class ModelSupplyChainApi:
1933
2924
 
1934
2925
 
1935
2926
  @validate_call
1936
- def modelscanner_api_v3_get_jobs(
2927
+ def modelscanner_api_v3_readiness_check(
1937
2928
  self,
1938
2929
  _request_timeout: Union[
1939
2930
  None,
@@ -1947,8 +2938,8 @@ class ModelSupplyChainApi:
1947
2938
  _content_type: Optional[StrictStr] = None,
1948
2939
  _headers: Optional[Dict[StrictStr, Any]] = None,
1949
2940
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1950
- ) -> List[ScanJob]:
1951
- """List all Model Scan Jobs
2941
+ ) -> None:
2942
+ """Readiness check endpoint for Model Supply Chain Services
1952
2943
 
1953
2944
 
1954
2945
  :param _request_timeout: timeout setting for this request. If one
@@ -1973,7 +2964,7 @@ class ModelSupplyChainApi:
1973
2964
  :return: Returns the result object.
1974
2965
  """ # noqa: E501
1975
2966
 
1976
- _param = self._modelscanner_api_v3_get_jobs_serialize(
2967
+ _param = self._modelscanner_api_v3_readiness_check_serialize(
1977
2968
  _request_auth=_request_auth,
1978
2969
  _content_type=_content_type,
1979
2970
  _headers=_headers,
@@ -1981,9 +2972,8 @@ class ModelSupplyChainApi:
1981
2972
  )
1982
2973
 
1983
2974
  _response_types_map: Dict[str, Optional[str]] = {
1984
- '200': "List[ScanJob]",
1985
- '400': None,
1986
- '404': None,
2975
+ '200': None,
2976
+ '503': None,
1987
2977
  }
1988
2978
  response_data = self.api_client.call_api(
1989
2979
  *_param,
@@ -1997,7 +2987,7 @@ class ModelSupplyChainApi:
1997
2987
 
1998
2988
 
1999
2989
  @validate_call
2000
- def modelscanner_api_v3_get_jobs_with_http_info(
2990
+ def modelscanner_api_v3_readiness_check_with_http_info(
2001
2991
  self,
2002
2992
  _request_timeout: Union[
2003
2993
  None,
@@ -2011,8 +3001,8 @@ class ModelSupplyChainApi:
2011
3001
  _content_type: Optional[StrictStr] = None,
2012
3002
  _headers: Optional[Dict[StrictStr, Any]] = None,
2013
3003
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2014
- ) -> ApiResponse[List[ScanJob]]:
2015
- """List all Model Scan Jobs
3004
+ ) -> ApiResponse[None]:
3005
+ """Readiness check endpoint for Model Supply Chain Services
2016
3006
 
2017
3007
 
2018
3008
  :param _request_timeout: timeout setting for this request. If one
@@ -2037,7 +3027,7 @@ class ModelSupplyChainApi:
2037
3027
  :return: Returns the result object.
2038
3028
  """ # noqa: E501
2039
3029
 
2040
- _param = self._modelscanner_api_v3_get_jobs_serialize(
3030
+ _param = self._modelscanner_api_v3_readiness_check_serialize(
2041
3031
  _request_auth=_request_auth,
2042
3032
  _content_type=_content_type,
2043
3033
  _headers=_headers,
@@ -2045,9 +3035,8 @@ class ModelSupplyChainApi:
2045
3035
  )
2046
3036
 
2047
3037
  _response_types_map: Dict[str, Optional[str]] = {
2048
- '200': "List[ScanJob]",
2049
- '400': None,
2050
- '404': None,
3038
+ '200': None,
3039
+ '503': None,
2051
3040
  }
2052
3041
  response_data = self.api_client.call_api(
2053
3042
  *_param,
@@ -2061,7 +3050,7 @@ class ModelSupplyChainApi:
2061
3050
 
2062
3051
 
2063
3052
  @validate_call
2064
- def modelscanner_api_v3_get_jobs_without_preload_content(
3053
+ def modelscanner_api_v3_readiness_check_without_preload_content(
2065
3054
  self,
2066
3055
  _request_timeout: Union[
2067
3056
  None,
@@ -2076,7 +3065,7 @@ class ModelSupplyChainApi:
2076
3065
  _headers: Optional[Dict[StrictStr, Any]] = None,
2077
3066
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2078
3067
  ) -> RESTResponseType:
2079
- """List all Model Scan Jobs
3068
+ """Readiness check endpoint for Model Supply Chain Services
2080
3069
 
2081
3070
 
2082
3071
  :param _request_timeout: timeout setting for this request. If one
@@ -2101,7 +3090,7 @@ class ModelSupplyChainApi:
2101
3090
  :return: Returns the result object.
2102
3091
  """ # noqa: E501
2103
3092
 
2104
- _param = self._modelscanner_api_v3_get_jobs_serialize(
3093
+ _param = self._modelscanner_api_v3_readiness_check_serialize(
2105
3094
  _request_auth=_request_auth,
2106
3095
  _content_type=_content_type,
2107
3096
  _headers=_headers,
@@ -2109,9 +3098,8 @@ class ModelSupplyChainApi:
2109
3098
  )
2110
3099
 
2111
3100
  _response_types_map: Dict[str, Optional[str]] = {
2112
- '200': "List[ScanJob]",
2113
- '400': None,
2114
- '404': None,
3101
+ '200': None,
3102
+ '503': None,
2115
3103
  }
2116
3104
  response_data = self.api_client.call_api(
2117
3105
  *_param,
@@ -2120,7 +3108,7 @@ class ModelSupplyChainApi:
2120
3108
  return response_data.response
2121
3109
 
2122
3110
 
2123
- def _modelscanner_api_v3_get_jobs_serialize(
3111
+ def _modelscanner_api_v3_readiness_check_serialize(
2124
3112
  self,
2125
3113
  _request_auth,
2126
3114
  _content_type,
@@ -2147,14 +3135,8 @@ class ModelSupplyChainApi:
2147
3135
  # process the body parameter
2148
3136
 
2149
3137
 
2150
- # set the HTTP header `Accept`
2151
- _header_params['Accept'] = self.api_client.select_header_accept(
2152
- [
2153
- 'application/json; charset=utf-8'
2154
- ]
2155
- )
2156
-
2157
-
3138
+
3139
+
2158
3140
  # authentication setting
2159
3141
  _auth_settings: List[str] = [
2160
3142
  'BearerAuth'
@@ -2162,7 +3144,7 @@ class ModelSupplyChainApi:
2162
3144
 
2163
3145
  return self.api_client.param_serialize(
2164
3146
  method='GET',
2165
- resource_path='/scans/v3/jobs',
3147
+ resource_path='/scans/v3/readiness',
2166
3148
  path_params=_path_params,
2167
3149
  query_params=_query_params,
2168
3150
  header_params=_header_params,
@@ -2179,8 +3161,11 @@ class ModelSupplyChainApi:
2179
3161
 
2180
3162
 
2181
3163
  @validate_call
2182
- def modelscanner_api_v3_health_check(
3164
+ def notify_model_scan_completed(
2183
3165
  self,
3166
+ scan_id: StrictStr,
3167
+ scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for partial update")],
3168
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2184
3169
  _request_timeout: Union[
2185
3170
  None,
2186
3171
  Annotated[StrictFloat, Field(gt=0)],
@@ -2193,10 +3178,16 @@ class ModelSupplyChainApi:
2193
3178
  _content_type: Optional[StrictStr] = None,
2194
3179
  _headers: Optional[Dict[StrictStr, Any]] = None,
2195
3180
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2196
- ) -> None:
2197
- """Health check endpoint for Model Supply Chain Services
3181
+ ) -> NotifyModelScanCompleted200Response:
3182
+ """Indicate part (file or files) of a model scan has completed
2198
3183
 
2199
3184
 
3185
+ :param scan_id: (required)
3186
+ :type scan_id: str
3187
+ :param scan_report_v3: Request body for partial update (required)
3188
+ :type scan_report_v3: ScanReportV3
3189
+ :param has_detections: Filter file_results to only those that have detections (and parents)
3190
+ :type has_detections: bool
2200
3191
  :param _request_timeout: timeout setting for this request. If one
2201
3192
  number provided, it will be total request
2202
3193
  timeout. It can also be a pair (tuple) of
@@ -2219,7 +3210,10 @@ class ModelSupplyChainApi:
2219
3210
  :return: Returns the result object.
2220
3211
  """ # noqa: E501
2221
3212
 
2222
- _param = self._modelscanner_api_v3_health_check_serialize(
3213
+ _param = self._notify_model_scan_completed_serialize(
3214
+ scan_id=scan_id,
3215
+ scan_report_v3=scan_report_v3,
3216
+ has_detections=has_detections,
2223
3217
  _request_auth=_request_auth,
2224
3218
  _content_type=_content_type,
2225
3219
  _headers=_headers,
@@ -2227,8 +3221,9 @@ class ModelSupplyChainApi:
2227
3221
  )
2228
3222
 
2229
3223
  _response_types_map: Dict[str, Optional[str]] = {
2230
- '200': None,
2231
- '503': None,
3224
+ '200': "NotifyModelScanCompleted200Response",
3225
+ '400': None,
3226
+ '422': "ValidationErrorModel",
2232
3227
  }
2233
3228
  response_data = self.api_client.call_api(
2234
3229
  *_param,
@@ -2242,8 +3237,11 @@ class ModelSupplyChainApi:
2242
3237
 
2243
3238
 
2244
3239
  @validate_call
2245
- def modelscanner_api_v3_health_check_with_http_info(
3240
+ def notify_model_scan_completed_with_http_info(
2246
3241
  self,
3242
+ scan_id: StrictStr,
3243
+ scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for partial update")],
3244
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2247
3245
  _request_timeout: Union[
2248
3246
  None,
2249
3247
  Annotated[StrictFloat, Field(gt=0)],
@@ -2256,10 +3254,16 @@ class ModelSupplyChainApi:
2256
3254
  _content_type: Optional[StrictStr] = None,
2257
3255
  _headers: Optional[Dict[StrictStr, Any]] = None,
2258
3256
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2259
- ) -> ApiResponse[None]:
2260
- """Health check endpoint for Model Supply Chain Services
3257
+ ) -> ApiResponse[NotifyModelScanCompleted200Response]:
3258
+ """Indicate part (file or files) of a model scan has completed
2261
3259
 
2262
3260
 
3261
+ :param scan_id: (required)
3262
+ :type scan_id: str
3263
+ :param scan_report_v3: Request body for partial update (required)
3264
+ :type scan_report_v3: ScanReportV3
3265
+ :param has_detections: Filter file_results to only those that have detections (and parents)
3266
+ :type has_detections: bool
2263
3267
  :param _request_timeout: timeout setting for this request. If one
2264
3268
  number provided, it will be total request
2265
3269
  timeout. It can also be a pair (tuple) of
@@ -2282,7 +3286,10 @@ class ModelSupplyChainApi:
2282
3286
  :return: Returns the result object.
2283
3287
  """ # noqa: E501
2284
3288
 
2285
- _param = self._modelscanner_api_v3_health_check_serialize(
3289
+ _param = self._notify_model_scan_completed_serialize(
3290
+ scan_id=scan_id,
3291
+ scan_report_v3=scan_report_v3,
3292
+ has_detections=has_detections,
2286
3293
  _request_auth=_request_auth,
2287
3294
  _content_type=_content_type,
2288
3295
  _headers=_headers,
@@ -2290,8 +3297,9 @@ class ModelSupplyChainApi:
2290
3297
  )
2291
3298
 
2292
3299
  _response_types_map: Dict[str, Optional[str]] = {
2293
- '200': None,
2294
- '503': None,
3300
+ '200': "NotifyModelScanCompleted200Response",
3301
+ '400': None,
3302
+ '422': "ValidationErrorModel",
2295
3303
  }
2296
3304
  response_data = self.api_client.call_api(
2297
3305
  *_param,
@@ -2305,8 +3313,11 @@ class ModelSupplyChainApi:
2305
3313
 
2306
3314
 
2307
3315
  @validate_call
2308
- def modelscanner_api_v3_health_check_without_preload_content(
3316
+ def notify_model_scan_completed_without_preload_content(
2309
3317
  self,
3318
+ scan_id: StrictStr,
3319
+ scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for partial update")],
3320
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2310
3321
  _request_timeout: Union[
2311
3322
  None,
2312
3323
  Annotated[StrictFloat, Field(gt=0)],
@@ -2320,9 +3331,15 @@ class ModelSupplyChainApi:
2320
3331
  _headers: Optional[Dict[StrictStr, Any]] = None,
2321
3332
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2322
3333
  ) -> RESTResponseType:
2323
- """Health check endpoint for Model Supply Chain Services
3334
+ """Indicate part (file or files) of a model scan has completed
2324
3335
 
2325
3336
 
3337
+ :param scan_id: (required)
3338
+ :type scan_id: str
3339
+ :param scan_report_v3: Request body for partial update (required)
3340
+ :type scan_report_v3: ScanReportV3
3341
+ :param has_detections: Filter file_results to only those that have detections (and parents)
3342
+ :type has_detections: bool
2326
3343
  :param _request_timeout: timeout setting for this request. If one
2327
3344
  number provided, it will be total request
2328
3345
  timeout. It can also be a pair (tuple) of
@@ -2345,7 +3362,10 @@ class ModelSupplyChainApi:
2345
3362
  :return: Returns the result object.
2346
3363
  """ # noqa: E501
2347
3364
 
2348
- _param = self._modelscanner_api_v3_health_check_serialize(
3365
+ _param = self._notify_model_scan_completed_serialize(
3366
+ scan_id=scan_id,
3367
+ scan_report_v3=scan_report_v3,
3368
+ has_detections=has_detections,
2349
3369
  _request_auth=_request_auth,
2350
3370
  _content_type=_content_type,
2351
3371
  _headers=_headers,
@@ -2353,8 +3373,9 @@ class ModelSupplyChainApi:
2353
3373
  )
2354
3374
 
2355
3375
  _response_types_map: Dict[str, Optional[str]] = {
2356
- '200': None,
2357
- '503': None,
3376
+ '200': "NotifyModelScanCompleted200Response",
3377
+ '400': None,
3378
+ '422': "ValidationErrorModel",
2358
3379
  }
2359
3380
  response_data = self.api_client.call_api(
2360
3381
  *_param,
@@ -2363,8 +3384,11 @@ class ModelSupplyChainApi:
2363
3384
  return response_data.response
2364
3385
 
2365
3386
 
2366
- def _modelscanner_api_v3_health_check_serialize(
3387
+ def _notify_model_scan_completed_serialize(
2367
3388
  self,
3389
+ scan_id,
3390
+ scan_report_v3,
3391
+ has_detections,
2368
3392
  _request_auth,
2369
3393
  _content_type,
2370
3394
  _headers,
@@ -2384,13 +3408,40 @@ class ModelSupplyChainApi:
2384
3408
  _body_params: Optional[bytes] = None
2385
3409
 
2386
3410
  # process the path parameters
3411
+ if scan_id is not None:
3412
+ _path_params['scan_id'] = scan_id
2387
3413
  # process the query parameters
3414
+ if has_detections is not None:
3415
+
3416
+ _query_params.append(('has_detections', has_detections))
3417
+
2388
3418
  # process the header parameters
2389
3419
  # process the form parameters
2390
3420
  # process the body parameter
3421
+ if scan_report_v3 is not None:
3422
+ _body_params = scan_report_v3
2391
3423
 
2392
3424
 
3425
+ # set the HTTP header `Accept`
3426
+ _header_params['Accept'] = self.api_client.select_header_accept(
3427
+ [
3428
+ 'application/json'
3429
+ ]
3430
+ )
2393
3431
 
3432
+ # set the HTTP header `Content-Type`
3433
+ if _content_type:
3434
+ _header_params['Content-Type'] = _content_type
3435
+ else:
3436
+ _default_content_type = (
3437
+ self.api_client.select_header_content_type(
3438
+ [
3439
+ 'application/json'
3440
+ ]
3441
+ )
3442
+ )
3443
+ if _default_content_type is not None:
3444
+ _header_params['Content-Type'] = _default_content_type
2394
3445
 
2395
3446
  # authentication setting
2396
3447
  _auth_settings: List[str] = [
@@ -2398,8 +3449,8 @@ class ModelSupplyChainApi:
2398
3449
  ]
2399
3450
 
2400
3451
  return self.api_client.param_serialize(
2401
- method='GET',
2402
- resource_path='/scans/v3/health',
3452
+ method='PATCH',
3453
+ resource_path='/scan/v3/results/{scan_id}',
2403
3454
  path_params=_path_params,
2404
3455
  query_params=_query_params,
2405
3456
  header_params=_header_params,
@@ -2416,9 +3467,11 @@ class ModelSupplyChainApi:
2416
3467
 
2417
3468
 
2418
3469
  @validate_call
2419
- def modelscanner_api_v3_post_request(
3470
+ def notify_model_scan_started(
2420
3471
  self,
2421
- scan_job: Annotated[ScanJob, Field(description="Request body for create scan request")],
3472
+ scan_id: StrictStr,
3473
+ scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for create")],
3474
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2422
3475
  _request_timeout: Union[
2423
3476
  None,
2424
3477
  Annotated[StrictFloat, Field(gt=0)],
@@ -2432,11 +3485,15 @@ class ModelSupplyChainApi:
2432
3485
  _headers: Optional[Dict[StrictStr, Any]] = None,
2433
3486
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2434
3487
  ) -> None:
2435
- """Request a Model Scan Job
3488
+ """Indicate model scan has started
2436
3489
 
2437
3490
 
2438
- :param scan_job: Request body for create scan request (required)
2439
- :type scan_job: ScanJob
3491
+ :param scan_id: (required)
3492
+ :type scan_id: str
3493
+ :param scan_report_v3: Request body for create (required)
3494
+ :type scan_report_v3: ScanReportV3
3495
+ :param has_detections: Filter file_results to only those that have detections (and parents)
3496
+ :type has_detections: bool
2440
3497
  :param _request_timeout: timeout setting for this request. If one
2441
3498
  number provided, it will be total request
2442
3499
  timeout. It can also be a pair (tuple) of
@@ -2459,8 +3516,10 @@ class ModelSupplyChainApi:
2459
3516
  :return: Returns the result object.
2460
3517
  """ # noqa: E501
2461
3518
 
2462
- _param = self._modelscanner_api_v3_post_request_serialize(
2463
- scan_job=scan_job,
3519
+ _param = self._notify_model_scan_started_serialize(
3520
+ scan_id=scan_id,
3521
+ scan_report_v3=scan_report_v3,
3522
+ has_detections=has_detections,
2464
3523
  _request_auth=_request_auth,
2465
3524
  _content_type=_content_type,
2466
3525
  _headers=_headers,
@@ -2484,9 +3543,11 @@ class ModelSupplyChainApi:
2484
3543
 
2485
3544
 
2486
3545
  @validate_call
2487
- def modelscanner_api_v3_post_request_with_http_info(
3546
+ def notify_model_scan_started_with_http_info(
2488
3547
  self,
2489
- scan_job: Annotated[ScanJob, Field(description="Request body for create scan request")],
3548
+ scan_id: StrictStr,
3549
+ scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for create")],
3550
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2490
3551
  _request_timeout: Union[
2491
3552
  None,
2492
3553
  Annotated[StrictFloat, Field(gt=0)],
@@ -2500,11 +3561,15 @@ class ModelSupplyChainApi:
2500
3561
  _headers: Optional[Dict[StrictStr, Any]] = None,
2501
3562
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2502
3563
  ) -> ApiResponse[None]:
2503
- """Request a Model Scan Job
3564
+ """Indicate model scan has started
2504
3565
 
2505
3566
 
2506
- :param scan_job: Request body for create scan request (required)
2507
- :type scan_job: ScanJob
3567
+ :param scan_id: (required)
3568
+ :type scan_id: str
3569
+ :param scan_report_v3: Request body for create (required)
3570
+ :type scan_report_v3: ScanReportV3
3571
+ :param has_detections: Filter file_results to only those that have detections (and parents)
3572
+ :type has_detections: bool
2508
3573
  :param _request_timeout: timeout setting for this request. If one
2509
3574
  number provided, it will be total request
2510
3575
  timeout. It can also be a pair (tuple) of
@@ -2527,8 +3592,10 @@ class ModelSupplyChainApi:
2527
3592
  :return: Returns the result object.
2528
3593
  """ # noqa: E501
2529
3594
 
2530
- _param = self._modelscanner_api_v3_post_request_serialize(
2531
- scan_job=scan_job,
3595
+ _param = self._notify_model_scan_started_serialize(
3596
+ scan_id=scan_id,
3597
+ scan_report_v3=scan_report_v3,
3598
+ has_detections=has_detections,
2532
3599
  _request_auth=_request_auth,
2533
3600
  _content_type=_content_type,
2534
3601
  _headers=_headers,
@@ -2552,9 +3619,11 @@ class ModelSupplyChainApi:
2552
3619
 
2553
3620
 
2554
3621
  @validate_call
2555
- def modelscanner_api_v3_post_request_without_preload_content(
3622
+ def notify_model_scan_started_without_preload_content(
2556
3623
  self,
2557
- scan_job: Annotated[ScanJob, Field(description="Request body for create scan request")],
3624
+ scan_id: StrictStr,
3625
+ scan_report_v3: Annotated[ScanReportV3, Field(description="Request body for create")],
3626
+ has_detections: Annotated[Optional[StrictBool], Field(description="Filter file_results to only those that have detections (and parents)")] = None,
2558
3627
  _request_timeout: Union[
2559
3628
  None,
2560
3629
  Annotated[StrictFloat, Field(gt=0)],
@@ -2568,11 +3637,15 @@ class ModelSupplyChainApi:
2568
3637
  _headers: Optional[Dict[StrictStr, Any]] = None,
2569
3638
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2570
3639
  ) -> RESTResponseType:
2571
- """Request a Model Scan Job
3640
+ """Indicate model scan has started
2572
3641
 
2573
3642
 
2574
- :param scan_job: Request body for create scan request (required)
2575
- :type scan_job: ScanJob
3643
+ :param scan_id: (required)
3644
+ :type scan_id: str
3645
+ :param scan_report_v3: Request body for create (required)
3646
+ :type scan_report_v3: ScanReportV3
3647
+ :param has_detections: Filter file_results to only those that have detections (and parents)
3648
+ :type has_detections: bool
2576
3649
  :param _request_timeout: timeout setting for this request. If one
2577
3650
  number provided, it will be total request
2578
3651
  timeout. It can also be a pair (tuple) of
@@ -2595,8 +3668,10 @@ class ModelSupplyChainApi:
2595
3668
  :return: Returns the result object.
2596
3669
  """ # noqa: E501
2597
3670
 
2598
- _param = self._modelscanner_api_v3_post_request_serialize(
2599
- scan_job=scan_job,
3671
+ _param = self._notify_model_scan_started_serialize(
3672
+ scan_id=scan_id,
3673
+ scan_report_v3=scan_report_v3,
3674
+ has_detections=has_detections,
2600
3675
  _request_auth=_request_auth,
2601
3676
  _content_type=_content_type,
2602
3677
  _headers=_headers,
@@ -2615,9 +3690,11 @@ class ModelSupplyChainApi:
2615
3690
  return response_data.response
2616
3691
 
2617
3692
 
2618
- def _modelscanner_api_v3_post_request_serialize(
3693
+ def _notify_model_scan_started_serialize(
2619
3694
  self,
2620
- scan_job,
3695
+ scan_id,
3696
+ scan_report_v3,
3697
+ has_detections,
2621
3698
  _request_auth,
2622
3699
  _content_type,
2623
3700
  _headers,
@@ -2637,12 +3714,18 @@ class ModelSupplyChainApi:
2637
3714
  _body_params: Optional[bytes] = None
2638
3715
 
2639
3716
  # process the path parameters
3717
+ if scan_id is not None:
3718
+ _path_params['scan_id'] = scan_id
2640
3719
  # process the query parameters
3720
+ if has_detections is not None:
3721
+
3722
+ _query_params.append(('has_detections', has_detections))
3723
+
2641
3724
  # process the header parameters
2642
3725
  # process the form parameters
2643
3726
  # process the body parameter
2644
- if scan_job is not None:
2645
- _body_params = scan_job
3727
+ if scan_report_v3 is not None:
3728
+ _body_params = scan_report_v3
2646
3729
 
2647
3730
 
2648
3731
  # set the HTTP header `Accept`
@@ -2659,8 +3742,7 @@ class ModelSupplyChainApi:
2659
3742
  _default_content_type = (
2660
3743
  self.api_client.select_header_content_type(
2661
3744
  [
2662
- 'application/json; charset=utf-8',
2663
- 'application/octet-stream'
3745
+ 'application/json'
2664
3746
  ]
2665
3747
  )
2666
3748
  )
@@ -2674,7 +3756,7 @@ class ModelSupplyChainApi:
2674
3756
 
2675
3757
  return self.api_client.param_serialize(
2676
3758
  method='POST',
2677
- resource_path='/scans/v3/jobs',
3759
+ resource_path='/scan/v3/results/{scan_id}',
2678
3760
  path_params=_path_params,
2679
3761
  query_params=_query_params,
2680
3762
  header_params=_header_params,
@@ -2691,8 +3773,10 @@ class ModelSupplyChainApi:
2691
3773
 
2692
3774
 
2693
3775
  @validate_call
2694
- def modelscanner_api_v3_readiness_check(
3776
+ def report_scan_results(
2695
3777
  self,
3778
+ scan_id: StrictStr,
3779
+ scan_create_request: Annotated[ScanCreateRequest, Field(description="Request body for reporting a scan of one or more file results")],
2696
3780
  _request_timeout: Union[
2697
3781
  None,
2698
3782
  Annotated[StrictFloat, Field(gt=0)],
@@ -2706,9 +3790,13 @@ class ModelSupplyChainApi:
2706
3790
  _headers: Optional[Dict[StrictStr, Any]] = None,
2707
3791
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2708
3792
  ) -> None:
2709
- """Readiness check endpoint for Model Supply Chain Services
3793
+ """Engine Report Endpoint of Model Scan Results
2710
3794
 
2711
3795
 
3796
+ :param scan_id: (required)
3797
+ :type scan_id: str
3798
+ :param scan_create_request: Request body for reporting a scan of one or more file results (required)
3799
+ :type scan_create_request: ScanCreateRequest
2712
3800
  :param _request_timeout: timeout setting for this request. If one
2713
3801
  number provided, it will be total request
2714
3802
  timeout. It can also be a pair (tuple) of
@@ -2731,7 +3819,9 @@ class ModelSupplyChainApi:
2731
3819
  :return: Returns the result object.
2732
3820
  """ # noqa: E501
2733
3821
 
2734
- _param = self._modelscanner_api_v3_readiness_check_serialize(
3822
+ _param = self._report_scan_results_serialize(
3823
+ scan_id=scan_id,
3824
+ scan_create_request=scan_create_request,
2735
3825
  _request_auth=_request_auth,
2736
3826
  _content_type=_content_type,
2737
3827
  _headers=_headers,
@@ -2739,8 +3829,9 @@ class ModelSupplyChainApi:
2739
3829
  )
2740
3830
 
2741
3831
  _response_types_map: Dict[str, Optional[str]] = {
2742
- '200': None,
2743
- '503': None,
3832
+ '204': None,
3833
+ '400': None,
3834
+ '422': "ValidationErrorModel",
2744
3835
  }
2745
3836
  response_data = self.api_client.call_api(
2746
3837
  *_param,
@@ -2754,8 +3845,10 @@ class ModelSupplyChainApi:
2754
3845
 
2755
3846
 
2756
3847
  @validate_call
2757
- def modelscanner_api_v3_readiness_check_with_http_info(
3848
+ def report_scan_results_with_http_info(
2758
3849
  self,
3850
+ scan_id: StrictStr,
3851
+ scan_create_request: Annotated[ScanCreateRequest, Field(description="Request body for reporting a scan of one or more file results")],
2759
3852
  _request_timeout: Union[
2760
3853
  None,
2761
3854
  Annotated[StrictFloat, Field(gt=0)],
@@ -2769,9 +3862,13 @@ class ModelSupplyChainApi:
2769
3862
  _headers: Optional[Dict[StrictStr, Any]] = None,
2770
3863
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2771
3864
  ) -> ApiResponse[None]:
2772
- """Readiness check endpoint for Model Supply Chain Services
3865
+ """Engine Report Endpoint of Model Scan Results
2773
3866
 
2774
3867
 
3868
+ :param scan_id: (required)
3869
+ :type scan_id: str
3870
+ :param scan_create_request: Request body for reporting a scan of one or more file results (required)
3871
+ :type scan_create_request: ScanCreateRequest
2775
3872
  :param _request_timeout: timeout setting for this request. If one
2776
3873
  number provided, it will be total request
2777
3874
  timeout. It can also be a pair (tuple) of
@@ -2794,7 +3891,9 @@ class ModelSupplyChainApi:
2794
3891
  :return: Returns the result object.
2795
3892
  """ # noqa: E501
2796
3893
 
2797
- _param = self._modelscanner_api_v3_readiness_check_serialize(
3894
+ _param = self._report_scan_results_serialize(
3895
+ scan_id=scan_id,
3896
+ scan_create_request=scan_create_request,
2798
3897
  _request_auth=_request_auth,
2799
3898
  _content_type=_content_type,
2800
3899
  _headers=_headers,
@@ -2802,8 +3901,9 @@ class ModelSupplyChainApi:
2802
3901
  )
2803
3902
 
2804
3903
  _response_types_map: Dict[str, Optional[str]] = {
2805
- '200': None,
2806
- '503': None,
3904
+ '204': None,
3905
+ '400': None,
3906
+ '422': "ValidationErrorModel",
2807
3907
  }
2808
3908
  response_data = self.api_client.call_api(
2809
3909
  *_param,
@@ -2817,8 +3917,10 @@ class ModelSupplyChainApi:
2817
3917
 
2818
3918
 
2819
3919
  @validate_call
2820
- def modelscanner_api_v3_readiness_check_without_preload_content(
3920
+ def report_scan_results_without_preload_content(
2821
3921
  self,
3922
+ scan_id: StrictStr,
3923
+ scan_create_request: Annotated[ScanCreateRequest, Field(description="Request body for reporting a scan of one or more file results")],
2822
3924
  _request_timeout: Union[
2823
3925
  None,
2824
3926
  Annotated[StrictFloat, Field(gt=0)],
@@ -2832,9 +3934,13 @@ class ModelSupplyChainApi:
2832
3934
  _headers: Optional[Dict[StrictStr, Any]] = None,
2833
3935
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2834
3936
  ) -> RESTResponseType:
2835
- """Readiness check endpoint for Model Supply Chain Services
3937
+ """Engine Report Endpoint of Model Scan Results
2836
3938
 
2837
3939
 
3940
+ :param scan_id: (required)
3941
+ :type scan_id: str
3942
+ :param scan_create_request: Request body for reporting a scan of one or more file results (required)
3943
+ :type scan_create_request: ScanCreateRequest
2838
3944
  :param _request_timeout: timeout setting for this request. If one
2839
3945
  number provided, it will be total request
2840
3946
  timeout. It can also be a pair (tuple) of
@@ -2857,7 +3963,9 @@ class ModelSupplyChainApi:
2857
3963
  :return: Returns the result object.
2858
3964
  """ # noqa: E501
2859
3965
 
2860
- _param = self._modelscanner_api_v3_readiness_check_serialize(
3966
+ _param = self._report_scan_results_serialize(
3967
+ scan_id=scan_id,
3968
+ scan_create_request=scan_create_request,
2861
3969
  _request_auth=_request_auth,
2862
3970
  _content_type=_content_type,
2863
3971
  _headers=_headers,
@@ -2865,8 +3973,9 @@ class ModelSupplyChainApi:
2865
3973
  )
2866
3974
 
2867
3975
  _response_types_map: Dict[str, Optional[str]] = {
2868
- '200': None,
2869
- '503': None,
3976
+ '204': None,
3977
+ '400': None,
3978
+ '422': "ValidationErrorModel",
2870
3979
  }
2871
3980
  response_data = self.api_client.call_api(
2872
3981
  *_param,
@@ -2875,8 +3984,10 @@ class ModelSupplyChainApi:
2875
3984
  return response_data.response
2876
3985
 
2877
3986
 
2878
- def _modelscanner_api_v3_readiness_check_serialize(
3987
+ def _report_scan_results_serialize(
2879
3988
  self,
3989
+ scan_id,
3990
+ scan_create_request,
2880
3991
  _request_auth,
2881
3992
  _content_type,
2882
3993
  _headers,
@@ -2896,13 +4007,37 @@ class ModelSupplyChainApi:
2896
4007
  _body_params: Optional[bytes] = None
2897
4008
 
2898
4009
  # process the path parameters
4010
+ if scan_id is not None:
4011
+ _path_params['scan_id'] = scan_id
2899
4012
  # process the query parameters
2900
4013
  # process the header parameters
2901
4014
  # process the form parameters
2902
4015
  # process the body parameter
4016
+ if scan_create_request is not None:
4017
+ _body_params = scan_create_request
2903
4018
 
2904
4019
 
4020
+ # set the HTTP header `Accept`
4021
+ _header_params['Accept'] = self.api_client.select_header_accept(
4022
+ [
4023
+ 'application/json'
4024
+ ]
4025
+ )
2905
4026
 
4027
+ # set the HTTP header `Content-Type`
4028
+ if _content_type:
4029
+ _header_params['Content-Type'] = _content_type
4030
+ else:
4031
+ _default_content_type = (
4032
+ self.api_client.select_header_content_type(
4033
+ [
4034
+ 'application/json',
4035
+ 'application/octet-stream'
4036
+ ]
4037
+ )
4038
+ )
4039
+ if _default_content_type is not None:
4040
+ _header_params['Content-Type'] = _default_content_type
2906
4041
 
2907
4042
  # authentication setting
2908
4043
  _auth_settings: List[str] = [
@@ -2910,8 +4045,8 @@ class ModelSupplyChainApi:
2910
4045
  ]
2911
4046
 
2912
4047
  return self.api_client.param_serialize(
2913
- method='GET',
2914
- resource_path='/scans/v3/readiness',
4048
+ method='POST',
4049
+ resource_path='/scans/v3/reports/{scan_id}',
2915
4050
  path_params=_path_params,
2916
4051
  query_params=_query_params,
2917
4052
  header_params=_header_params,