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

@@ -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.43"
7
- __openapi_doc_version__: str = "4.14.0-alpha.1757087755104-f460003f"
8
- __gen_version__: str = "2.686.7"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.43 2.686.7 4.14.0-alpha.1757087755104-f460003f cribl-control-plane"
6
+ __version__: str = "0.0.44"
7
+ __openapi_doc_version__: str = "4.14.0-alpha.1757401089572-3ca67bed"
8
+ __gen_version__: str = "2.696.0"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.44 2.696.0 4.14.0-alpha.1757401089572-3ca67bed 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 (
@@ -2971,6 +2972,8 @@ if TYPE_CHECKING:
2971
2972
  OutputSyslog,
2972
2973
  OutputSyslogBackpressureBehavior,
2973
2974
  OutputSyslogCompression,
2975
+ OutputSyslogHost,
2976
+ OutputSyslogHostTypedDict,
2974
2977
  OutputSyslogMaximumTLSVersion,
2975
2978
  OutputSyslogMessageFormat,
2976
2979
  OutputSyslogMinimumTLSVersion,
@@ -2980,6 +2983,7 @@ if TYPE_CHECKING:
2980
2983
  OutputSyslogProtocol,
2981
2984
  OutputSyslogQueueFullBehavior,
2982
2985
  OutputSyslogSeverity,
2986
+ OutputSyslogTLS,
2983
2987
  OutputSyslogTLSSettingsClientSide,
2984
2988
  OutputSyslogTLSSettingsClientSideTypedDict,
2985
2989
  OutputSyslogType,
@@ -5892,6 +5896,8 @@ __all__ = [
5892
5896
  "OutputSyslog",
5893
5897
  "OutputSyslogBackpressureBehavior",
5894
5898
  "OutputSyslogCompression",
5899
+ "OutputSyslogHost",
5900
+ "OutputSyslogHostTypedDict",
5895
5901
  "OutputSyslogMaximumTLSVersion",
5896
5902
  "OutputSyslogMessageFormat",
5897
5903
  "OutputSyslogMinimumTLSVersion",
@@ -5901,6 +5907,7 @@ __all__ = [
5901
5907
  "OutputSyslogProtocol",
5902
5908
  "OutputSyslogQueueFullBehavior",
5903
5909
  "OutputSyslogSeverity",
5910
+ "OutputSyslogTLS",
5904
5911
  "OutputSyslogTLSSettingsClientSide",
5905
5912
  "OutputSyslogTLSSettingsClientSideTypedDict",
5906
5913
  "OutputSyslogType",
@@ -8855,6 +8862,8 @@ _dynamic_imports: dict[str, str] = {
8855
8862
  "OutputSyslog": ".outputsyslog",
8856
8863
  "OutputSyslogBackpressureBehavior": ".outputsyslog",
8857
8864
  "OutputSyslogCompression": ".outputsyslog",
8865
+ "OutputSyslogHost": ".outputsyslog",
8866
+ "OutputSyslogHostTypedDict": ".outputsyslog",
8858
8867
  "OutputSyslogMaximumTLSVersion": ".outputsyslog",
8859
8868
  "OutputSyslogMessageFormat": ".outputsyslog",
8860
8869
  "OutputSyslogMinimumTLSVersion": ".outputsyslog",
@@ -8864,6 +8873,7 @@ _dynamic_imports: dict[str, str] = {
8864
8873
  "OutputSyslogProtocol": ".outputsyslog",
8865
8874
  "OutputSyslogQueueFullBehavior": ".outputsyslog",
8866
8875
  "OutputSyslogSeverity": ".outputsyslog",
8876
+ "OutputSyslogTLS": ".outputsyslog",
8867
8877
  "OutputSyslogTLSSettingsClientSide": ".outputsyslog",
8868
8878
  "OutputSyslogTLSSettingsClientSideTypedDict": ".outputsyslog",
8869
8879
  "OutputSyslogType": ".outputsyslog",
@@ -9117,6 +9127,18 @@ _dynamic_imports: dict[str, str] = {
9117
9127
  }
9118
9128
 
9119
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
+
9120
9142
  def __getattr__(attr_name: str) -> object:
9121
9143
  module_name = _dynamic_imports.get(attr_name)
9122
9144
  if module_name is None:
@@ -9125,7 +9147,7 @@ def __getattr__(attr_name: str) -> object:
9125
9147
  )
9126
9148
 
9127
9149
  try:
9128
- module = import_module(module_name, __package__)
9150
+ module = dynamic_import(module_name)
9129
9151
  result = getattr(module, attr_name)
9130
9152
  return result
9131
9153
  except ImportError as e:
@@ -341,6 +341,8 @@ class InputConfluentCloudAuthenticationTypedDict(TypedDict):
341
341
 
342
342
  disabled: NotRequired[bool]
343
343
  mechanism: NotRequired[InputConfluentCloudSASLMechanism]
344
+ oauth_enabled: NotRequired[bool]
345
+ r"""Enable OAuth authentication"""
344
346
 
345
347
 
346
348
  class InputConfluentCloudAuthentication(BaseModel):
@@ -352,6 +354,11 @@ class InputConfluentCloudAuthentication(BaseModel):
352
354
  InputConfluentCloudSASLMechanism.PLAIN
353
355
  )
354
356
 
357
+ oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
358
+ False
359
+ )
360
+ r"""Enable OAuth authentication"""
361
+
355
362
 
356
363
  class InputConfluentCloudMetadatumTypedDict(TypedDict):
357
364
  name: str
@@ -260,6 +260,8 @@ class InputKafkaAuthenticationTypedDict(TypedDict):
260
260
 
261
261
  disabled: NotRequired[bool]
262
262
  mechanism: NotRequired[InputKafkaSASLMechanism]
263
+ oauth_enabled: NotRequired[bool]
264
+ r"""Enable OAuth authentication"""
263
265
 
264
266
 
265
267
  class InputKafkaAuthentication(BaseModel):
@@ -269,6 +271,11 @@ class InputKafkaAuthentication(BaseModel):
269
271
 
270
272
  mechanism: Optional[InputKafkaSASLMechanism] = InputKafkaSASLMechanism.PLAIN
271
273
 
274
+ oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
275
+ False
276
+ )
277
+ r"""Enable OAuth authentication"""
278
+
272
279
 
273
280
  class InputKafkaMinimumTLSVersion(str, Enum):
274
281
  TL_SV1 = "TLSv1"
@@ -94,24 +94,23 @@ OutputTypedDict = TypeAliasType(
94
94
  OutputNetflowTypedDict,
95
95
  OutputDiskSpoolTypedDict,
96
96
  OutputRingTypedDict,
97
+ OutputStatsdExtTypedDict,
97
98
  OutputGraphiteTypedDict,
98
99
  OutputStatsdTypedDict,
99
- OutputStatsdExtTypedDict,
100
100
  OutputGooglePubsubTypedDict,
101
101
  OutputCriblTCPTypedDict,
102
102
  OutputSplunkTypedDict,
103
103
  OutputSnsTypedDict,
104
104
  OutputCloudwatchTypedDict,
105
- OutputSyslogTypedDict,
106
105
  OutputAzureEventhubTypedDict,
107
106
  OutputWavefrontTypedDict,
108
107
  OutputSignalfxTypedDict,
109
108
  OutputHoneycombTypedDict,
110
- OutputTcpjsonTypedDict,
111
109
  OutputSumoLogicTypedDict,
110
+ OutputCrowdstrikeNextGenSiemTypedDict,
112
111
  OutputHumioHecTypedDict,
112
+ OutputTcpjsonTypedDict,
113
113
  OutputElasticCloudTypedDict,
114
- OutputCrowdstrikeNextGenSiemTypedDict,
115
114
  OutputKinesisTypedDict,
116
115
  OutputConfluentCloudTypedDict,
117
116
  OutputKafkaTypedDict,
@@ -119,6 +118,7 @@ OutputTypedDict = TypeAliasType(
119
118
  OutputNewrelicEventsTypedDict,
120
119
  OutputAzureLogsTypedDict,
121
120
  OutputSplunkLbTypedDict,
121
+ OutputSyslogTypedDict,
122
122
  OutputSqsTypedDict,
123
123
  OutputNewrelicTypedDict,
124
124
  OutputCriblHTTPTypedDict,
@@ -147,8 +147,8 @@ OutputTypedDict = TypeAliasType(
147
147
  OutputSecurityLakeTypedDict,
148
148
  OutputDlS3TypedDict,
149
149
  OutputS3TypedDict,
150
- OutputAzureDataExplorerTypedDict,
151
150
  OutputWebhookTypedDict,
151
+ OutputAzureDataExplorerTypedDict,
152
152
  OutputGoogleCloudLoggingTypedDict,
153
153
  OutputGrafanaCloudTypedDict,
154
154
  ],
@@ -165,24 +165,23 @@ Output = TypeAliasType(
165
165
  OutputNetflow,
166
166
  OutputDiskSpool,
167
167
  OutputRing,
168
+ OutputStatsdExt,
168
169
  OutputGraphite,
169
170
  OutputStatsd,
170
- OutputStatsdExt,
171
171
  OutputGooglePubsub,
172
172
  OutputCriblTCP,
173
173
  OutputSplunk,
174
174
  OutputSns,
175
175
  OutputCloudwatch,
176
- OutputSyslog,
177
176
  OutputAzureEventhub,
178
177
  OutputWavefront,
179
178
  OutputSignalfx,
180
179
  OutputHoneycomb,
181
- OutputTcpjson,
182
180
  OutputSumoLogic,
181
+ OutputCrowdstrikeNextGenSiem,
183
182
  OutputHumioHec,
183
+ OutputTcpjson,
184
184
  OutputElasticCloud,
185
- OutputCrowdstrikeNextGenSiem,
186
185
  OutputKinesis,
187
186
  OutputConfluentCloud,
188
187
  OutputKafka,
@@ -190,6 +189,7 @@ Output = TypeAliasType(
190
189
  OutputNewrelicEvents,
191
190
  OutputAzureLogs,
192
191
  OutputSplunkLb,
192
+ OutputSyslog,
193
193
  OutputSqs,
194
194
  OutputNewrelic,
195
195
  OutputCriblHTTP,
@@ -218,8 +218,8 @@ Output = TypeAliasType(
218
218
  OutputSecurityLake,
219
219
  OutputDlS3,
220
220
  OutputS3,
221
- OutputAzureDataExplorer,
222
221
  OutputWebhook,
222
+ OutputAzureDataExplorer,
223
223
  OutputGoogleCloudLogging,
224
224
  OutputGrafanaCloud,
225
225
  ],
@@ -336,6 +336,8 @@ class OutputAzureDataExplorerTypedDict(TypedDict):
336
336
  pq_mode: NotRequired[OutputAzureDataExplorerMode]
337
337
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
338
338
  pq_controls: NotRequired[OutputAzureDataExplorerPqControlsTypedDict]
339
+ empty_dir_cleanup_sec: NotRequired[float]
340
+ r"""How frequently, in seconds, to clean up empty directories"""
339
341
 
340
342
 
341
343
  class OutputAzureDataExplorer(BaseModel):
@@ -611,3 +613,8 @@ class OutputAzureDataExplorer(BaseModel):
611
613
  pq_controls: Annotated[
612
614
  Optional[OutputAzureDataExplorerPqControls], pydantic.Field(alias="pqControls")
613
615
  ] = None
616
+
617
+ empty_dir_cleanup_sec: Annotated[
618
+ Optional[float], pydantic.Field(alias="emptyDirCleanupSec")
619
+ ] = 300
620
+ r"""How frequently, in seconds, to clean up empty directories"""
@@ -294,6 +294,8 @@ class OutputConfluentCloudAuthenticationTypedDict(TypedDict):
294
294
 
295
295
  disabled: NotRequired[bool]
296
296
  mechanism: NotRequired[OutputConfluentCloudSASLMechanism]
297
+ oauth_enabled: NotRequired[bool]
298
+ r"""Enable OAuth authentication"""
297
299
 
298
300
 
299
301
  class OutputConfluentCloudAuthentication(BaseModel):
@@ -305,6 +307,11 @@ class OutputConfluentCloudAuthentication(BaseModel):
305
307
  OutputConfluentCloudSASLMechanism.PLAIN
306
308
  )
307
309
 
310
+ oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
311
+ False
312
+ )
313
+ r"""Enable OAuth authentication"""
314
+
308
315
 
309
316
  class OutputConfluentCloudBackpressureBehavior(str, Enum):
310
317
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -215,6 +215,8 @@ class OutputKafkaAuthenticationTypedDict(TypedDict):
215
215
 
216
216
  disabled: NotRequired[bool]
217
217
  mechanism: NotRequired[OutputKafkaSASLMechanism]
218
+ oauth_enabled: NotRequired[bool]
219
+ r"""Enable OAuth authentication"""
218
220
 
219
221
 
220
222
  class OutputKafkaAuthentication(BaseModel):
@@ -224,6 +226,11 @@ class OutputKafkaAuthentication(BaseModel):
224
226
 
225
227
  mechanism: Optional[OutputKafkaSASLMechanism] = OutputKafkaSASLMechanism.PLAIN
226
228
 
229
+ oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
230
+ False
231
+ )
232
+ r"""Enable OAuth authentication"""
233
+
227
234
 
228
235
  class OutputKafkaMinimumTLSVersion(str, Enum):
229
236
  TL_SV1 = "TLSv1"
@@ -186,6 +186,43 @@ class OutputSyslogPqControls(BaseModel):
186
186
  pass
187
187
 
188
188
 
189
+ class OutputSyslogTLS(str, Enum):
190
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
191
+
192
+ INHERIT = "inherit"
193
+ OFF = "off"
194
+
195
+
196
+ class OutputSyslogHostTypedDict(TypedDict):
197
+ host: str
198
+ r"""The hostname of the receiver"""
199
+ port: NotRequired[float]
200
+ r"""The port to connect to on the provided host"""
201
+ tls: NotRequired[OutputSyslogTLS]
202
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
203
+ servername: NotRequired[str]
204
+ r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
205
+ weight: NotRequired[float]
206
+ r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
207
+
208
+
209
+ class OutputSyslogHost(BaseModel):
210
+ host: str
211
+ r"""The hostname of the receiver"""
212
+
213
+ port: Optional[float] = 9997
214
+ r"""The port to connect to on the provided host"""
215
+
216
+ tls: Optional[OutputSyslogTLS] = OutputSyslogTLS.INHERIT
217
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
218
+
219
+ servername: Optional[str] = None
220
+ r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
221
+
222
+ weight: Optional[float] = 1
223
+ r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
224
+
225
+
189
226
  class OutputSyslogTypedDict(TypedDict):
190
227
  type: OutputSyslogType
191
228
  id: NotRequired[str]
@@ -247,6 +284,16 @@ class OutputSyslogTypedDict(TypedDict):
247
284
  pq_mode: NotRequired[OutputSyslogMode]
248
285
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
249
286
  pq_controls: NotRequired[OutputSyslogPqControlsTypedDict]
287
+ dns_resolve_period_sec: NotRequired[float]
288
+ r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
289
+ load_balance_stats_period_sec: NotRequired[float]
290
+ r"""How far back in time to keep traffic stats for load balancing purposes"""
291
+ max_concurrent_senders: NotRequired[float]
292
+ r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
293
+ exclude_self: NotRequired[bool]
294
+ r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
295
+ hosts: NotRequired[List[OutputSyslogHostTypedDict]]
296
+ r"""Set of hosts to load-balance data to."""
250
297
 
251
298
 
252
299
  class OutputSyslog(BaseModel):
@@ -379,3 +426,24 @@ class OutputSyslog(BaseModel):
379
426
  pq_controls: Annotated[
380
427
  Optional[OutputSyslogPqControls], pydantic.Field(alias="pqControls")
381
428
  ] = None
429
+
430
+ dns_resolve_period_sec: Annotated[
431
+ Optional[float], pydantic.Field(alias="dnsResolvePeriodSec")
432
+ ] = 600
433
+ r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
434
+
435
+ load_balance_stats_period_sec: Annotated[
436
+ Optional[float], pydantic.Field(alias="loadBalanceStatsPeriodSec")
437
+ ] = 300
438
+ r"""How far back in time to keep traffic stats for load balancing purposes"""
439
+
440
+ max_concurrent_senders: Annotated[
441
+ Optional[float], pydantic.Field(alias="maxConcurrentSenders")
442
+ ] = 0
443
+ r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
444
+
445
+ exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
446
+ r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
447
+
448
+ hosts: Optional[List[OutputSyslogHost]] = None
449
+ r"""Set of hosts to load-balance data to."""
@@ -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.43
3
+ Version: 0.0.44
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=VElA5ZVotJCns5QrpZ59vgb5LZiOMNVpE-QEXJ438Ec,542
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=q8EFv0n_LFkB4UD81DAuU035lK912onWwcoDQMCLMhQ,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=QbNNiWNPbtj2voHgWyxZpqle6XFcxFHR0LBIWWVmPyE,386370
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
@@ -111,7 +111,7 @@ cribl_control_plane/models/input.py,sha256=Zd6wdxKwa9pdoT3GmGKnlzwhV8oqIKG2CAnjy
111
111
  cribl_control_plane/models/inputappscope.py,sha256=DXKjLQXUGBicb8vBbDS_BxBh4jHq7sxgrr1IiDqj4NM,20233
112
112
  cribl_control_plane/models/inputazureblob.py,sha256=XKOgRtB0ThQLMWU9rS5yxS3ffXb_gRy9tbCJPUQkJns,15124
113
113
  cribl_control_plane/models/inputcollection.py,sha256=PwhhEEsoN2rHraPbNBvGjtaD3-weAh-V1WsHFEl7blk,9573
114
- cribl_control_plane/models/inputconfluentcloud.py,sha256=POiEfHq2SMK5x8Ia4uLBE5qe9xxzNHbX-gxA-m0UJWA,29167
114
+ cribl_control_plane/models/inputconfluentcloud.py,sha256=cU1vXECisSNXqBymS6jq84KClbI9jgdBcCxvyF19edA,29390
115
115
  cribl_control_plane/models/inputcribl.py,sha256=TS0xr5-ctqOQtqdQh1jYPnN_FXeIp8xiW1GW5m5T1rU,7239
116
116
  cribl_control_plane/models/inputcriblhttp.py,sha256=hQk3O9ywlQ-4Dlu9i-qSqiJAYjp2zmSfj7QtJBk8ZcE,15608
117
117
  cribl_control_plane/models/inputcribllakehttp.py,sha256=neJQkmPQwOjaAILORr4SQr5SvrNBAuRnRsGtW9erxlg,19118
@@ -131,7 +131,7 @@ cribl_control_plane/models/inputgrafana.py,sha256=n-SX8dFgmMWbs1coccHrm_UvL-lQwW
131
131
  cribl_control_plane/models/inputhttp.py,sha256=kpxmD1Y5qSMuKvKrqnTp898Vh_-nl9135y4TYKvlgqM,18322
132
132
  cribl_control_plane/models/inputhttpraw.py,sha256=fhCig9DZTr3s80zZDZMd2sVkmF6v56_rPMg_d9PQ7VY,18709
133
133
  cribl_control_plane/models/inputjournalfiles.py,sha256=eAYa9vG4_cap5-NQnTj24o-uVo4wPbhyHE-_gChJaRc,9711
134
- cribl_control_plane/models/inputkafka.py,sha256=iPS6q46-0TiMbud2nu6CCruR4jl70f0cjIZn0bUT6AQ,28641
134
+ cribl_control_plane/models/inputkafka.py,sha256=vtRmkm5vbUbHW_LWMlTgz5vBhrrbA_N-kGodUlmGPyY,28864
135
135
  cribl_control_plane/models/inputkinesis.py,sha256=2C35b8nYIA51lSxBQd2bSspmQcWkQgwDVq8tdz9uWZM,15724
136
136
  cribl_control_plane/models/inputkubeevents.py,sha256=2UN2j3ITobx2c2hqXYvCnw-r0qwfUZIcdnBkqM8QQXw,8011
137
137
  cribl_control_plane/models/inputkubelogs.py,sha256=rrUYucBJNY-Nbf2RCimTrHkaEieccoYmLYcWylb4DnU,12115
@@ -186,14 +186,14 @@ cribl_control_plane/models/nodeprovidedinfo.py,sha256=lw5JFVcnoetmbF0XSxX4Cyw0_Q
186
186
  cribl_control_plane/models/nodeskippedupgradestatus.py,sha256=wJYUEDcCTx6Mrivh_0uEGspLenHKueWE9mVcjTycaL8,226
187
187
  cribl_control_plane/models/nodeupgradestate.py,sha256=8zbj0lofMbq89B3lv5gEIS7d1DKHINxQtdqptVE3sSQ,218
188
188
  cribl_control_plane/models/nodeupgradestatus.py,sha256=HlNRUmka5xuPdL-2UupJIe5q1_imCKHUWQQBTIpDCHM,966
189
- cribl_control_plane/models/output.py,sha256=4dz6DHqu2ygAYHLcSwv95lnk9tsoQN99c8_M0kscp6U,8695
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=BXSQBt04zbut9kK0OSrCMHDGONbnBZ9iLrlpBBACskM,30054
191
+ cribl_control_plane/models/outputazuredataexplorer.py,sha256=qlh62CqqmYcQ8Qc6ij-6m09KmQwqPhMexFeBaH1Ry8w,30357
192
192
  cribl_control_plane/models/outputazureeventhub.py,sha256=2-4l-5D5Q5UgKcAd_ZrlCyUipYboPPWRFMOV3dL9Vg8,14767
193
193
  cribl_control_plane/models/outputazurelogs.py,sha256=EIQA99AD9e1r-ht9QPDg3DZN0IN282_vRlcmQd1wNVA,19603
194
194
  cribl_control_plane/models/outputclickhouse.py,sha256=kW8awWvrTcn4lSj1SZdFZwRTwkqFcB9VG8D2ENtQWVs,29121
195
195
  cribl_control_plane/models/outputcloudwatch.py,sha256=ShVZ5c4FKiqy9pY0XKQH-fLIsWYUtAepdKy-ghoRaOQ,11924
196
- cribl_control_plane/models/outputconfluentcloud.py,sha256=ztvqS-QMlNBjo9KSdu5uwKz2P_WjMhccA8UKEtgMosE,26199
196
+ cribl_control_plane/models/outputconfluentcloud.py,sha256=XDieWfvZaAM9AeENcVNfhvRJ6En0RIPtKIhX-WzPmZc,26422
197
197
  cribl_control_plane/models/outputcriblhttp.py,sha256=R3IjucGHDhGorOrhNFH8SFefOLLkZQQ2HKfP1i8xbuQ,22966
198
198
  cribl_control_plane/models/outputcribllake.py,sha256=SzZGDLCYwi7UPqI1QcdpaYVvrRbiqxJbR73r35-0FLI,16802
199
199
  cribl_control_plane/models/outputcribltcp.py,sha256=AcPGSEQ97oTEEnrkFTloq0l057TZJxVOQmn5rxmA-wM,16407
@@ -219,7 +219,7 @@ cribl_control_plane/models/outputgraphite.py,sha256=96YvOtlivN9IxPvVerjj_30RNfnn
219
219
  cribl_control_plane/models/outputhoneycomb.py,sha256=-XgAb04SQ5Bg9W2ZeUH0RdMXptYS0fRFtCzhb7bRpvA,17091
220
220
  cribl_control_plane/models/outputhumiohec.py,sha256=7A4gV6-6cyfW-PxFI6AmfG7Fu3LWPfpByaBcKLW8Iw0,18300
221
221
  cribl_control_plane/models/outputinfluxdb.py,sha256=_UfshiBXt3OE0VsJM8jQrC6IJDQVBGjkFpGEcka3npI,23740
222
- cribl_control_plane/models/outputkafka.py,sha256=1DqBcya7259tAXaOxuhduvbe03GUNe34At0U3zUB78g,25545
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
225
225
  cribl_control_plane/models/outputminio.py,sha256=k2DCu82KnFRwtnnbAS4js_54jqJTDDrU8kaKFpp114U,22291
@@ -247,7 +247,7 @@ cribl_control_plane/models/outputsqs.py,sha256=yU_s7HvbZrlS9gsNuOVZw2lLfPkcytmlz
247
247
  cribl_control_plane/models/outputstatsd.py,sha256=9y5evh_vSTptkzztDxgVohP4WKiMgZQXKUN2-YjA3MU,9708
248
248
  cribl_control_plane/models/outputstatsdext.py,sha256=BEHdxjGNVQ74WfBxk52UvBk1k7u-yQ0uIF_8_Oh4FUg,9801
249
249
  cribl_control_plane/models/outputsumologic.py,sha256=IHrIxdgjVKGwiQuE5kKjemPY7YapkXLX9d4NXACe8ss,18061
250
- cribl_control_plane/models/outputsyslog.py,sha256=38Tzcqc682yqZnuu5hepDJShUicB0pHabKTH3ENyAk4,16809
250
+ cribl_control_plane/models/outputsyslog.py,sha256=Sora557qH46NyHf-SOEWVnhGxJSpCeQzPAV-LrLD3qw,19950
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
@@ -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.43.dist-info/METADATA,sha256=hDv0cZ8PxfPHPcjCChgF2lfHPJnt7MQhSSdYRVemlck,38832
324
- cribl_control_plane-0.0.43.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
325
- cribl_control_plane-0.0.43.dist-info/RECORD,,
323
+ cribl_control_plane-0.0.44.dist-info/METADATA,sha256=Cf72xDRBJumVxzrkwUa2HqcrnYascsAEbQjs_08G7nA,38832
324
+ cribl_control_plane-0.0.44.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
325
+ cribl_control_plane-0.0.44.dist-info/RECORD,,