cribl-control-plane 0.2.0b4__py3-none-any.whl → 0.2.0b5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cribl-control-plane might be problematic. Click here for more details.

@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "cribl-control-plane"
6
- __version__: str = "0.2.0b4"
7
- __openapi_doc_version__: str = "4.15.0-alpha.1760486888592-e1e43793"
6
+ __version__: str = "0.2.0b5"
7
+ __openapi_doc_version__: str = "4.15.0-alpha.1760569726872-c3466a59"
8
8
  __gen_version__: str = "2.723.11"
9
- __user_agent__: str = "speakeasy-sdk/python 0.2.0b4 2.723.11 4.15.0-alpha.1760486888592-e1e43793 cribl-control-plane"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.2.0b5 2.723.11 4.15.0-alpha.1760569726872-c3466a59 cribl-control-plane"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -3295,6 +3295,7 @@ if TYPE_CHECKING:
3295
3295
  UpdatePacksByIDResponse,
3296
3296
  UpdatePacksByIDResponseTypedDict,
3297
3297
  )
3298
+ from .updatepacksop import UpdatePacksRequest, UpdatePacksRequestTypedDict
3298
3299
  from .updatepipelinebyidop import (
3299
3300
  UpdatePipelineByIDRequest,
3300
3301
  UpdatePipelineByIDRequestTypedDict,
@@ -3307,6 +3308,7 @@ if TYPE_CHECKING:
3307
3308
  UpdateRoutesByIDResponse,
3308
3309
  UpdateRoutesByIDResponseTypedDict,
3309
3310
  )
