cribl-control-plane 0.0.44a1__py3-none-any.whl → 0.0.45__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.

Files changed (43) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +1 -1
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +5 -3
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +11 -1
  6. cribl_control_plane/commits.py +5 -3
  7. cribl_control_plane/destinations.py +6 -4
  8. cribl_control_plane/errors/__init__.py +15 -3
  9. cribl_control_plane/groups_configs.py +8 -3
  10. cribl_control_plane/groups_sdk.py +6 -4
  11. cribl_control_plane/models/__init__.py +14 -1
  12. cribl_control_plane/models/hbcriblinfo.py +5 -0
  13. cribl_control_plane/models/outputazuredataexplorer.py +1 -1
  14. cribl_control_plane/models/outputazurelogs.py +1 -1
  15. cribl_control_plane/models/outputclickhouse.py +1 -1
  16. cribl_control_plane/models/outputcriblhttp.py +2 -2
  17. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +1 -1
  18. cribl_control_plane/models/outputdynatracehttp.py +1 -1
  19. cribl_control_plane/models/outputdynatraceotlp.py +1 -1
  20. cribl_control_plane/models/outputelastic.py +1 -1
  21. cribl_control_plane/models/outputelasticcloud.py +1 -1
  22. cribl_control_plane/models/outputgrafanacloud.py +2 -2
  23. cribl_control_plane/models/outputhoneycomb.py +1 -1
  24. cribl_control_plane/models/outputhumiohec.py +1 -1
  25. cribl_control_plane/models/outputinfluxdb.py +1 -1
  26. cribl_control_plane/models/outputnewrelicevents.py +1 -1
  27. cribl_control_plane/models/outputopentelemetry.py +1 -1
  28. cribl_control_plane/models/outputprometheus.py +1 -1
  29. cribl_control_plane/models/outputsentineloneaisiem.py +1 -1
  30. cribl_control_plane/models/outputservicenow.py +1 -1
  31. cribl_control_plane/models/outputsignalfx.py +1 -1
  32. cribl_control_plane/models/outputsplunkhec.py +1 -1
  33. cribl_control_plane/models/outputwavefront.py +1 -1
  34. cribl_control_plane/models/outputxsiam.py +1 -1
  35. cribl_control_plane/nodes.py +5 -3
  36. cribl_control_plane/sdk.py +15 -2
  37. cribl_control_plane/sources.py +5 -3
  38. cribl_control_plane/utils/__init__.py +15 -3
  39. cribl_control_plane/utils/eventstreaming.py +10 -0
  40. cribl_control_plane/versions.py +11 -6
  41. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.45.dist-info}/METADATA +1 -1
  42. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.45.dist-info}/RECORD +43 -43
  43. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.45.dist-info}/WHEEL +0 -0
@@ -188,7 +188,7 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
188
188
 
189
189
  response_data = response.json()
190
190
 
191
- if response_data.get("token_type") != "Bearer":
191
+ if response_data.get("token_type", "").lower() != "bearer":
192
192
  raise Exception("Unexpected token type from token endpoint")
193
193
 
194
194
  expires_at = None
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "cribl-control-plane"
6
- __version__: str = "0.0.44a1"
7
- __openapi_doc_version__: str = "4.14.0-alpha.1757353540432-d6130d30"
8
- __gen_version__: str = "2.686.7"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.44a1 2.686.7 4.14.0-alpha.1757353540432-d6130d30 cribl-control-plane"
6
+ __version__: str = "0.0.45"
7
+ __openapi_doc_version__: str = "4.14.0-alpha.1757673007102-5d0e07e7"
8
+ __gen_version__: str = "2.696.0"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.45 2.696.0 4.14.0-alpha.1757673007102-5d0e07e7 cribl-control-plane"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -14,13 +14,15 @@ from typing import Any, Mapping, Optional
14
14
  class ACL(BaseSDK):
15
15
  teams: Teams
16
16
 
17
- def __init__(self, sdk_config: SDKConfiguration) -> None:
18
- BaseSDK.__init__(self, sdk_config)
17
+ def __init__(
18
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
19
+ ) -> None:
20
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
19
21
  self.sdk_configuration = sdk_config
20
22
  self._init_sdks()
21
23
 
22
24
  def _init_sdks(self):
23
- self.teams = Teams(self.sdk_configuration)
25
+ self.teams = Teams(self.sdk_configuration, parent_ref=self.parent_ref)
24
26
 