3311
+ from .uploadpackresponse import UploadPackResponse, UploadPackResponseTypedDict
3310
3312
  from .useraccesscontrollist import (
3311
3313
  UserAccessControlList,
3312
3314
  UserAccessControlListTypedDict,
@@ -6248,6 +6250,8 @@ __all__ = [
6248
6250
  "UpdatePacksByIDRequestTypedDict",
6249
6251
  "UpdatePacksByIDResponse",
6250
6252
  "UpdatePacksByIDResponseTypedDict",
6253
+ "UpdatePacksRequest",
6254
+ "UpdatePacksRequestTypedDict",
6251
6255
  "UpdatePipelineByIDRequest",
6252
6256
  "UpdatePipelineByIDRequestTypedDict",
6253
6257
  "UpdatePipelineByIDResponse",
@@ -6256,6 +6260,8 @@ __all__ = [
6256
6260
  "UpdateRoutesByIDRequestTypedDict",
6257
6261
  "UpdateRoutesByIDResponse",
6258
6262
  "UpdateRoutesByIDResponseTypedDict",
6263
+ "UploadPackResponse",
6264
+ "UploadPackResponseTypedDict",
6259
6265
  "UserAccessControlList",
6260
6266
  "UserAccessControlListTypedDict",
6261
6267
  "UsersAndGroups",
@@ -9208,6 +9214,8 @@ _dynamic_imports: dict[str, str] = {
9208
9214
  "UpdatePacksByIDRequestTypedDict": ".updatepacksbyidop",
9209
9215
  "UpdatePacksByIDResponse": ".updatepacksbyidop",
9210
9216
  "UpdatePacksByIDResponseTypedDict": ".updatepacksbyidop",
9217
+ "UpdatePacksRequest": ".updatepacksop",
9218
+ "UpdatePacksRequestTypedDict": ".updatepacksop",
9211
9219
  "UpdatePipelineByIDRequest": ".updatepipelinebyidop",
9212
9220
  "UpdatePipelineByIDRequestTypedDict": ".updatepipelinebyidop",
9213
9221
  "UpdatePipelineByIDResponse": ".updatepipelinebyidop",
@@ -9216,6 +9224,8 @@ _dynamic_imports: dict[str, str] = {
9216
9224
  "UpdateRoutesByIDRequestTypedDict": ".updateroutesbyidop",
9217
9225
  "UpdateRoutesByIDResponse": ".updateroutesbyidop",
9218
9226
  "UpdateRoutesByIDResponseTypedDict": ".updateroutesbyidop",
9227
+ "UploadPackResponse": ".uploadpackresponse",
9228
+ "UploadPackResponseTypedDict": ".uploadpackresponse",
9219
9229
  "UserAccessControlList": ".useraccesscontrollist",
9220
9230
  "UserAccessControlListTypedDict": ".useraccesscontrollist",
9221
9231
  "WorkerTypes": ".workertypes",
@@ -8,14 +8,14 @@ from typing_extensions import Annotated, NotRequired, TypedDict
8
8
 
9
9
 
10
10
  class PackInfoTagsTypedDict(TypedDict):
11
- data_type: List[str]
11
+ data_type: NotRequired[List[str]]
12
12
  domain: NotRequired[List[str]]
13
13
  streamtags: NotRequired[List[str]]
14
14
  technology: NotRequired[List[str]]
15
15
 
16
16
 
17
17
  class PackInfoTags(BaseModel):
18
- data_type: Annotated[List[str], pydantic.Field(alias="dataType")]
18
+ data_type: Annotated[Optional[List[str]], pydantic.Field(alias="dataType")] = None
19
19
 
20
20
  domain: Optional[List[str]] = None
21
21
 
@@ -8,14 +8,14 @@ from typing_extensions import Annotated, NotRequired, TypedDict
8
8
 
9
9
 
10
10
  class PackInstallInfoTagsTypedDict(TypedDict):
11
- data_type: List[str]
11
+ data_type: NotRequired[List[str]]
12
12
  domain: NotRequired[List[str]]
13
13
  streamtags: NotRequired[List[str]]
14
14
  technology: NotRequired[List[str]]
15
15
 
16
16
 
17
17
  class PackInstallInfoTags(BaseModel):
18
- data_type: Annotated[List[str], pydantic.Field(alias="dataType")]
18
+ data_type: Annotated[Optional[List[str]], pydantic.Field(alias="dataType")] = None
19
19
 
20
20
  domain: Optional[List[str]] = None
21
21
 
@@ -0,0 +1,27 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane.types import BaseModel
5
+ from cribl_control_plane.utils import FieldMetadata, QueryParamMetadata
6
+ import io
7
+ from typing import IO, Union
8
+ from typing_extensions import Annotated, TypedDict
9
+
10
+
11
+ class UpdatePacksRequestTypedDict(TypedDict):
12
+ filename: str
13
+ r"""Filename of the Pack file to upload."""
14
+ request_body: Union[bytes, IO[bytes], io.BufferedReader]
15
+ r"""Binary file content"""
16
+
17
+
18
+ class UpdatePacksRequest(BaseModel):
19
+ filename: Annotated[
20
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
21
+ ]
22
+ r"""Filename of the Pack file to upload."""
23
+
24
+ request_body: Annotated[
25
+ Union[bytes, IO[bytes], io.BufferedReader], FieldMetadata(request=True)
26
+ ]
27
+ r"""Binary file content"""
@@ -0,0 +1,13 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane.types import BaseModel
5
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class UploadPackResponseTypedDict(TypedDict):
9
+ source: str
10
+
11
+
12
+ class UploadPackResponse(BaseModel):
13
+ source: str
@@ -6,7 +6,8 @@ from cribl_control_plane._hooks import HookContext
6
6
  from cribl_control_plane.types import BaseModel, OptionalNullable, UNSET
7
7
  from cribl_control_plane.utils import get_security_from_env
8
8
  from cribl_control_plane.utils.unmarshal_json_response import unmarshal_json_response
9
- from typing import Any, Mapping, Optional, Union, cast
9
+ import io
10
+ from typing import Any, IO, Mapping, Optional, Union, cast
10
11
 
11
12
 
12
13
  class Packs(BaseSDK):
@@ -23,9 +24,9 @@ class Packs(BaseSDK):
23
24
  timeout_ms: Optional[int] = None,
24
25
  http_headers: Optional[Mapping[str, str]] = None,
25
26
  ) -> models.CreatePacksResponse:
26
- r"""Create or install a Pack
27
+ r"""Install a Pack
27
28
 
28
- Create or install a Pack.
29
+ Install a Pack.<br><br>To install an uploaded Pack, provide the <code>source</code> value from the <code>PUT /packs</code> response as the <code>source</code> parameter in the request body.<br><br>To install a Pack by importing from a URL, provide the direct URL location of the <code>.crbl</code> file for the Pack as the <code>source</code> parameter in the request body.<br><br>To install a Pack by importing from a Git repository, provide <code>git+<repo-url></code> as the <code>source</code> parameter in the request body.<br><br>If you do not include the <code>source</code> parameter in the request body, an empty Pack is created.
29
30
 
30
31
  :param request: The request object to send.
31
32
  :param retries: Override the default retry configuration for this method
@@ -115,9 +116,9 @@ class Packs(BaseSDK):
115
116
  timeout_ms: Optional[int] = None,
116
117
  http_headers: Optional[Mapping[str, str]] = None,
117
118
  ) -> models.CreatePacksResponse:
118
- r"""Create or install a Pack
119
+ r"""Install a Pack
119
120
 
120
- Create or install a Pack.
121
+ Install a Pack.<br><br>To install an uploaded Pack, provide the <code>source</code> value from the <code>PUT /packs</code> response as the <code>source</code> parameter in the request body.<br><br>To install a Pack by importing from a URL, provide the direct URL location of the <code>.crbl</code> file for the Pack as the <code>source</code> parameter in the request body.<br><br>To install a Pack by importing from a Git repository, provide <code>git+<repo-url></code> as the <code>source</code> parameter in the request body.<br><br>If you do not include the <code>source</code> parameter in the request body, an empty Pack is created.
121
122
 
122
123
  :param request: The request object to send.
123
124
  :param retries: Override the default retry configuration for this method
@@ -370,6 +371,200 @@ class Packs(BaseSDK):
370
371
 
371
372
  raise errors.APIError("Unexpected response received", http_res)
372
373
 
374
+ def upload(
375
+ self,
376
+ *,
377
+ filename: str,
378
+ request_body: Union[bytes, IO[bytes], io.BufferedReader],
379
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
380
+ server_url: Optional[str] = None,
381
+ timeout_ms: Optional[int] = None,
382
+ http_headers: Optional[Mapping[str, str]] = None,
383
+ ) -> models.UploadPackResponse:
384
+ r"""Upload a Pack file
385
+
386
+ Upload a Pack file. Returns the <code>source</code> ID needed to install the Pack with <code>POST /packs</source>, which you must call separately.
387
+
388
+ :param filename: Filename of the Pack file to upload.
389
+ :param request_body: Binary file content
390
+ :param retries: Override the default retry configuration for this method
391
+ :param server_url: Override the default server URL for this method
392
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
393
+ :param http_headers: Additional headers to set or replace on requests.
394
+ """
395
+ base_url = None
396
+ url_variables = None
397
+ if timeout_ms is None:
398
+ timeout_ms = self.sdk_configuration.timeout_ms
399
+
400
+ if server_url is not None:
401
+ base_url = server_url
402
+ else:
403
+ base_url = self._get_url(base_url, url_variables)
404
+
405
+ request = models.UpdatePacksRequest(
406
+ filename=filename,
407
+ request_body=request_body,
408
+ )
409
+
410
+ req = self._build_request(
411
+ method="PUT",
412
+ path="/packs",
413
+ base_url=base_url,
414
+ url_variables=url_variables,
415
+ request=request,
416
+ request_body_required=True,
417
+ request_has_path_params=False,
418
+ request_has_query_params=True,
419
+ user_agent_header="user-agent",
420
+ accept_header_value="application/json",
421
+ http_headers=http_headers,
422
+ security=self.sdk_configuration.security,
423
+ get_serialized_body=lambda: utils.serialize_request_body(
424
+ request.request_body,
425
+ False,
426
+ False,
427
+ "raw",
428
+ Union[bytes, IO[bytes], io.BufferedReader],
429
+ ),
430
+ timeout_ms=timeout_ms,
431
+ )
432
+
433
+ if retries == UNSET:
434
+ if self.sdk_configuration.retry_config is not UNSET:
435
+ retries = self.sdk_configuration.retry_config
436
+
437
+ retry_config = None
438
+ if isinstance(retries, utils.RetryConfig):
439
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
440
+
441
+ http_res = self.do_request(
442
+ hook_ctx=HookContext(
443
+ config=self.sdk_configuration,
444
+ base_url=base_url or "",
445
+ operation_id="updatePacks",
446
+ oauth2_scopes=[],
447
+ security_source=get_security_from_env(
448
+ self.sdk_configuration.security, models.Security
449
+ ),
450
+ ),
451
+ request=req,
452
+ error_status_codes=["401", "4XX", "500", "5XX"],
453
+ retry_config=retry_config,
454
+ )
455
+
456
+ response_data: Any = None
457
+ if utils.match_response(http_res, "200", "application/json"):
458
+ return unmarshal_json_response(models.UploadPackResponse, http_res)
459
+ if utils.match_response(http_res, "500", "application/json"):
460
+ response_data = unmarshal_json_response(errors.ErrorData, http_res)
461
+ raise errors.Error(response_data, http_res)
462
+ if utils.match_response(http_res, ["401", "4XX"], "*"):
463
+ http_res_text = utils.stream_to_text(http_res)
464
+ raise errors.APIError("API error occurred", http_res, http_res_text)
465
+ if utils.match_response(http_res, "5XX", "*"):
466
+ http_res_text = utils.stream_to_text(http_res)
467
+ raise errors.APIError("API error occurred", http_res, http_res_text)
468
+
469
+ raise errors.APIError("Unexpected response received", http_res)
470
+
471
+ async def upload_async(
472
+ self,
473
+ *,
474
+ filename: str,
475
+ request_body: Union[bytes, IO[bytes], io.BufferedReader],
476
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
477
+ server_url: Optional[str] = None,
478
+ timeout_ms: Optional[int] = None,
479
+ http_headers: Optional[Mapping[str, str]] = None,
480
+ ) -> models.UploadPackResponse:
481
+ r"""Upload a Pack file
482
+
483
+ Upload a Pack file. Returns the <code>source</code> ID needed to install the Pack with <code>POST /packs</source>, which you must call separately.
484
+
485
+ :param filename: Filename of the Pack file to upload.
486
+ :param request_body: Binary file content
487
+ :param retries: Override the default retry configuration for this method
488
+ :param server_url: Override the default server URL for this method
489
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
490
+ :param http_headers: Additional headers to set or replace on requests.
491
+ """
492
+ base_url = None
493
+ url_variables = None
494
+ if timeout_ms is None:
495
+ timeout_ms = self.sdk_configuration.timeout_ms
496
+
497
+ if server_url is not None:
498
+ base_url = server_url
499
+ else:
500
+ base_url = self._get_url(base_url, url_variables)
501
+
502
+ request = models.UpdatePacksRequest(
503
+ filename=filename,
504
+ request_body=request_body,
505
+ )
506
+
507
+ req = self._build_request_async(
508
+ method="PUT",
509
+ path="/packs",
510
+ base_url=base_url,
511
+ url_variables=url_variables,
512
+ request=request,
513
+ request_body_required=True,
514
+ request_has_path_params=False,
515
+ request_has_query_params=True,
516
+ user_agent_header="user-agent",
517
+ accept_header_value="application/json",
518
+ http_headers=http_headers,
519
+ security=self.sdk_configuration.security,
520
+ get_serialized_body=lambda: utils.serialize_request_body(
521
+ request.request_body,
522
+ False,
523
+ False,
524
+ "raw",
525
+ Union[bytes, IO[bytes], io.BufferedReader],
526
+ ),
527
+ timeout_ms=timeout_ms,
528
+ )
529
+
530
+ if retries == UNSET:
531
+ if self.sdk_configuration.retry_config is not UNSET:
532
+ retries = self.sdk_configuration.retry_config
533
+
534
+ retry_config = None
535
+ if isinstance(retries, utils.RetryConfig):
536
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
537
+
538
+ http_res = await self.do_request_async(
539
+ hook_ctx=HookContext(
540
+ config=self.sdk_configuration,
541
+ base_url=base_url or "",
542
+ operation_id="updatePacks",
543
+ oauth2_scopes=[],
544
+ security_source=get_security_from_env(
545
+ self.sdk_configuration.security, models.Security
546
+ ),
547
+ ),
548
+ request=req,
549
+ error_status_codes=["401", "4XX", "500", "5XX"],
550
+ retry_config=retry_config,
551
+ )
552
+
553
+ response_data: Any = None
554
+ if utils.match_response(http_res, "200", "application/json"):
555
+ return unmarshal_json_response(models.UploadPackResponse, http_res)
556
+ if utils.match_response(http_res, "500", "application/json"):
557
+ response_data = unmarshal_json_response(errors.ErrorData, http_res)
558
+ raise errors.Error(response_data, http_res)
559
+ if utils.match_response(http_res, ["401", "4XX"], "*"):
560
+ http_res_text = await utils.stream_to_text_async(http_res)
561
+ raise errors.APIError("API error occurred", http_res, http_res_text)
562
+ if utils.match_response(http_res, "5XX", "*"):
563
+ http_res_text = await utils.stream_to_text_async(http_res)
564
+ raise errors.APIError("API error occurred", http_res, http_res_text)
565
+
566
+ raise errors.APIError("Unexpected response received", http_res)
567
+
373
568
  def delete(
374
569
  self,
375
570
  *,
@@ -733,7 +928,7 @@ class Packs(BaseSDK):
733
928
  ) -> models.UpdatePacksByIDResponse:
734
929
  r"""Upgrade a Pack
735
930
 
736
- Upgrade the specified Pack.</br></br>If the Pack includes any user–modified versions of default Cribl Knowledge resources such as lookups, copy the modified files locally for safekeeping before upgrading the Pack. Copy the modified files back to the upgraded Pack after you install it with <code>POST /packs</code> to overwrite the default versions in the Pack.</br></br>After you upgrade the Pack, update any Routes, Pipelines, Sources, and Destinations that use the previous Pack version so that they reference the upgraded Pack.
931
+ Upgrade the specified Pack.</br></br>If the Pack includes any user–modified versions of default Cribl Knowledge resources such as lookups, copy the modified files locally for safekeeping before upgrading the Pack.Copy the modified files back to the upgraded Pack after you install it with <code>POST /packs</code> to overwrite the default versions in the Pack.</br></br>After you upgrade the Pack, update any Routes, Pipelines, Sources, and Destinations that use the previous Pack version so that they reference the upgraded Pack.
737
932
 
738
933
  :param id: The <code>id</code> of the Pack to upgrade.
739
934
  :param source:
@@ -841,7 +1036,7 @@ class Packs(BaseSDK):
841
1036
  ) -> models.UpdatePacksByIDResponse:
842
1037
  r"""Upgrade a Pack
843
1038
 
844
- Upgrade the specified Pack.</br></br>If the Pack includes any user–modified versions of default Cribl Knowledge resources such as lookups, copy the modified files locally for safekeeping before upgrading the Pack. Copy the modified files back to the upgraded Pack after you install it with <code>POST /packs</code> to overwrite the default versions in the Pack.</br></br>After you upgrade the Pack, update any Routes, Pipelines, Sources, and Destinations that use the previous Pack version so that they reference the upgraded Pack.
1039
+ Upgrade the specified Pack.</br></br>If the Pack includes any user–modified versions of default Cribl Knowledge resources such as lookups, copy the modified files locally for safekeeping before upgrading the Pack.Copy the modified files back to the upgraded Pack after you install it with <code>POST /packs</code> to overwrite the default versions in the Pack.</br></br>After you upgrade the Pack, update any Routes, Pipelines, Sources, and Destinations that use the previous Pack version so that they reference the upgraded Pack.
845
1040
 
846
1041
  :param id: The <code>id</code> of the Pack to upgrade.
847
1042
  :param source:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cribl-control-plane
3
- Version: 0.2.0b4
3
+ Version: 0.2.0b5
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -32,6 +32,7 @@ Cribl API Reference: This API Reference lists available REST endpoints, along wi
32
32
  * [SDK Example Usage](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#sdk-example-usage)
33
33
  * [Authentication](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#authentication)
34
34
  * [Available Resources and Operations](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#available-resources-and-operations)
35
+ * [File uploads](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#file-uploads)
35
36
  * [Retries](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#retries)
36
37
  * [Error Handling](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#error-handling)
37
38
  * [Custom HTTP Client](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/#custom-http-client)
@@ -372,8 +373,9 @@ with CriblControlPlane(
372
373
 
373
374
  ### [packs](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md)
374
375
 
375
- * [install](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#install) - Create or install a Pack
376
+ * [install](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#install) - Install a Pack
376
377
  * [list](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#list) - List all Packs
378
+ * [upload](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#upload) - Upload a Pack file
377
379
  * [delete](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#delete) - Uninstall a Pack
378
380
  * [get](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#get) - Get a Pack
379
381
  * [update](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/docs/sdks/packs/README.md#update) - Upgrade a Pack
@@ -437,6 +439,36 @@ with CriblControlPlane(
437
439
  </details>
438
440
  <!-- End Available Resources and Operations [operations] -->
439
441
 
442
+ <!-- Start File uploads [file-upload] -->
443
+ ## File uploads
444
+
445
+ Certain SDK methods accept file objects as part of a request body or multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request.
446
+
447
+ > [!TIP]
448
+ >
449
+ > For endpoints that handle file uploads bytes arrays can also be used. However, using streams is recommended for large files.
450
+ >
451
+
452
+ ```python
453
+ from cribl_control_plane import CriblControlPlane, models
454
+ import os
455
+
456
+
457
+ with CriblControlPlane(
458
+ server_url="https://api.example.com",
459
+ security=models.Security(
460
+ bearer_auth=os.getenv("CRIBLCONTROLPLANE_BEARER_AUTH", ""),
461
+ ),
462
+ ) as ccp_client:
463
+
464
+ res = ccp_client.packs.upload(filename="example.file", request_body=open("example.file", "rb"))
465
+
466
+ # Handle response
467
+ print(res)
468
+
469
+ ```
470
+ <!-- End File uploads [file-upload] -->
471
+
440
472
  <!-- Start Retries [retries] -->
441
473
  ## Retries
442
474
 
@@ -650,7 +682,7 @@ with CriblControlPlane(
650
682
 
651
683
 
652
684
  **Inherit from [`CriblControlPlaneError`](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/./src/cribl_control_plane/errors/criblcontrolplaneerror.py)**:
653
- * [`HealthStatusError`](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/./src/cribl_control_plane/errors/healthstatuserror.py): Healthy status. Status code `420`. Applicable to 1 of 62 methods.*
685
+ * [`HealthStatusError`](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/./src/cribl_control_plane/errors/healthstatuserror.py): Healthy status. Status code `420`. Applicable to 1 of 63 methods.*
654
686
  * [`ResponseValidationError`](https://github.com/criblio/cribl_control_plane_sdk_python/blob/master/./src/cribl_control_plane/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
655
687
 
656
688
  </details>
@@ -4,7 +4,7 @@ cribl_control_plane/_hooks/clientcredentials.py,sha256=CeI19FzRb2V6kiNPgSFGn0CgI
4
4
  cribl_control_plane/_hooks/registration.py,sha256=1QZB41w6If7I9dXiOSQx6dhSc6BPWrnI5Q5bMOr4iVA,624
5
5
  cribl_control_plane/_hooks/sdkhooks.py,sha256=ggXjME1_Rdv8CVCg1XHqB83eYtbxzKyhXyfQ36Yc1gA,2816
6
6
  cribl_control_plane/_hooks/types.py,sha256=Tw_C4zTZm01rW_89VDEUpvQ8KQr1WxN0Gu_-s_fYSPc,2998
7
- cribl_control_plane/_version.py,sha256=eZJsg15NFarEnu6bq1Ozf4GmUXXiQL9mQerx4rhdyao,546
7
+ cribl_control_plane/_version.py,sha256=ehdyKdN_SY_4ptBipHbir-k6yM1URNmAbfKqxSdmaKw,546
8
8
  cribl_control_plane/acl.py,sha256=8lvYOKAli4PzsQhOVaCU6YCwblPMh9jQo04L0r4HJuQ,9025
9
9
  cribl_control_plane/auth_sdk.py,sha256=3sjf1VoyWwfhSyuMDQLixgWISSf03BOZwmkiT8g5Ruw,626
10
10
  cribl_control_plane/basesdk.py,sha256=y4yIXSNVXLMd0sLS2htBFdTCI3gkPQbIWd-C671kg1I,12249
@@ -27,7 +27,7 @@ cribl_control_plane/health.py,sha256=N8pX8RHkJVtLFd4nZ8ypJPrzT_JezciEVry9s9qvCRc
27
27
  cribl_control_plane/hectokens.py,sha256=0EGgGGrM83m1YmTZwkN5S4xFkHQGnw1IZe3y6uMwmLw,19151
28
28
  cribl_control_plane/httpclient.py,sha256=dqTPONDBpRn4ktXfcetQiRXnG93f0pJkFhqsYFhLUac,3945
29
29
  cribl_control_plane/lakedatasets.py,sha256=VaacfDeQDMJKibABnkZibVMfOYxeh9ITcHKjM9QDqw8,46676
30
- cribl_control_plane/models/__init__.py,sha256=3aKMCUflhjChJGZWLCO8EItaGvJ6rNfxSDeVas5upYw,391155
30
+ cribl_control_plane/models/__init__.py,sha256=xztoMdonWnLoDZM0HsRCpHLUZZxdQ37cNOhOYtkGqFQ,391644
31
31
  cribl_control_plane/models/addhectokenrequest.py,sha256=mzQLKrMWlwxNheqEs5SM_yrT-gyenfCWgHKhmb5oXFQ,800
32
32
  cribl_control_plane/models/authtoken.py,sha256=uW0aIs8j14CQzFM2ueY5GIWFulna91cigBWQ3oPlDgY,295
33
33
  cribl_control_plane/models/branchinfo.py,sha256=jCX31O5TMG9jTjqigPvvUiBwpgPpVxHtSuhYrNykXiI,291
@@ -259,8 +259,8 @@ cribl_control_plane/models/outputtestresponse.py,sha256=cKeXPvSpCzU6cWpXvHoujp-p
259
259
  cribl_control_plane/models/outputwavefront.py,sha256=rCVu_8EAuGRLyMKQpc9HvUA45cWflG3mHlyJnmM8yNM,18479
260
260
  cribl_control_plane/models/outputwebhook.py,sha256=qtBTIm9fravXicq79NJkhsiB-B3eLQrij5KD3-dnFzc,34566
261
261
  cribl_control_plane/models/outputxsiam.py,sha256=qDcLcnuLqPxaxc-ijTuoZiVKnY1jN2vuGSnAwwMbR2M,20601
262
- cribl_control_plane/models/packinfo.py,sha256=C6RVH3rzIuTp7gO368U2yT5Ok6_YBaMcyAjl6aIKHT8,1971
263
- cribl_control_plane/models/packinstallinfo.py,sha256=Lxc9MFcA5d6ziJtwvrWg7MUGu8RgvNqRyssJFwBU4_o,2092
262
+ cribl_control_plane/models/packinfo.py,sha256=4erAi8M_omyQ87v-5xXHAAn7VS3yXmKeMDPnSyvqH5c,2001
263
+ cribl_control_plane/models/packinstallinfo.py,sha256=vXLqvzbSixAilJL-qMxZm9mWX4xiBl5e3SuRS1i0Z2c,2122
264
264
  cribl_control_plane/models/packrequestbody_union.py,sha256=EGDpybuIL6SAXT_mHnaFCm6PtEH3dTdTu999-7rmgKA,3897
265
265
  cribl_control_plane/models/packupgraderequest.py,sha256=T-d4cha7jj-ez0sJcqRPA5xGS2C9yuZ0KfGtPRulqj0,671
266
266
  cribl_control_plane/models/pipeline.py,sha256=AaoC5euxac-fwul-LM1mNf03hCzrXmHQGZLMrUWuS4g,2130
@@ -286,12 +286,14 @@ cribl_control_plane/models/updateinputbyidop.py,sha256=fWbSRQQ1WdHI6_e-fV32T99vD
286
286
  cribl_control_plane/models/updateinputhectokenbyidandtokenop.py,sha256=di6CX6521rBdx1h5pcUrtC-glnRFeDNehcx2U3px5_U,1893
287
287
  cribl_control_plane/models/updateoutputbyidop.py,sha256=44KI9zpS8trSu1FohNHD2egDVUxAlL-A8zazS7YOsrU,1357
288
288
  cribl_control_plane/models/updatepacksbyidop.py,sha256=QYjDGco3xBD0P7MXGzj0NE2qjQosmOWKQ7S0PoedugI,1510
289
+ cribl_control_plane/models/updatepacksop.py,sha256=a11FUaKKT2pa8vN5sNEYCm7bat0kUEP6Sk_1dv4lNxo,870
289
290
  cribl_control_plane/models/updatepipelinebyidop.py,sha256=Cn_FBckmK1NyUkfOpWmc84K94W0nYCKuzppWwk0g4yY,1448
290
291
  cribl_control_plane/models/updateroutesbyidop.py,sha256=KEoryZP8OqtJCXp0f5P4c2KKs1k1jY9-LsxGSBLDFMA,1562
292
+ cribl_control_plane/models/uploadpackresponse.py,sha256=-B2ye6T8fc4WKBxVnufwryRsVAHhqentutQVuN7PA3s,315
291
293
  cribl_control_plane/models/useraccesscontrollist.py,sha256=UNM3mdqFByd9GAovAi26z9y-5H15hrKDzw0M-f-Pn2o,483
292
294
  cribl_control_plane/models/workertypes.py,sha256=1AaTkG_g67Vtoh0vYYrYVgRo41PvcK3cRm_G_r-JSgA,286
293
295
  cribl_control_plane/nodes.py,sha256=I4AnHbDlX3zNbvDfwgIZ6sv1yQTlkAGaQRoSzwkl0KM,17531
294
- cribl_control_plane/packs.py,sha256=Ba7SLmjZuYmdC__uhYj5BMt1JVKNMsd3y3Iv7L4UVIo,38513
296
+ cribl_control_plane/packs.py,sha256=1MpYnN5iUEXxHW6lIgnDN71Trc42xY_cxVS5_-TEwSQ,47681
295
297
  cribl_control_plane/pipelines.py,sha256=jeU-R5NDOsLXrV-5t7Cz-RPidsQ4KwNN4-_oW9iNK0s,36946
296
298
  cribl_control_plane/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
297
299
  cribl_control_plane/routes_sdk.py,sha256=aqJkB-EbLzA2NSFtu9N7ERta5BvIbpDRg7OZcO_ndkA,33197
@@ -324,6 +326,6 @@ cribl_control_plane/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8N
324
326
  cribl_control_plane/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
325
327
  cribl_control_plane/versions.py,sha256=4xdTYbM84Xyjr5qkixqNpgn2q6V8aXVYXkEPDU2Ele0,1156
326
328
  cribl_control_plane/versions_configs.py,sha256=5CKcfN4SzuyFgggrx6O8H_h3GhNyKSbfdVhSkVGZKi4,7284
327
- cribl_control_plane-0.2.0b4.dist-info/METADATA,sha256=3epXN3DoGLMb_1P1K7orTz0aLDrhODZinGZ8sWoAqrg,38655
328
- cribl_control_plane-0.2.0b4.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
329
- cribl_control_plane-0.2.0b4.dist-info/RECORD,,
329
+ cribl_control_plane-0.2.0b5.dist-info/METADATA,sha256=ivuSm6Lg4b9nZ1KRdiOlSkimjuvW2nbETVjT6JGld6c,39955
330
+ cribl_control_plane-0.2.0b5.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
331
+ cribl_control_plane-0.2.0b5.dist-info/RECORD,,