25
27
  def get(
26
28
  self,
@@ -3,15 +3,18 @@
3
3
  from .basesdk import BaseSDK
4
4
  from .sdkconfiguration import SDKConfiguration
5
5
  from cribl_control_plane.tokens import Tokens
6
+ from typing import Optional
6
7
 
7
8
 
8
9
  class AuthSDK(BaseSDK):
9
10
  tokens: Tokens
10
11
 
11
- def __init__(self, sdk_config: SDKConfiguration) -> None:
12
- BaseSDK.__init__(self, sdk_config)
12
+ def __init__(
13
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
14
+ ) -> None:
15
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
13
16
  self.sdk_configuration = sdk_config
14
17
  self._init_sdks()
15
18
 
16
19
  def _init_sdks(self):
17
- self.tokens = Tokens(self.sdk_configuration)
20
+ self.tokens = Tokens(self.sdk_configuration, parent_ref=self.parent_ref)
@@ -19,9 +19,19 @@ from urllib.parse import parse_qs, urlparse
19
19
 
20
20
  class BaseSDK:
21
21
  sdk_configuration: SDKConfiguration
22
+ parent_ref: Optional[object] = None
23
+ """
24
+ Reference to the root SDK instance, if any. This will prevent it from
25
+ being garbage collected while there are active streams.
26
+ """
22
27
 
23
- def __init__(self, sdk_config: SDKConfiguration) -> None:
28
+ def __init__(
29
+ self,
30
+ sdk_config: SDKConfiguration,
31
+ parent_ref: Optional[object] = None,
32
+ ) -> None:
24
33
  self.sdk_configuration = sdk_config
34
+ self.parent_ref = parent_ref
25
35
 
26
36
  def _get_url(self, base_url, url_variables):
27
37
  sdk_url, sdk_variables = self.sdk_configuration.get_server_details()
@@ -14,13 +14,15 @@ from typing import Any, List, Mapping, Optional
14
14
  class Commits(BaseSDK):
15
15
  files: CommitsFiles
16
16
 
17
- def __init__(self, sdk_config: SDKConfiguration) -> None:
18
- BaseSDK.__init__(self, sdk_config)
17
+ def __init__(
18
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
19
+ ) -> None:
20
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
19
21
  self.sdk_configuration = sdk_config
20
22
  self._init_sdks()
21
23
 
22
24
  def _init_sdks(self):
23
- self.files = CommitsFiles(self.sdk_configuration)
25
+ self.files = CommitsFiles(self.sdk_configuration, parent_ref=self.parent_ref)
24
26
 
25
27
  def create(
26
28
  self,
@@ -18,14 +18,16 @@ class Destinations(BaseSDK):
18
18
  pq: DestinationsPq
19
19
  samples: Samples
20
20
 
21
- def __init__(self, sdk_config: SDKConfiguration) -> None:
22
- BaseSDK.__init__(self, sdk_config)
21
+ def __init__(
22
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
23
+ ) -> None:
24
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
23
25
  self.sdk_configuration = sdk_config
24
26
  self._init_sdks()
25
27
 
26
28
  def _init_sdks(self):
27
- self.pq = DestinationsPq(self.sdk_configuration)
28
- self.samples = Samples(self.sdk_configuration)
29
+ self.pq = DestinationsPq(self.sdk_configuration, parent_ref=self.parent_ref)
30
+ self.samples = Samples(self.sdk_configuration, parent_ref=self.parent_ref)
29
31
 
30
32
  def list(
31
33
  self,
@@ -1,12 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
+ from .criblcontrolplaneerror import CriblControlPlaneError
3
4
  from typing import TYPE_CHECKING
4
5
  from importlib import import_module
5
6
  import builtins
7
+ import sys
6
8
 
7
9
  if TYPE_CHECKING:
8
10
  from .apierror import APIError
9
- from .criblcontrolplaneerror import CriblControlPlaneError
10
11
  from .error import Error, ErrorData
11
12
  from .healthstatus_error import HealthStatusError, HealthStatusErrorData
12
13
  from .no_response_error import NoResponseError
@@ -25,7 +26,6 @@ __all__ = [
25
26
 
26
27
  _dynamic_imports: dict[str, str] = {
27
28
  "APIError": ".apierror",
28
- "CriblControlPlaneError": ".criblcontrolplaneerror",
29
29
  "Error": ".error",
30
30
  "ErrorData": ".error",
31
31
  "HealthStatusError": ".healthstatus_error",
@@ -35,6 +35,18 @@ _dynamic_imports: dict[str, str] = {
35
35
  }
36
36
 
37
37
 
38
+ def dynamic_import(modname, retries=3):
39
+ for attempt in range(retries):
40
+ try:
41
+ return import_module(modname, __package__)
42
+ except KeyError:
43
+ # Clear any half-initialized module and retry
44
+ sys.modules.pop(modname, None)
45
+ if attempt == retries - 1:
46
+ break
47
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
48
+
49
+
38
50
  def __getattr__(attr_name: str) -> object:
39
51
  module_name = _dynamic_imports.get(attr_name)
40
52
  if module_name is None:
@@ -43,7 +55,7 @@ def __getattr__(attr_name: str) -> object:
43
55
  )
44
56
 
45
57
  try:
46
- module = import_module(module_name, __package__)
58
+ module = dynamic_import(module_name)
47
59
  result = getattr(module, attr_name)
48
60
  return result
49
61
  except ImportError as e:
@@ -3,15 +3,20 @@
3
3
  from .basesdk import BaseSDK
4
4
  from .sdkconfiguration import SDKConfiguration
5
5
  from cribl_control_plane.configs_versions import ConfigsVersions
6
+ from typing import Optional
6
7
 
7
8
 
8
9
  class GroupsConfigs(BaseSDK):
9
10
  versions: ConfigsVersions
10
11
 
11
- def __init__(self, sdk_config: SDKConfiguration) -> None:
12
- BaseSDK.__init__(self, sdk_config)
12
+ def __init__(
13
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
14
+ ) -> None:
15
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
13
16
  self.sdk_configuration = sdk_config
14
17
  self._init_sdks()
15
18
 
16
19
  def _init_sdks(self):
17
- self.versions = ConfigsVersions(self.sdk_configuration)
20
+ self.versions = ConfigsVersions(
21
+ self.sdk_configuration, parent_ref=self.parent_ref
22
+ )
@@ -18,14 +18,16 @@ class GroupsSDK(BaseSDK):
18
18
  configs: GroupsConfigs
19
19
  acl: ACL
20
20
 
21
- def __init__(self, sdk_config: SDKConfiguration) -> None:
22
- BaseSDK.__init__(self, sdk_config)
21
+ def __init__(
22
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
23
+ ) -> None:
24
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
23
25
  self.sdk_configuration = sdk_config
24
26
  self._init_sdks()
25
27
 
26
28
  def _init_sdks(self):
27
- self.configs = GroupsConfigs(self.sdk_configuration)
28
- self.acl = ACL(self.sdk_configuration)
29
+ self.configs = GroupsConfigs(self.sdk_configuration, parent_ref=self.parent_ref)
30
+ self.acl = ACL(self.sdk_configuration, parent_ref=self.parent_ref)
29
31
 
30
32
  def list(
31
33
  self,
@@ -3,6 +3,7 @@
3
3
  from typing import TYPE_CHECKING
4
4
  from importlib import import_module
5
5
  import builtins
6
+ import sys
6
7
 
7
8
  if TYPE_CHECKING:
8
9
  from .addhectokenrequest import (
@@ -9126,6 +9127,18 @@ _dynamic_imports: dict[str, str] = {
9126
9127
  }
9127
9128
 
9128
9129
 
9130
+ def dynamic_import(modname, retries=3):
9131
+ for attempt in range(retries):
9132
+ try:
9133
+ return import_module(modname, __package__)
9134
+ except KeyError:
9135
+ # Clear any half-initialized module and retry
9136
+ sys.modules.pop(modname, None)
9137
+ if attempt == retries - 1:
9138
+ break
9139
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
9140
+
9141
+
9129
9142
  def __getattr__(attr_name: str) -> object:
9130
9143
  module_name = _dynamic_imports.get(attr_name)
9131
9144
  if module_name is None:
@@ -9134,7 +9147,7 @@ def __getattr__(attr_name: str) -> object:
9134
9147
  )
9135
9148
 
9136
9149
  try:
9137
- module = import_module(module_name, __package__)
9150
+ module = dynamic_import(module_name)
9138
9151
  result = getattr(module, attr_name)
9139
9152
  return result
9140
9153
  except ImportError as e:
@@ -42,6 +42,7 @@ class HBCriblInfoTypedDict(TypedDict):
42
42
  start_time: float
43
43
  tags: List[str]
44
44
  deployment_id: NotRequired[str]
45
+ disable_sni_routing: NotRequired[bool]
45
46
  edge_nodes: NotRequired[float]
46
47
  install_type: NotRequired[str]
47
48
  lookup_versions: NotRequired[LookupVersionsTypedDict]
@@ -65,6 +66,10 @@ class HBCriblInfo(BaseModel):
65
66
 
66
67
  deployment_id: Annotated[Optional[str], pydantic.Field(alias="deploymentId")] = None
67
68
 
69
+ disable_sni_routing: Annotated[
70
+ Optional[bool], pydantic.Field(alias="disableSNIRouting")
71
+ ] = None
72
+
68
73
  edge_nodes: Annotated[Optional[float], pydantic.Field(alias="edgeNodes")] = None
69
74
 
70
75
  install_type: Annotated[Optional[str], pydantic.Field(alias="installType")] = None
@@ -535,7 +535,7 @@ class OutputAzureDataExplorer(BaseModel):
535
535
 
536
536
  response_honor_retry_after_header: Annotated[
537
537
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
538
- ] = False
538
+ ] = True
539
539
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
540
540
 
541
541
  compress: Optional[OutputAzureDataExplorerCompressCompression] = (
@@ -302,7 +302,7 @@ class OutputAzureLogs(BaseModel):
302
302
 
303
303
  response_honor_retry_after_header: Annotated[
304
304
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
305
- ] = False
305
+ ] = True
306
306
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
307
307
 
308
308
  on_backpressure: Annotated[
@@ -489,7 +489,7 @@ class OutputClickHouse(BaseModel):
489
489
 
490
490
  response_honor_retry_after_header: Annotated[
491
491
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
492
- ] = False
492
+ ] = True
493
493
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
494
494
 
495
495
  dump_format_errors_to_disk: Annotated[
@@ -152,7 +152,7 @@ class OutputCriblHTTPTimeoutRetrySettingsTypedDict(TypedDict):
152
152
 
153
153
  class OutputCriblHTTPTimeoutRetrySettings(BaseModel):
154
154
  timeout_retry: Annotated[Optional[bool], pydantic.Field(alias="timeoutRetry")] = (
155
- False
155
+ True
156
156
  )
157
157
 
158
158
  initial_backoff: Annotated[
@@ -397,7 +397,7 @@ class OutputCriblHTTP(BaseModel):
397
397
 
398
398
  response_honor_retry_after_header: Annotated[
399
399
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
400
- ] = False
400
+ ] = True
401
401
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
402
402
 
403
403
  on_backpressure: Annotated[
@@ -320,7 +320,7 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
320
320
 
321
321
  response_honor_retry_after_header: Annotated[
322
322
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
323
- ] = False
323
+ ] = True
324
324
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
325
325
 
326
326
  on_backpressure: Annotated[
@@ -334,7 +334,7 @@ class OutputDynatraceHTTP(BaseModel):
334
334
 
335
335
  response_honor_retry_after_header: Annotated[
336
336
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
337
- ] = False
337
+ ] = True
338
338
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
339
339
 
340
340
  on_backpressure: Annotated[
@@ -413,7 +413,7 @@ class OutputDynatraceOtlp(BaseModel):
413
413
 
414
414
  response_honor_retry_after_header: Annotated[
415
415
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
416
- ] = False
416
+ ] = True
417
417
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
418
418
 
419
419
  pq_max_file_size: Annotated[
@@ -370,7 +370,7 @@ class OutputElastic(BaseModel):
370
370
 
371
371
  response_honor_retry_after_header: Annotated[
372
372
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
373
- ] = False
373
+ ] = True
374
374
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
375
375
 
376
376
  extra_params: Annotated[
@@ -336,7 +336,7 @@ class OutputElasticCloud(BaseModel):
336
336
 
337
337
  response_honor_retry_after_header: Annotated[
338
338
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
339
- ] = False
339
+ ] = True
340
340
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
341
341
 
342
342
  on_backpressure: Annotated[
@@ -429,7 +429,7 @@ class OutputGrafanaCloudGrafanaCloud2(BaseModel):
429
429
 
430
430
  response_honor_retry_after_header: Annotated[
431
431
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
432
- ] = False
432
+ ] = True
433
433
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
434
434
 
435
435
  on_backpressure: Annotated[
@@ -900,7 +900,7 @@ class OutputGrafanaCloudGrafanaCloud1(BaseModel):
900
900
 
901
901
  response_honor_retry_after_header: Annotated[
902
902
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
903
- ] = False
903
+ ] = True
904
904
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
905
905
 
906
906
  on_backpressure: Annotated[
@@ -290,7 +290,7 @@ class OutputHoneycomb(BaseModel):
290
290
 
291
291
  response_honor_retry_after_header: Annotated[
292
292
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
293
- ] = False
293
+ ] = True
294
294
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
295
295
 
296
296
  on_backpressure: Annotated[
@@ -309,7 +309,7 @@ class OutputHumioHec(BaseModel):
309
309
 
310
310
  response_honor_retry_after_header: Annotated[
311
311
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
312
- ] = False
312
+ ] = True
313
313
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
314
314
 
315
315
  on_backpressure: Annotated[
@@ -387,7 +387,7 @@ class OutputInfluxdb(BaseModel):
387
387
 
388
388
  response_honor_retry_after_header: Annotated[
389
389
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
390
- ] = False
390
+ ] = True
391
391
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
392
392
 
393
393
  on_backpressure: Annotated[
@@ -313,7 +313,7 @@ class OutputNewrelicEvents(BaseModel):
313
313
 
314
314
  response_honor_retry_after_header: Annotated[
315
315
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
316
- ] = False
316
+ ] = True
317
317
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
318
318
 
319
319
  on_backpressure: Annotated[
@@ -588,7 +588,7 @@ class OutputOpenTelemetry(BaseModel):
588
588
 
589
589
  response_honor_retry_after_header: Annotated[
590
590
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
591
- ] = False
591
+ ] = True
592
592
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
593
593
 
594
594
  tls: Optional[OutputOpenTelemetryTLSSettingsClientSide] = None
@@ -355,7 +355,7 @@ class OutputPrometheus(BaseModel):
355
355
 
356
356
  response_honor_retry_after_header: Annotated[
357
357
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
358
- ] = False
358
+ ] = True
359
359
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
360
360
 
361
361
  on_backpressure: Annotated[
@@ -351,7 +351,7 @@ class OutputSentinelOneAiSiem(BaseModel):
351
351
 
352
352
  response_honor_retry_after_header: Annotated[
353
353
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
354
- ] = False
354
+ ] = True
355
355
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
356
356
 
357
357
  on_backpressure: Annotated[
@@ -465,7 +465,7 @@ class OutputServiceNow(BaseModel):
465
465
 
466
466
  response_honor_retry_after_header: Annotated[
467
467
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
468
- ] = False
468
+ ] = True
469
469
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
470
470
 
471
471
  tls: Optional[OutputServiceNowTLSSettingsClientSide] = None
@@ -295,7 +295,7 @@ class OutputSignalfx(BaseModel):
295
295
 
296
296
  response_honor_retry_after_header: Annotated[
297
297
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
298
- ] = False
298
+ ] = True
299
299
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
300
300
 
301
301
  on_backpressure: Annotated[
@@ -337,7 +337,7 @@ class OutputSplunkHec(BaseModel):
337
337
 
338
338
  response_honor_retry_after_header: Annotated[
339
339
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
340
- ] = False
340
+ ] = True
341
341
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
342
342
 
343
343
  on_backpressure: Annotated[
@@ -295,7 +295,7 @@ class OutputWavefront(BaseModel):
295
295
 
296
296
  response_honor_retry_after_header: Annotated[
297
297
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
298
- ] = False
298
+ ] = True
299
299
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
300
300
 
301
301
  on_backpressure: Annotated[
@@ -311,7 +311,7 @@ class OutputXsiam(BaseModel):
311
311
 
312
312
  response_honor_retry_after_header: Annotated[
313
313
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
314
- ] = False
314
+ ] = True
315
315
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
316
316
 
317
317
  throttle_rate_req_per_sec: Annotated[
@@ -14,13 +14,15 @@ from typing import Any, Mapping, Optional
14
14
  class Nodes(BaseSDK):
15
15
  summaries: Summaries
16
16
 
17
- def __init__(self, sdk_config: SDKConfiguration) -> None:
18
- BaseSDK.__init__(self, sdk_config)
17
+ def __init__(
18
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
19
+ ) -> None:
20
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
19
21
  self.sdk_configuration = sdk_config
20
22
  self._init_sdks()
21
23
 
22
24
  def _init_sdks(self):
23
- self.summaries = Summaries(self.sdk_configuration)
25
+ self.summaries = Summaries(self.sdk_configuration, parent_ref=self.parent_ref)
24
26
 
25
27
  def list(
26
28
  self,
@@ -10,6 +10,7 @@ from cribl_control_plane._hooks import SDKHooks
10
10
  from cribl_control_plane.types import OptionalNullable, UNSET
11
11
  import httpx
12
12
  import importlib
13
+ import sys
13
14
  from typing import Callable, Optional, TYPE_CHECKING, Union, cast
14
15
  import weakref
15
16
 
@@ -119,6 +120,7 @@ class CriblControlPlane(BaseSDK):
119
120
  timeout_ms=timeout_ms,
120
121
  debug_logger=debug_logger,
121
122
  ),
123
+ parent_ref=self,
122
124
  )
123
125
 
124
126
  hooks = SDKHooks()
@@ -138,13 +140,24 @@ class CriblControlPlane(BaseSDK):
138
140
  self.sdk_configuration.async_client_supplied,
139
141
  )
140
142
 
143
+ def dynamic_import(self, modname, retries=3):
144
+ for attempt in range(retries):
145
+ try:
146
+ return importlib.import_module(modname)
147
+ except KeyError:
148
+ # Clear any half-initialized module and retry
149
+ sys.modules.pop(modname, None)
150
+ if attempt == retries - 1:
151
+ break
152
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
153
+
141
154
  def __getattr__(self, name: str):
142
155
  if name in self._sub_sdk_map:
143
156
  module_path, class_name = self._sub_sdk_map[name]
144
157
  try:
145
- module = importlib.import_module(module_path)
158
+ module = self.dynamic_import(module_path)
146
159
  klass = getattr(module, class_name)
147
- instance = klass(self.sdk_configuration)
160
+ instance = klass(self.sdk_configuration, parent_ref=self)
148
161
  setattr(self, name, instance)
149
162
  return instance
150
163
  except ImportError as e:
@@ -16,13 +16,15 @@ class Sources(BaseSDK):
16
16
 
17
17
  hec_tokens: HecTokens
18
18
 
19
- def __init__(self, sdk_config: SDKConfiguration) -> None:
20
- BaseSDK.__init__(self, sdk_config)
19
+ def __init__(
20
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
21
+ ) -> None:
22
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
21
23
  self.sdk_configuration = sdk_config
22
24
  self._init_sdks()
23
25
 
24
26
  def _init_sdks(self):
25
- self.hec_tokens = HecTokens(self.sdk_configuration)
27
+ self.hec_tokens = HecTokens(self.sdk_configuration, parent_ref=self.parent_ref)
26
28
 
27
29
  def list(
28
30
  self,
@@ -3,6 +3,7 @@
3
3
  from typing import TYPE_CHECKING
4
4
  from importlib import import_module
5
5
  import builtins
6
+ import sys
6
7
 
7
8
  if TYPE_CHECKING:
8
9
  from .annotations import get_discriminator
@@ -162,6 +163,18 @@ _dynamic_imports: dict[str, str] = {
162
163
  }
163
164
 
164
165
 
166
+ def dynamic_import(modname, retries=3):
167
+ for attempt in range(retries):
168
+ try:
169
+ return import_module(modname, __package__)
170
+ except KeyError:
171
+ # Clear any half-initialized module and retry
172
+ sys.modules.pop(modname, None)
173
+ if attempt == retries - 1:
174
+ break
175
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
176
+
177
+
165
178
  def __getattr__(attr_name: str) -> object:
166
179
  module_name = _dynamic_imports.get(attr_name)
167
180
  if module_name is None:
@@ -170,9 +183,8 @@ def __getattr__(attr_name: str) -> object:
170
183
  )
171
184
 
172
185
  try:
173
- module = import_module(module_name, __package__)
174
- result = getattr(module, attr_name)
175
- return result
186
+ module = dynamic_import(module_name)
187
+ return getattr(module, attr_name)
176
188
  except ImportError as e:
177
189
  raise ImportError(
178
190
  f"Failed to import {attr_name} from {module_name}: {e}"
@@ -17,6 +17,9 @@ T = TypeVar("T")
17
17
 
18
18
 
19
19
  class EventStream(Generic[T]):
20
+ # Holds a reference to the SDK client to avoid it being garbage collected
21
+ # and cause termination of the underlying httpx client.
22
+ client_ref: Optional[object]
20
23
  response: httpx.Response
21
24
  generator: Generator[T, None, None]
22
25
 
@@ -25,9 +28,11 @@ class EventStream(Generic[T]):
25
28
  response: httpx.Response,
26
29
  decoder: Callable[[str], T],
27
30
  sentinel: Optional[str] = None,
31
+ client_ref: Optional[object] = None,
28
32
  ):
29
33
  self.response = response
30
34
  self.generator = stream_events(response, decoder, sentinel)
35
+ self.client_ref = client_ref
31
36
 
32
37
  def __iter__(self):
33
38
  return self
@@ -43,6 +48,9 @@ class EventStream(Generic[T]):
43
48
 
44
49
 
45
50
  class EventStreamAsync(Generic[T]):
51
+ # Holds a reference to the SDK client to avoid it being garbage collected
52
+ # and cause termination of the underlying httpx client.
53
+ client_ref: Optional[object]
46
54
  response: httpx.Response
47
55
  generator: AsyncGenerator[T, None]
48
56
 
@@ -51,9 +59,11 @@ class EventStreamAsync(Generic[T]):
51
59
  response: httpx.Response,
52
60
  decoder: Callable[[str], T],
53
61
  sentinel: Optional[str] = None,
62
+ client_ref: Optional[object] = None,
54
63
  ):
55
64
  self.response = response
56
65
  self.generator = stream_events_async(response, decoder, sentinel)
66
+ self.client_ref = client_ref
57
67
 
58
68
  def __aiter__(self):
59
69
  return self
@@ -6,6 +6,7 @@ from cribl_control_plane.branches import Branches
6
6
  from cribl_control_plane.commits import Commits
7
7
  from cribl_control_plane.statuses import Statuses
8
8
  from cribl_control_plane.versions_configs import VersionsConfigs
9
+ from typing import Optional
9
10
 
10
11
 
11
12
  class Versions(BaseSDK):
@@ -14,13 +15,17 @@ class Versions(BaseSDK):
14
15
  configs: VersionsConfigs
15
16
  statuses: Statuses
16
17
 
17
- def __init__(self, sdk_config: SDKConfiguration) -> None:
18
- BaseSDK.__init__(self, sdk_config)
18
+ def __init__(
19
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
20
+ ) -> None:
21
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
19
22
  self.sdk_configuration = sdk_config
20
23
  self._init_sdks()
21
24
 
22
25
  def _init_sdks(self):
23
- self.branches = Branches(self.sdk_configuration)
24
- self.commits = Commits(self.sdk_configuration)
25
- self.configs = VersionsConfigs(self.sdk_configuration)
26
- self.statuses = Statuses(self.sdk_configuration)
26
+ self.branches = Branches(self.sdk_configuration, parent_ref=self.parent_ref)
27
+ self.commits = Commits(self.sdk_configuration, parent_ref=self.parent_ref)
28
+ self.configs = VersionsConfigs(
29
+ self.sdk_configuration, parent_ref=self.parent_ref
30
+ )
31
+ self.statuses = Statuses(self.sdk_configuration, parent_ref=self.parent_ref)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cribl-control-plane
3
- Version: 0.0.44a1
3
+ Version: 0.0.45
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -1,33 +1,33 @@
1
1
  cribl_control_plane/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,401
2
2
  cribl_control_plane/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU1c,146
3
- cribl_control_plane/_hooks/clientcredentials.py,sha256=_scvqxVT_8CDEMWblZ02IQ9A1bMEI1B9Wq1L-UDkaZw,7237
3
+ cribl_control_plane/_hooks/clientcredentials.py,sha256=p1WN7LL3PHrAf4AxXrsOZF_NBiFkJENjCuBQ4wv-ZM0,7249
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=-UA8QhCK7p_4c-Hn3tZnwFc2VrlfxRNUqqKeu1JpgK0,546
8
- cribl_control_plane/acl.py,sha256=LMsIZTDCRTXVt73MC_QoJexElGNsicYsBBHfVGzUsG8,8923
9
- cribl_control_plane/auth_sdk.py,sha256=FQZpAERAlpw6Xk-mkUdalUDSekftklv_Du4i2TLDilk,496
10
- cribl_control_plane/basesdk.py,sha256=amvvB5iPT7c-L6NLo2Rhu2f7xWaapsa6OfQ37SICXOw,11954
7
+ cribl_control_plane/_version.py,sha256=tBSfyD5wEmmW45kU1RDb--BIJDA1CVhywcfX_0ZRkKY,542
8
+ cribl_control_plane/acl.py,sha256=8lvYOKAli4PzsQhOVaCU6YCwblPMh9jQo04L0r4HJuQ,9025
9
+ cribl_control_plane/auth_sdk.py,sha256=3sjf1VoyWwfhSyuMDQLixgWISSf03BOZwmkiT8g5Ruw,626
10
+ cribl_control_plane/basesdk.py,sha256=y4yIXSNVXLMd0sLS2htBFdTCI3gkPQbIWd-C671kg1I,12249
11
11
  cribl_control_plane/branches.py,sha256=Uz2F25RVW5hDr92Dm7yo7I9NdEN1zh9eDF20h4mD7Tg,14217
12
- cribl_control_plane/commits.py,sha256=xcc9-PRAucQzsDNQG5MdwCgS3HzLxy_FDKrYpFzEt3k,56550
12
+ cribl_control_plane/commits.py,sha256=eQCWma93q5TdxSdrRIQPn5LltiVruCNqjWjQvz-Bwng,56652
13
13
  cribl_control_plane/commits_files.py,sha256=YmLpBefvP28icHA3FqvwVIxmTcgecUnABf5Tx7wN8H8,15609
14
14
  cribl_control_plane/configs_versions.py,sha256=Ov9FqT4q9aKcCBUs1Qn65CdjnJK1pXXWPTYlHHHj-gk,8336
15
- cribl_control_plane/destinations.py,sha256=ttEDfTKW-DlNBc_q5-EuqdNFMyh1cx_GI3ipN86pcpY,37389
15
+ cribl_control_plane/destinations.py,sha256=N5MApCQUc2KpTCFAQHZvXmrweuI0gSQ2mk8uTQhJjww,37519
16
16
  cribl_control_plane/destinations_pq.py,sha256=bp25ihNaTH8Je2ifM8EgR9Cc-w4naz-snS2jJlsyq7E,14871
17
- cribl_control_plane/errors/__init__.py,sha256=6d9IGiw8Z6n2sTijw-e11PthRPi-YUkLgzE6zV4MfFQ,1867
17
+ cribl_control_plane/errors/__init__.py,sha256=lzdSKjXlCz90wIT8Aylqw9-0BmLdu5P5BQFQB37rCBE,2221
18
18
  cribl_control_plane/errors/apierror.py,sha256=Z3b3zk672zHljcdijGLJeJ2LiP1f3VpVDEqUuF7LDAA,1253
19
19
  cribl_control_plane/errors/criblcontrolplaneerror.py,sha256=P9SU33LkmvyURdJbndHJxXu2KW_3u059peZJ8C80LfM,724
20
20
  cribl_control_plane/errors/error.py,sha256=fZ72R_qeZ0-xd514dVqKKiqh7zzLmnkpPJfckpHOCj4,693
21
21
  cribl_control_plane/errors/healthstatus_error.py,sha256=Hgn36yszsiYPS3cG__-PKHDDbPn6tt_ybD_UNw5r9b4,950
22
22
  cribl_control_plane/errors/no_response_error.py,sha256=FQG44Lq6uF7uUlzbUYfM3dJon6sbqXzJ0Ri6YrDdsEs,380
23
23
  cribl_control_plane/errors/responsevalidationerror.py,sha256=TvZ9dOsy-oFBYA_wZCOOEXeGKMBQtzCVX-1-i7epQTE,720
24
- cribl_control_plane/groups_configs.py,sha256=Tp0DFJ-zCNF_fvtnxCxVSkmrDl1IP6bRF7Irg2CZXAM,543
25
- cribl_control_plane/groups_sdk.py,sha256=C077OK9FuZcvXLokc5j7PgahTEBZoLUcGkQi51moqTs,61705
24
+ cribl_control_plane/groups_configs.py,sha256=dgi-W0ElnyygaVKXqk5df2ldAAgj9YmXRPCez2hP7yc,695
25
+ cribl_control_plane/groups_sdk.py,sha256=EkviXQbbtP9HIv8tSkRtyOTPqxVTySgzMlgx_zhudig,61835
26
26
  cribl_control_plane/health.py,sha256=mDYmC13IE_M9jTVKKBOr5aeZ5QArUURLT1PyPpvn5Ho,6719
27
27
  cribl_control_plane/hectokens.py,sha256=0EGgGGrM83m1YmTZwkN5S4xFkHQGnw1IZe3y6uMwmLw,19151
28
28
  cribl_control_plane/httpclient.py,sha256=Eu73urOAiZQtdUIyOUnPccxCiBbWEKrXG-JrRG3SLM4,3946
29
29
  cribl_control_plane/lakedatasets.py,sha256=7WYWcjXMzliDW1j3TQlgikc_h54IUq4lsysVy_39l38,46578
30
- cribl_control_plane/models/__init__.py,sha256=frvf6pQdbFpXv09nCvr8ZLYecMOrSEo-PMFOIOa-3jk,386667
30
+ cribl_control_plane/models/__init__.py,sha256=jl4asHU9YLiybVCi9VB8lVzGSwLEXW6bm5N8qQW9Qv8,387082
31
31
  cribl_control_plane/models/addhectokenrequest.py,sha256=mzQLKrMWlwxNheqEs5SM_yrT-gyenfCWgHKhmb5oXFQ,800
32
32
  cribl_control_plane/models/appmode.py,sha256=5xRJz9oP5ah4b6dcay4Q1IbQ9irm6k6x2BrTNysIMY4,300
33
33
  cribl_control_plane/models/authtoken.py,sha256=uW0aIs8j14CQzFM2ueY5GIWFulna91cigBWQ3oPlDgY,295
@@ -103,7 +103,7 @@ cribl_control_plane/models/gitlogresult.py,sha256=JSTXgsLOce7j1z0mJGALXWeOR7pclW
103
103
  cribl_control_plane/models/gitrevertparams.py,sha256=wMVlEcrprmZHUA01vi3CC8fMMDFqURJndv-1LaF2gik,478
104
104
  cribl_control_plane/models/gitrevertresult.py,sha256=RQ7-QhPP7zerEEF2bUhVI_IVft7tqYVOZrNLCWeB32c,1056
105
105
  cribl_control_plane/models/gitstatusresult.py,sha256=7-pEpOnb4xzQwWo3rPBRN0tbM6UdG4KSIhkiUPyU3to,1166
106
- cribl_control_plane/models/hbcriblinfo.py,sha256=hA2OxTBrrdu2q5XH5UzfEQUQJ6OKEctujlMjFa4IEts,2262
106
+ cribl_control_plane/models/hbcriblinfo.py,sha256=pYKgcEIxbawifo42ejy_p2PBp6aO3YmHFXJ9nOieaq0,2421
107
107
  cribl_control_plane/models/hbleaderinfo.py,sha256=SU5iM_I4sqxoTOzAQsw-rpOMfXwKl1ymze9nUrw6z6U,503
108
108
  cribl_control_plane/models/healthstatus.py,sha256=u4ePDejWSLI7yhfFxKyB5GVkihAG_z9PcHqCA2H9-e0,735
109
109
  cribl_control_plane/models/heartbeatmetadata.py,sha256=IlLu0BnjnwBeXQtZSk4YUj9gKiI8n95ipYJ2Og2x1IQ,2255
@@ -188,37 +188,37 @@ cribl_control_plane/models/nodeupgradestate.py,sha256=8zbj0lofMbq89B3lv5gEIS7d1D
188
188
  cribl_control_plane/models/nodeupgradestatus.py,sha256=HlNRUmka5xuPdL-2UupJIe5q1_imCKHUWQQBTIpDCHM,966
189
189
  cribl_control_plane/models/output.py,sha256=d9ssxkbFuQFzc1eN4at4mqtCndfL-CqkQX9QnHZcngc,8695
190
190
  cribl_control_plane/models/outputazureblob.py,sha256=3mOrHtABPHbwPdx36qjAIyyxbplfgSHSkjTdXXiqi9g,21928
191
- cribl_control_plane/models/outputazuredataexplorer.py,sha256=qlh62CqqmYcQ8Qc6ij-6m09KmQwqPhMexFeBaH1Ry8w,30357
191
+ cribl_control_plane/models/outputazuredataexplorer.py,sha256=fd9CQfLN_S_iJ5c2lf6Pf1HihRz8MQJCx_Vprw3cS9U,30356
192
192
  cribl_control_plane/models/outputazureeventhub.py,sha256=2-4l-5D5Q5UgKcAd_ZrlCyUipYboPPWRFMOV3dL9Vg8,14767
193
- cribl_control_plane/models/outputazurelogs.py,sha256=EIQA99AD9e1r-ht9QPDg3DZN0IN282_vRlcmQd1wNVA,19603
194
- cribl_control_plane/models/outputclickhouse.py,sha256=kW8awWvrTcn4lSj1SZdFZwRTwkqFcB9VG8D2ENtQWVs,29121
193
+ cribl_control_plane/models/outputazurelogs.py,sha256=cEeITaFLtSopIS9Jt0bHzvkG_dTuCKIR5u6M8VJ6BBM,19602
194
+ cribl_control_plane/models/outputclickhouse.py,sha256=7Mw3E0zMRgDxuZ3ChiLa4w2fLF1vfzeyqVk9nXqCbMo,29120
195
195
  cribl_control_plane/models/outputcloudwatch.py,sha256=ShVZ5c4FKiqy9pY0XKQH-fLIsWYUtAepdKy-ghoRaOQ,11924
196
196
  cribl_control_plane/models/outputconfluentcloud.py,sha256=XDieWfvZaAM9AeENcVNfhvRJ6En0RIPtKIhX-WzPmZc,26422
197
- cribl_control_plane/models/outputcriblhttp.py,sha256=R3IjucGHDhGorOrhNFH8SFefOLLkZQQ2HKfP1i8xbuQ,22966
197
+ cribl_control_plane/models/outputcriblhttp.py,sha256=WnTxmZswqaHo0PkLJf8QaCi-Lz6rRrLh5WrgMWWtmXU,22964
198
198
  cribl_control_plane/models/outputcribllake.py,sha256=SzZGDLCYwi7UPqI1QcdpaYVvrRbiqxJbR73r35-0FLI,16802
199
199
  cribl_control_plane/models/outputcribltcp.py,sha256=AcPGSEQ97oTEEnrkFTloq0l057TZJxVOQmn5rxmA-wM,16407
200
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py,sha256=FvIakQ89LEMdXf68KuepAYy9Mo9-bb7YxL_sp8EnnJ0,18840
200
+ cribl_control_plane/models/outputcrowdstrikenextgensiem.py,sha256=czl5brgpcKoebxGCpJJczhQr66jhpF97CPGQce4T9uE,18839
201
201
  cribl_control_plane/models/outputdatadog.py,sha256=JSVeEa_YUziiUq9eN2G0k9h9wuR91zO1kRoaJE8v38k,22123
202
202
  cribl_control_plane/models/outputdataset.py,sha256=AL_GSZ8LIp4ibiHj0j0vXBpq3gFtBwlqGNJkmmkb4ek,20514
203
203
  cribl_control_plane/models/outputdefault.py,sha256=2tjMKYSksR-0qWLd_u3PPLXL0gZiSlUdj9JTPYeYMps,1952
204
204
  cribl_control_plane/models/outputdevnull.py,sha256=OUts1fVfdGgN-gD9mOfSPSYtv-fz4Mk0UjjsXm749mI,1649
205
205
  cribl_control_plane/models/outputdiskspool.py,sha256=HnpZ_PBSsevCz_075iibN1v8m0nMScz0OOUFnCJDfTI,3703
206
206
  cribl_control_plane/models/outputdls3.py,sha256=oGRHw08vP2LymHdHJhhqk5DMRMBbc3IzQlMaZ6k9qyM,24652
207
- cribl_control_plane/models/outputdynatracehttp.py,sha256=U4juy1nf9YFY16djpZI1FNGwd_E9JsDtt_MAyeDeD4E,20476
208
- cribl_control_plane/models/outputdynatraceotlp.py,sha256=u2B8XfhnBA1IJPk5PMNQOun-D6D7v9Bkw3A-1gMB-X4,22497
209
- cribl_control_plane/models/outputelastic.py,sha256=qVaUCxsJdNAqoz9rzWTAofHXqRvZhsWlcWZQ0XmAyA4,22488
210
- cribl_control_plane/models/outputelasticcloud.py,sha256=xY39KdWY1JnxRd-bSKFgPpbpcH5_wQaPgFh7gQ8Q1HM,18131
207
+ cribl_control_plane/models/outputdynatracehttp.py,sha256=zYhyGUY2r7Zo7crLt4Fl8HTJIWs9zbxXfAT9HUEaSp8,20475
208
+ cribl_control_plane/models/outputdynatraceotlp.py,sha256=CTggj1mLms4HwB1VMc0rIjXFkl6t8ZkJPEUQYuh_OjE,22496
209
+ cribl_control_plane/models/outputelastic.py,sha256=rFsiF_tvogHP52zKazVkNpCJb_WDxggBS2EGv04f51g,22487
210
+ cribl_control_plane/models/outputelasticcloud.py,sha256=A6EilAoOxUFAUpyQAwODRyTX2wxY6WAa0x2_eyjZnkY,18130
211
211
  cribl_control_plane/models/outputexabeam.py,sha256=YQu_ePcDsqQjM8l4gDnUotJLnMJBAv-cA46jH0t6CK8,12625
212
212
  cribl_control_plane/models/outputfilesystem.py,sha256=xlrWLUjsezob6NrN-UES8k1N_WfVJaANkqGVk7NtTOM,16433
213
213
  cribl_control_plane/models/outputgooglechronicle.py,sha256=I_cQCbi1j_L1yEi5Cy-GAr_omp9R9IGDEvwzVez4XpI,22079
214
214
  cribl_control_plane/models/outputgooglecloudlogging.py,sha256=8BVEEk4NsXPAIrzK087_DCJWREO6C36KpJs4SimVPWY,33585
215
215
  cribl_control_plane/models/outputgooglecloudstorage.py,sha256=yJI9xSgu9XTsDtRBS_dMZdfLpKv2t4cyi4Px8hYuSM4,22385
216
216
  cribl_control_plane/models/outputgooglepubsub.py,sha256=Wl7vmLgBz-EZ6SqgFymaqRFhghdEoPWZB9f5jkkGKrc,11649
217
- cribl_control_plane/models/outputgrafanacloud.py,sha256=o_4vU_kfqJUdgj92RYNpidbWakUaJfc5Y_n-Sm4Y4UU,52131
217
+ cribl_control_plane/models/outputgrafanacloud.py,sha256=x8HZGxgAt4-4E9BJ-HqNy_PxXU4PQsT3TtFQ7jlUDn0,52129
218
218
  cribl_control_plane/models/outputgraphite.py,sha256=96YvOtlivN9IxPvVerjj_30RNfnn9tKcvEWsH2nzMc4,9770
219
- cribl_control_plane/models/outputhoneycomb.py,sha256=-XgAb04SQ5Bg9W2ZeUH0RdMXptYS0fRFtCzhb7bRpvA,17091
220
- cribl_control_plane/models/outputhumiohec.py,sha256=7A4gV6-6cyfW-PxFI6AmfG7Fu3LWPfpByaBcKLW8Iw0,18300
221
- cribl_control_plane/models/outputinfluxdb.py,sha256=_UfshiBXt3OE0VsJM8jQrC6IJDQVBGjkFpGEcka3npI,23740
219
+ cribl_control_plane/models/outputhoneycomb.py,sha256=d3PexWOjA_oMd_Lq_kZgxPPP0hnerL8vGSuvzQWacKY,17090
220
+ cribl_control_plane/models/outputhumiohec.py,sha256=B_RH_tqNCFOJZaVHvKB0Xag6dibVz_rQwY8BfBvGLJ8,18299
221
+ cribl_control_plane/models/outputinfluxdb.py,sha256=oORnoVUsHrWP2e4yUJKdMRIT_Umcpo7VOej-q5N_mzs,23739
222
222
  cribl_control_plane/models/outputkafka.py,sha256=YwlyN3Q0o8S_nsuAGxIsc5zt47YEctSTTAGhlk5VSBA,25768
223
223
  cribl_control_plane/models/outputkinesis.py,sha256=2B_r1WqTyBzQNutLM0kwBr0FQVzW9jGwpdKbFX7i_20,13156
224
224
  cribl_control_plane/models/outputloki.py,sha256=7StzjyZx_3gGA7ixlhsjr2_PvQM_WrAawvFEV2pGmbI,22040
@@ -226,22 +226,22 @@ cribl_control_plane/models/outputminio.py,sha256=k2DCu82KnFRwtnnbAS4js_54jqJTDDr
226
226
  cribl_control_plane/models/outputmsk.py,sha256=tyg-An-de9-OyJWp77qJX2Ah3pcd4KV8cCv2bDl7aXs,28492
227
227
  cribl_control_plane/models/outputnetflow.py,sha256=xOBy2Q48SfhNT2ifAQU-bPVQ5nOpUqMJ5B40SlZ3-0o,2790
228
228
  cribl_control_plane/models/outputnewrelic.py,sha256=OX-C9yORHBo5I8gE83KLzpqEm6OBYNp-ctdgEkwB9yM,19466
229
- cribl_control_plane/models/outputnewrelicevents.py,sha256=iFx4uRjq-fK58epups-i23yvc8CHJXyPH-uM7JIiqxE,18513
230
- cribl_control_plane/models/outputopentelemetry.py,sha256=y2PmeGkinPXLV84KcBYjP_sUYqOyUXpSyHNdQHka3J8,30293
231
- cribl_control_plane/models/outputprometheus.py,sha256=Oq3iZa1nnzYn9h7JzD015SPPNkSJ_LqhMgIV0JvGfFA,22994
229
+ cribl_control_plane/models/outputnewrelicevents.py,sha256=UfkA6vrgxAuSLsRCL0LB8xNL24LIEVPu5tOKb0tLPwE,18512
230
+ cribl_control_plane/models/outputopentelemetry.py,sha256=zJak0Th95-AsV3aVeyRJiCq7ZOaJUC_S6X3cbumc4Gs,30292
231
+ cribl_control_plane/models/outputprometheus.py,sha256=EQjTQdhESCfOFvR9N20VdvukgZdSZcRWQpQssalnIIY,22993
232
232
  cribl_control_plane/models/outputring.py,sha256=ApRdBPc5cqdvJst81ORl7DKIPeiKr9U78FHiLIZD4TQ,4319
233
233
  cribl_control_plane/models/outputrouter.py,sha256=NFxnKjlI5v0m67qjiPDuQ_UYqoNQDTTNv5SQWlF3vrs,2686
234
234
  cribl_control_plane/models/outputs3.py,sha256=_LJwZ0fPJTl-Qz90_dxuTHuZtDCk07nwmT_ObyqhV7c,24699
235
235
  cribl_control_plane/models/outputsamplesresponse.py,sha256=gQrDTmfvvYDoKPYyhl6qijUU8AksXxq2mPHahVPssAk,390
236
236
  cribl_control_plane/models/outputsecuritylake.py,sha256=wHfbF34yTGqFDWaldzOnRb4bvhV4BDZJAQ14NDZ52ok,22686
237
237
  cribl_control_plane/models/outputsentinel.py,sha256=sqCqMAtsh7r1yxde6NGE_QGvdNCxMaxmcaasqLKYm1A,24531
238
- cribl_control_plane/models/outputsentineloneaisiem.py,sha256=2g_TTl3s079pQ5BFIdhSQNrg4p3iBbNTQAiwJAck-gA,27733
239
- cribl_control_plane/models/outputservicenow.py,sha256=yaZtnSxDau3Nn3UJnzuHZi7qvg94dCz71jpd1VAUS_Y,24732
240
- cribl_control_plane/models/outputsignalfx.py,sha256=j4xGQBHD2fcqsBhv7qVnwabocs2Zr0qq-V7SZ0ase1M,17682
238
+ cribl_control_plane/models/outputsentineloneaisiem.py,sha256=g-NdoRb0tN4zUja4nJScWmqdzwsC_iOwF1vhsAC3zXA,27732
239
+ cribl_control_plane/models/outputservicenow.py,sha256=YTjwewm6b_79ZBwMOVMfIuc8B4iNUKZKUXE7IZFxGRo,24731
240
+ cribl_control_plane/models/outputsignalfx.py,sha256=8Wldd5slW3B-jKX0TY-nzOGPAKZIJFYRnk_u17z2cwI,17681
241
241
  cribl_control_plane/models/outputsnmp.py,sha256=TQK8zgga3LAuyp_YGhqobc7FYLBBJRciw2ZBFQPkU1Y,2738
242
242
  cribl_control_plane/models/outputsns.py,sha256=p0lELGksrgXocml37wLx6a1S6ab2ElOONNWKknH8LWY,12389
243
243
  cribl_control_plane/models/outputsplunk.py,sha256=CcEWrdfKzZJLiwQG9cy2RdnXCM5OCE_Rze6ygh0sq9o,16024
244
- cribl_control_plane/models/outputsplunkhec.py,sha256=unckAGMWf2-6kgoix39VENyBjTsC3v5CTZkwhqzXjyk,20770
244
+ cribl_control_plane/models/outputsplunkhec.py,sha256=1R0dIt6s3N0CcolPivaXUquPjHIaPQtmI1u40dlFUNo,20769
245
245
  cribl_control_plane/models/outputsplunklb.py,sha256=ch5yAD1YCC2uRwg3WTzyiGRjSaq6aWeGJDOXWebxvVc,24722
246
246
  cribl_control_plane/models/outputsqs.py,sha256=yU_s7HvbZrlS9gsNuOVZw2lLfPkcytmlzS-Lb7-uIjw,14506
247
247
  cribl_control_plane/models/outputstatsd.py,sha256=9y5evh_vSTptkzztDxgVohP4WKiMgZQXKUN2-YjA3MU,9708
@@ -251,9 +251,9 @@ cribl_control_plane/models/outputsyslog.py,sha256=Sora557qH46NyHf-SOEWVnhGxJSpCe
251
251
  cribl_control_plane/models/outputtcpjson.py,sha256=7RY26QNjgawu2exy-GHftLpN97bTqfZOk9alDVBzQos,17490
252
252
  cribl_control_plane/models/outputtestrequest.py,sha256=UTUiu9WvmbQxqBQtwoBSMPjAynOvKPSrNcsjoGTjPp8,428
253
253
  cribl_control_plane/models/outputtestresponse.py,sha256=cKeXPvSpCzU6cWpXvHoujp-pmS-qVBoSkz3pb7MdV7M,775
254
- cribl_control_plane/models/outputwavefront.py,sha256=NDhLd0UM0zQ52Pmlg9fCNL8BOdRC0LYdOjRDK8hOrFk,17403
254
+ cribl_control_plane/models/outputwavefront.py,sha256=OlJF4OgbUN-yzzN1CfGOJ0YDGGt7igCd6ypt8bZYx98,17402
255
255
  cribl_control_plane/models/outputwebhook.py,sha256=Ljeeb4S4zwyKP-oWdWEWD7FLtBiKT7w_6dCxD5gbKMQ,32833
256
- cribl_control_plane/models/outputxsiam.py,sha256=BaCAvUqmCnFIXv3vmUZJiM2aW2ebNZqJVTdBjWaroZE,19553
256
+ cribl_control_plane/models/outputxsiam.py,sha256=sCTArscwIxRlzqDr6QQQ3whhxmosHid9WUtW9b77fMc,19552
257
257
  cribl_control_plane/models/packinfo.py,sha256=8pP80pbzBJKjIViX_kcibH5EBWIrnyVvc9P53ga7Re8,1844
258
258
  cribl_control_plane/models/packinstallinfo.py,sha256=RhIRUWRUYdk-FNEa2WyiPBs4RvdHsqovMH4dgLyd6Ds,1965
259
259
  cribl_control_plane/models/packrequestbody_union.py,sha256=EGDpybuIL6SAXT_mHnaFCm6PtEH3dTdTu999-7rmgKA,3897
@@ -286,26 +286,26 @@ cribl_control_plane/models/updatepipelinebyidop.py,sha256=Cn_FBckmK1NyUkfOpWmc84
286
286
  cribl_control_plane/models/updateroutesbyidop.py,sha256=KEoryZP8OqtJCXp0f5P4c2KKs1k1jY9-LsxGSBLDFMA,1562
287
287
  cribl_control_plane/models/useraccesscontrollist.py,sha256=UNM3mdqFByd9GAovAi26z9y-5H15hrKDzw0M-f-Pn2o,483
288
288
  cribl_control_plane/models/workertypes.py,sha256=qphL2wkL55CU8V7xBts2lsMMi6IaA7LhUvKL_9xMod4,218
289
- cribl_control_plane/nodes.py,sha256=015pTP--RfK2YFrMRgBe8ha32Mp_38JGDYdxkGdjtzY,17429
289
+ cribl_control_plane/nodes.py,sha256=I4AnHbDlX3zNbvDfwgIZ6sv1yQTlkAGaQRoSzwkl0KM,17531
290
290
  cribl_control_plane/packs.py,sha256=Ba7SLmjZuYmdC__uhYj5BMt1JVKNMsd3y3Iv7L4UVIo,38513
291
291
  cribl_control_plane/pipelines.py,sha256=jeU-R5NDOsLXrV-5t7Cz-RPidsQ4KwNN4-_oW9iNK0s,36946
292
292
  cribl_control_plane/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
293
293
  cribl_control_plane/routes_sdk.py,sha256=aqJkB-EbLzA2NSFtu9N7ERta5BvIbpDRg7OZcO_ndkA,33197
294
294
  cribl_control_plane/samples.py,sha256=41bJGkB-lxj8WmeI-418PwgMT2KPKqlINp26CKwt0Yk,16067
295
- cribl_control_plane/sdk.py,sha256=UcM5PrBF5eQKCivl1WEPbIIZ5I6IPQLdi3K4GUxijbY,7463
295
+ cribl_control_plane/sdk.py,sha256=OqUFrzRv28ANjtffffm1NlNgd9RPQvSGQc8k2Pl40lE,7974
296
296
  cribl_control_plane/sdkconfiguration.py,sha256=bit6SSOyHqvibdtgNad5_ZcgMotk8NJfgHpKsBK8HFg,1259
297
- cribl_control_plane/sources.py,sha256=rexCbl4lSCw3OBjklfw_xTvUPSczUzsFHVYsYoboSf4,37018
297
+ cribl_control_plane/sources.py,sha256=9JCNHdOGmMAGjBIYvzA7TSQsj6o6UEe89SHyQ_MGrSk,37120
298
298
  cribl_control_plane/statuses.py,sha256=jVfnmt3M0aiKJ3tgB2WlMaCmKDPZCJoD-1Kh8p-37ZM,8013
299
299
  cribl_control_plane/summaries.py,sha256=CtkNAxkMTArdUQhWHy7XqGPkO6DA-PvdwgVK-RHSkt0,8058
300
300
  cribl_control_plane/teams.py,sha256=kSjUiS7cKiROcRDmTxhnnOeGIsqLZcP7MFCuv5Kgm1U,8844
301
301
  cribl_control_plane/tokens.py,sha256=iP_0_Pl8LFgs_ektBTU-bvRjJq6JQ3q7qMWIeIIuXmc,7220
302
302
  cribl_control_plane/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
303
303
  cribl_control_plane/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
304
- cribl_control_plane/utils/__init__.py,sha256=f0z1dsfJtiN5V5w4AE1dZb6W0_hDyMzVaDVq18RCbiQ,5470
304
+ cribl_control_plane/utils/__init__.py,sha256=CAG0O76aEToGKXpT6Ft87Vd-iiQTh4XdBrQ37BVbsiM,5861
305
305
  cribl_control_plane/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4sek5Z_5Y,1699
306
306
  cribl_control_plane/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
307
307
  cribl_control_plane/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
308
- cribl_control_plane/utils/eventstreaming.py,sha256=LtcrfJYw4nP2Oe4Wl0-cEURLzRGYReRGWNFY5wYECIE,6186
308
+ cribl_control_plane/utils/eventstreaming.py,sha256=SgFqMcUOYKlrTQ4gAp_dNcKLvDXukeiEMNU3DP8mXk8,6692
309
309
  cribl_control_plane/utils/forms.py,sha256=EJdnrfIkuwpDtekyHutla0HjI_FypTYcmYNyPKEu_W0,6874
310
310
  cribl_control_plane/utils/headers.py,sha256=cPxWSmUILrefTGDzTH1Hdj7_Hlsj-EY6K5Tyc4iH4dk,3663
311
311
  cribl_control_plane/utils/logger.py,sha256=VOliRfr1sX8RTNqAJSvQr_GvtMjBFISATpRy4-XxkE0,695
@@ -318,8 +318,8 @@ cribl_control_plane/utils/serializers.py,sha256=Hndks5M_rJXVub_N5lu0gKZQUoEmWrn6
318
318
  cribl_control_plane/utils/unmarshal_json_response.py,sha256=yxi3F_O3SCU0SrexiR3BvQS-E81pW2siLgpTXYegAyg,595
319
319
  cribl_control_plane/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
320
320
  cribl_control_plane/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
321
- cribl_control_plane/versions.py,sha256=Wdaxc2wZeEeD12wAh7SQ0RGG9KgwKaWQ7bc8qOQ8oAo,920
321
+ cribl_control_plane/versions.py,sha256=4xdTYbM84Xyjr5qkixqNpgn2q6V8aXVYXkEPDU2Ele0,1156
322
322
  cribl_control_plane/versions_configs.py,sha256=5CKcfN4SzuyFgggrx6O8H_h3GhNyKSbfdVhSkVGZKi4,7284
323
- cribl_control_plane-0.0.44a1.dist-info/METADATA,sha256=i-V37bRDrfNZTK2Vs-R3ha4nm_mpweLb0qnQ9n6g178,38834
324
- cribl_control_plane-0.0.44a1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
325
- cribl_control_plane-0.0.44a1.dist-info/RECORD,,
323
+ cribl_control_plane-0.0.45.dist-info/METADATA,sha256=YqTOs3l36_BJ3rLnWXxQxkJyDurGl7cAn0PWCFMQKDo,38832
324
+ cribl_control_plane-0.0.45.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
325
+ cribl_control_plane-0.0.45.dist-info/RECORD,,