cribl-control-plane 0.3.0b3__py3-none-any.whl → 0.3.0b5__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (152) hide show
  1. cribl_control_plane/_version.py +4 -4
  2. cribl_control_plane/models/__init__.py +111 -3
  3. cribl_control_plane/models/cacheconnection.py +20 -0
  4. cribl_control_plane/models/configgroup.py +20 -1
  5. cribl_control_plane/models/configgroupcloud.py +11 -1
  6. cribl_control_plane/models/createconfiggroupbyproductop.py +11 -0
  7. cribl_control_plane/models/cribllakedataset.py +11 -1
  8. cribl_control_plane/models/cribllakedatasetupdate.py +11 -1
  9. cribl_control_plane/models/datasetmetadata.py +11 -1
  10. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +11 -0
  11. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +20 -0
  12. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +20 -0
  13. cribl_control_plane/models/getconfiggroupbyproductandidop.py +11 -0
  14. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +11 -0
  15. cribl_control_plane/models/getsummaryop.py +11 -0
  16. cribl_control_plane/models/groupcreaterequest.py +20 -1
  17. cribl_control_plane/models/hbcriblinfo.py +11 -1
  18. cribl_control_plane/models/healthserverstatus.py +20 -1
  19. cribl_control_plane/models/input.py +15 -15
  20. cribl_control_plane/models/inputappscope.py +76 -17
  21. cribl_control_plane/models/inputazureblob.py +29 -1
  22. cribl_control_plane/models/inputcollection.py +20 -1
  23. cribl_control_plane/models/inputconfluentcloud.py +188 -1
  24. cribl_control_plane/models/inputcribl.py +20 -1
  25. cribl_control_plane/models/inputcriblhttp.py +58 -17
  26. cribl_control_plane/models/inputcribllakehttp.py +58 -17
  27. cribl_control_plane/models/inputcriblmetrics.py +20 -1
  28. cribl_control_plane/models/inputcribltcp.py +58 -17
  29. cribl_control_plane/models/inputcrowdstrike.py +47 -1
  30. cribl_control_plane/models/inputdatadogagent.py +58 -17
  31. cribl_control_plane/models/inputdatagen.py +20 -1
  32. cribl_control_plane/models/inputedgeprometheus.py +138 -37
  33. cribl_control_plane/models/inputelastic.py +108 -27
  34. cribl_control_plane/models/inputeventhub.py +176 -1
  35. cribl_control_plane/models/inputexec.py +29 -1
  36. cribl_control_plane/models/inputfile.py +36 -3
  37. cribl_control_plane/models/inputfirehose.py +58 -17
  38. cribl_control_plane/models/inputgooglepubsub.py +29 -1
  39. cribl_control_plane/models/inputgrafana.py +149 -32
  40. cribl_control_plane/models/inputhttp.py +58 -17
  41. cribl_control_plane/models/inputhttpraw.py +58 -17
  42. cribl_control_plane/models/inputjournalfiles.py +20 -1
  43. cribl_control_plane/models/inputkafka.py +182 -1
  44. cribl_control_plane/models/inputkinesis.py +65 -1
  45. cribl_control_plane/models/inputkubeevents.py +20 -1
  46. cribl_control_plane/models/inputkubelogs.py +29 -1
  47. cribl_control_plane/models/inputkubemetrics.py +29 -1
  48. cribl_control_plane/models/inputloki.py +67 -17
  49. cribl_control_plane/models/inputmetrics.py +58 -17
  50. cribl_control_plane/models/inputmodeldriventelemetry.py +58 -17
  51. cribl_control_plane/models/inputmsk.py +74 -1
  52. cribl_control_plane/models/inputnetflow.py +20 -1
  53. cribl_control_plane/models/inputoffice365mgmt.py +56 -1
  54. cribl_control_plane/models/inputoffice365msgtrace.py +56 -1
  55. cribl_control_plane/models/inputoffice365service.py +56 -1
  56. cribl_control_plane/models/inputopentelemetry.py +84 -16
  57. cribl_control_plane/models/inputprometheus.py +131 -37
  58. cribl_control_plane/models/inputprometheusrw.py +67 -17
  59. cribl_control_plane/models/inputrawudp.py +20 -1
  60. cribl_control_plane/models/inputs3.py +38 -1
  61. cribl_control_plane/models/inputs3inventory.py +47 -1
  62. cribl_control_plane/models/inputsecuritylake.py +47 -1
  63. cribl_control_plane/models/inputsnmp.py +29 -1
  64. cribl_control_plane/models/inputsplunk.py +76 -17
  65. cribl_control_plane/models/inputsplunkhec.py +66 -16
  66. cribl_control_plane/models/inputsplunksearch.py +56 -1
  67. cribl_control_plane/models/inputsqs.py +47 -1
  68. cribl_control_plane/models/inputsyslog.py +113 -32
  69. cribl_control_plane/models/inputsystemmetrics.py +110 -9
  70. cribl_control_plane/models/inputsystemstate.py +29 -1
  71. cribl_control_plane/models/inputtcp.py +77 -17
  72. cribl_control_plane/models/inputtcpjson.py +67 -17
  73. cribl_control_plane/models/inputwef.py +65 -1
  74. cribl_control_plane/models/inputwindowsmetrics.py +101 -9
  75. cribl_control_plane/models/inputwineventlogs.py +52 -1
  76. cribl_control_plane/models/inputwiz.py +38 -1
  77. cribl_control_plane/models/inputwizwebhook.py +58 -17
  78. cribl_control_plane/models/inputzscalerhec.py +66 -16
  79. cribl_control_plane/models/listconfiggroupbyproductop.py +11 -0
  80. cribl_control_plane/models/masterworkerentry.py +11 -1
  81. cribl_control_plane/models/nodeupgradestatus.py +38 -0
  82. cribl_control_plane/models/output.py +21 -21
  83. cribl_control_plane/models/outputazureblob.py +90 -1
  84. cribl_control_plane/models/outputazuredataexplorer.py +430 -93
  85. cribl_control_plane/models/outputazureeventhub.py +267 -22
  86. cribl_control_plane/models/outputazurelogs.py +105 -22
  87. cribl_control_plane/models/outputchronicle.py +105 -22
  88. cribl_control_plane/models/outputclickhouse.py +141 -22
  89. cribl_control_plane/models/outputcloudwatch.py +96 -22
  90. cribl_control_plane/models/outputconfluentcloud.py +290 -23
  91. cribl_control_plane/models/outputcriblhttp.py +123 -22
  92. cribl_control_plane/models/outputcribllake.py +76 -1
  93. cribl_control_plane/models/outputcribltcp.py +123 -22
  94. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +117 -23
  95. cribl_control_plane/models/outputdatabricks.py +72 -1
  96. cribl_control_plane/models/outputdatadog.py +132 -22
  97. cribl_control_plane/models/outputdataset.py +123 -22
  98. cribl_control_plane/models/outputdiskspool.py +11 -1
  99. cribl_control_plane/models/outputdls3.py +117 -1
  100. cribl_control_plane/models/outputdynatracehttp.py +141 -22
  101. cribl_control_plane/models/outputdynatraceotlp.py +141 -22
  102. cribl_control_plane/models/outputelastic.py +148 -22
  103. cribl_control_plane/models/outputelasticcloud.py +130 -22
  104. cribl_control_plane/models/outputexabeam.py +47 -1
  105. cribl_control_plane/models/outputfilesystem.py +72 -1
  106. cribl_control_plane/models/outputgooglechronicle.py +148 -23
  107. cribl_control_plane/models/outputgooglecloudlogging.py +115 -23
  108. cribl_control_plane/models/outputgooglecloudstorage.py +108 -1
  109. cribl_control_plane/models/outputgooglepubsub.py +96 -22
  110. cribl_control_plane/models/outputgrafanacloud.py +244 -43
  111. cribl_control_plane/models/outputgraphite.py +96 -22
  112. cribl_control_plane/models/outputhoneycomb.py +105 -22
  113. cribl_control_plane/models/outputhumiohec.py +114 -22
  114. cribl_control_plane/models/outputinfluxdb.py +114 -22
  115. cribl_control_plane/models/outputkafka.py +281 -20
  116. cribl_control_plane/models/outputkinesis.py +121 -22
  117. cribl_control_plane/models/outputloki.py +112 -20
  118. cribl_control_plane/models/outputminio.py +117 -1
  119. cribl_control_plane/models/outputmsk.py +173 -20
  120. cribl_control_plane/models/outputnewrelic.py +123 -22
  121. cribl_control_plane/models/outputnewrelicevents.py +115 -23
  122. cribl_control_plane/models/outputopentelemetry.py +159 -22
  123. cribl_control_plane/models/outputprometheus.py +105 -22
  124. cribl_control_plane/models/outputring.py +29 -1
  125. cribl_control_plane/models/outputs3.py +117 -1
  126. cribl_control_plane/models/outputsecuritylake.py +85 -1
  127. cribl_control_plane/models/outputsentinel.py +123 -22
  128. cribl_control_plane/models/outputsentineloneaisiem.py +124 -23
  129. cribl_control_plane/models/outputservicenow.py +150 -22
  130. cribl_control_plane/models/outputsignalfx.py +105 -22
  131. cribl_control_plane/models/outputsns.py +103 -20
  132. cribl_control_plane/models/outputsplunk.py +141 -22
  133. cribl_control_plane/models/outputsplunkhec.py +198 -22
  134. cribl_control_plane/models/outputsplunklb.py +170 -22
  135. cribl_control_plane/models/outputsqs.py +112 -20
  136. cribl_control_plane/models/outputstatsd.py +96 -22
  137. cribl_control_plane/models/outputstatsdext.py +96 -22
  138. cribl_control_plane/models/outputsumologic.py +105 -22
  139. cribl_control_plane/models/outputsyslog.py +238 -99
  140. cribl_control_plane/models/outputtcpjson.py +132 -22
  141. cribl_control_plane/models/outputwavefront.py +105 -22
  142. cribl_control_plane/models/outputwebhook.py +141 -22
  143. cribl_control_plane/models/outputxsiam.py +103 -20
  144. cribl_control_plane/models/resourcepolicy.py +11 -0
  145. cribl_control_plane/models/runnablejobcollection.py +68 -9
  146. cribl_control_plane/models/runnablejobexecutor.py +32 -9
  147. cribl_control_plane/models/runnablejobscheduledsearch.py +23 -9
  148. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +11 -0
  149. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +11 -0
  150. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b5.dist-info}/METADATA +1 -1
  151. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b5.dist-info}/RECORD +152 -152
  152. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b5.dist-info}/WHEEL +0 -0
@@ -1,13 +1,14 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from cribl_control_plane import utils
4
+ from cribl_control_plane import models, utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
+ from pydantic import field_serializer
9
10
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
11
+ from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
12
13
 
13
14
 
@@ -106,6 +107,24 @@ class InputElasticPq(BaseModel):
106
107
  Optional[InputElasticPqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputElasticMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputElasticCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
109
128
 
110
129
  class InputElasticMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
111
130
  TL_SV1 = "TLSv1"
@@ -123,6 +142,12 @@ class InputElasticMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
142
 
124
143
  class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
125
144
  disabled: NotRequired[bool]
145
+ request_cert: NotRequired[bool]
146
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
147
+ reject_unauthorized: NotRequired[bool]
148
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
149
+ common_name_regex: NotRequired[str]
150
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
126
151
  certificate_name: NotRequired[str]
127
152
  r"""The name of the predefined certificate"""
128
153
  priv_key_path: NotRequired[str]
@@ -133,10 +158,6 @@ class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
133
158
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
134
159
  ca_path: NotRequired[str]
135
160
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
136
- request_cert: NotRequired[bool]
137
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
138
- reject_unauthorized: NotRequired[Any]
139
- common_name_regex: NotRequired[Any]
140
161
  min_version: NotRequired[InputElasticMinimumTLSVersion]
141
162
  max_version: NotRequired[InputElasticMaximumTLSVersion]
142
163
 
@@ -144,6 +165,19 @@ class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
144
165
  class InputElasticTLSSettingsServerSide(BaseModel):
145
166
  disabled: Optional[bool] = True
146
167
 
168
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
169
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
170
+
171
+ reject_unauthorized: Annotated[
172
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
173
+ ] = True
174
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
175
+
176
+ common_name_regex: Annotated[
177
+ Optional[str], pydantic.Field(alias="commonNameRegex")
178
+ ] = "/.*/"
179
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
180
+
147
181
  certificate_name: Annotated[
148
182
  Optional[str], pydantic.Field(alias="certificateName")
149
183
  ] = None
@@ -161,17 +195,6 @@ class InputElasticTLSSettingsServerSide(BaseModel):
161
195
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
162
196
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
163
197
 
164
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
165
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
166
-
167
- reject_unauthorized: Annotated[
168
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
169
- ] = None
170
-
171
- common_name_regex: Annotated[
172
- Optional[Any], pydantic.Field(alias="commonNameRegex")
173
- ] = None
174
-
175
198
  min_version: Annotated[
176
199
  Annotated[
177
200
  Optional[InputElasticMinimumTLSVersion],
@@ -188,6 +211,24 @@ class InputElasticTLSSettingsServerSide(BaseModel):
188
211
  pydantic.Field(alias="maxVersion"),
189
212
  ] = None
190
213
 
214
+ @field_serializer("min_version")
215
+ def serialize_min_version(self, value):
216
+ if isinstance(value, str):
217
+ try:
218
+ return models.InputElasticMinimumTLSVersion(value)
219
+ except ValueError:
220
+ return value
221
+ return value
222
+
223
+ @field_serializer("max_version")
224
+ def serialize_max_version(self, value):
225
+ if isinstance(value, str):
226
+ try:
227
+ return models.InputElasticMaximumTLSVersion(value)
228
+ except ValueError:
229
+ return value
230
+ return value
231
+
191
232
 
192
233
  class InputElasticAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
193
234
  # None
@@ -246,6 +287,12 @@ class InputElasticAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
246
287
  class InputElasticProxyModeTypedDict(TypedDict):
247
288
  enabled: NotRequired[bool]
248
289
  r"""Enable proxying of non-bulk API requests to an external Elastic server. Enable this only if you understand the implications. See [Cribl Docs](https://docs.cribl.io/stream/sources-elastic/#proxy-mode) for more details."""
290
+ auth_type: NotRequired[InputElasticAuthenticationMethod]
291
+ r"""Enter credentials directly, or select a stored secret"""
292
+ username: NotRequired[str]
293
+ password: NotRequired[str]
294
+ credentials_secret: NotRequired[str]
295
+ r"""Select or create a secret that references your credentials"""
249
296
  url: NotRequired[str]
250
297
  r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
251
298
  reject_unauthorized: NotRequired[bool]
@@ -254,14 +301,30 @@ class InputElasticProxyModeTypedDict(TypedDict):
254
301
  r"""List of headers to remove from the request to proxy"""
255
302
  timeout_sec: NotRequired[float]
256
303
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
257
- auth_type: NotRequired[InputElasticAuthenticationMethod]
258
- r"""Enter credentials directly, or select a stored secret"""
259
304
 
260
305
 
261
306
  class InputElasticProxyMode(BaseModel):
262
307
  enabled: Optional[bool] = False
263
308
  r"""Enable proxying of non-bulk API requests to an external Elastic server. Enable this only if you understand the implications. See [Cribl Docs](https://docs.cribl.io/stream/sources-elastic/#proxy-mode) for more details."""
264
309
 
310
+ auth_type: Annotated[
311
+ Annotated[
312
+ Optional[InputElasticAuthenticationMethod],
313
+ PlainValidator(validate_open_enum(False)),
314
+ ],
315
+ pydantic.Field(alias="authType"),
316
+ ] = InputElasticAuthenticationMethod.NONE
317
+ r"""Enter credentials directly, or select a stored secret"""
318
+
319
+ username: Optional[str] = None
320
+
321
+ password: Optional[str] = None
322
+
323
+ credentials_secret: Annotated[
324
+ Optional[str], pydantic.Field(alias="credentialsSecret")
325
+ ] = None
326
+ r"""Select or create a secret that references your credentials"""
327
+
265
328
  url: Optional[str] = None
266
329
  r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
267
330
 
@@ -278,14 +341,14 @@ class InputElasticProxyMode(BaseModel):
278
341
  timeout_sec: Annotated[Optional[float], pydantic.Field(alias="timeoutSec")] = 60
279
342
  r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
280
343
 
281
- auth_type: Annotated[
282
- Annotated[
283
- Optional[InputElasticAuthenticationMethod],
284
- PlainValidator(validate_open_enum(False)),
285
- ],
286
- pydantic.Field(alias="authType"),
287
- ] = InputElasticAuthenticationMethod.NONE
288
- r"""Enter credentials directly, or select a stored secret"""
344
+ @field_serializer("auth_type")
345
+ def serialize_auth_type(self, value):
346
+ if isinstance(value, str):
347
+ try:
348
+ return models.InputElasticAuthenticationMethod(value)
349
+ except ValueError:
350
+ return value
351
+ return value
289
352
 
290
353
 
291
354
  class InputElasticTypedDict(TypedDict):
@@ -516,3 +579,21 @@ class InputElastic(BaseModel):
516
579
  "}"
517
580
  )
518
581
  r"""Custom version information to respond to requests"""
582
+
583
+ @field_serializer("auth_type")
584
+ def serialize_auth_type(self, value):
585
+ if isinstance(value, str):
586
+ try:
587
+ return models.InputElasticAuthenticationType(value)
588
+ except ValueError:
589
+ return value
590
+ return value
591
+
592
+ @field_serializer("api_version")
593
+ def serialize_api_version(self, value):
594
+ if isinstance(value, str):
595
+ try:
596
+ return models.InputElasticAPIVersion(value)
597
+ except ValueError:
598
+ return value
599
+ return value
@@ -1,11 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from cribl_control_plane import utils
4
+ from cribl_control_plane import models, utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
+ from pydantic import field_serializer
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -106,6 +107,33 @@ class InputEventhubPq(BaseModel):
106
107
  Optional[InputEventhubPqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputEventhubMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputEventhubCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
128
+
129
+ class InputEventhubAuthTypeAuthenticationMethod(
130
+ str, Enum, metaclass=utils.OpenEnumMeta
131
+ ):
132
+ r"""Enter password directly, or select a stored secret"""
133
+
134
+ MANUAL = "manual"
135
+ SECRET = "secret"
136
+
109
137
 
110
138
  class InputEventhubSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
111
139
  # PLAIN
@@ -114,11 +142,57 @@ class InputEventhubSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
114
142
  OAUTHBEARER = "oauthbearer"
115
143
 
116
144
 
145
+ class InputEventhubClientSecretAuthTypeAuthenticationMethod(
146
+ str, Enum, metaclass=utils.OpenEnumMeta
147
+ ):
148
+ MANUAL = "manual"
149
+ SECRET = "secret"
150
+ CERTIFICATE = "certificate"
151
+
152
+
153
+ class InputEventhubMicrosoftEntraIDAuthenticationEndpoint(
154
+ str, Enum, metaclass=utils.OpenEnumMeta
155
+ ):
156
+ r"""Endpoint used to acquire authentication tokens from Azure"""
157
+
158
+ HTTPS_LOGIN_MICROSOFTONLINE_COM = "https://login.microsoftonline.com"
159
+ HTTPS_LOGIN_MICROSOFTONLINE_US = "https://login.microsoftonline.us"
160
+ HTTPS_LOGIN_PARTNER_MICROSOFTONLINE_CN = "https://login.partner.microsoftonline.cn"
161
+
162
+
117
163
  class InputEventhubAuthenticationTypedDict(TypedDict):
118
164
  r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
119
165
 
120
166
  disabled: NotRequired[bool]
167
+ auth_type: NotRequired[InputEventhubAuthTypeAuthenticationMethod]
168
+ r"""Enter password directly, or select a stored secret"""
169
+ password: NotRequired[str]
170
+ r"""Connection-string primary key, or connection-string secondary key, from the Event Hubs workspace"""
171
+ text_secret: NotRequired[str]
172
+ r"""Select or create a stored text secret"""
121
173
  mechanism: NotRequired[InputEventhubSASLMechanism]
174
+ username: NotRequired[str]
175
+ r"""The username for authentication. For Event Hubs, this should always be $ConnectionString."""
176
+ client_secret_auth_type: NotRequired[
177
+ InputEventhubClientSecretAuthTypeAuthenticationMethod
178
+ ]
179
+ client_secret: NotRequired[str]
180
+ r"""client_secret to pass in the OAuth request parameter"""
181
+ client_text_secret: NotRequired[str]
182
+ r"""Select or create a stored text secret"""
183
+ certificate_name: NotRequired[str]
184
+ r"""Select or create a stored certificate"""
185
+ cert_path: NotRequired[str]
186
+ priv_key_path: NotRequired[str]
187
+ passphrase: NotRequired[str]
188
+ oauth_endpoint: NotRequired[InputEventhubMicrosoftEntraIDAuthenticationEndpoint]
189
+ r"""Endpoint used to acquire authentication tokens from Azure"""
190
+ client_id: NotRequired[str]
191
+ r"""client_id to pass in the OAuth request parameter"""
192
+ tenant_id: NotRequired[str]
193
+ r"""Directory ID (tenant identifier) in Azure Active Directory"""
194
+ scope: NotRequired[str]
195
+ r"""Scope to pass in the OAuth request parameter"""
122
196
 
123
197
 
124
198
  class InputEventhubAuthentication(BaseModel):
@@ -126,10 +200,111 @@ class InputEventhubAuthentication(BaseModel):
126
200
 
127
201
  disabled: Optional[bool] = False
128
202
 
203
+ auth_type: Annotated[
204
+ Annotated[
205
+ Optional[InputEventhubAuthTypeAuthenticationMethod],
206
+ PlainValidator(validate_open_enum(False)),
207
+ ],
208
+ pydantic.Field(alias="authType"),
209
+ ] = InputEventhubAuthTypeAuthenticationMethod.MANUAL
210
+ r"""Enter password directly, or select a stored secret"""
211
+
212
+ password: Optional[str] = None
213
+ r"""Connection-string primary key, or connection-string secondary key, from the Event Hubs workspace"""
214
+
215
+ text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
216
+ r"""Select or create a stored text secret"""
217
+
129
218
  mechanism: Annotated[
130
219
  Optional[InputEventhubSASLMechanism], PlainValidator(validate_open_enum(False))
131
220
  ] = InputEventhubSASLMechanism.PLAIN
132
221
 
222
+ username: Optional[str] = "$ConnectionString"
223
+ r"""The username for authentication. For Event Hubs, this should always be $ConnectionString."""
224
+
225
+ client_secret_auth_type: Annotated[
226
+ Annotated[
227
+ Optional[InputEventhubClientSecretAuthTypeAuthenticationMethod],
228
+ PlainValidator(validate_open_enum(False)),
229
+ ],
230
+ pydantic.Field(alias="clientSecretAuthType"),
231
+ ] = InputEventhubClientSecretAuthTypeAuthenticationMethod.MANUAL
232
+
233
+ client_secret: Annotated[Optional[str], pydantic.Field(alias="clientSecret")] = None
234
+ r"""client_secret to pass in the OAuth request parameter"""
235
+
236
+ client_text_secret: Annotated[
237
+ Optional[str], pydantic.Field(alias="clientTextSecret")
238
+ ] = None
239
+ r"""Select or create a stored text secret"""
240
+
241
+ certificate_name: Annotated[
242
+ Optional[str], pydantic.Field(alias="certificateName")
243
+ ] = None
244
+ r"""Select or create a stored certificate"""
245
+
246
+ cert_path: Annotated[Optional[str], pydantic.Field(alias="certPath")] = None
247
+
248
+ priv_key_path: Annotated[Optional[str], pydantic.Field(alias="privKeyPath")] = None
249
+
250
+ passphrase: Optional[str] = None
251
+
252
+ oauth_endpoint: Annotated[
253
+ Annotated[
254
+ Optional[InputEventhubMicrosoftEntraIDAuthenticationEndpoint],
255
+ PlainValidator(validate_open_enum(False)),
256
+ ],
257
+ pydantic.Field(alias="oauthEndpoint"),
258
+ ] = InputEventhubMicrosoftEntraIDAuthenticationEndpoint.HTTPS_LOGIN_MICROSOFTONLINE_COM
259
+ r"""Endpoint used to acquire authentication tokens from Azure"""
260
+
261
+ client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
262
+ r"""client_id to pass in the OAuth request parameter"""
263
+
264
+ tenant_id: Annotated[Optional[str], pydantic.Field(alias="tenantId")] = None
265
+ r"""Directory ID (tenant identifier) in Azure Active Directory"""
266
+
267
+ scope: Optional[str] = None
268
+ r"""Scope to pass in the OAuth request parameter"""
269
+
270
+ @field_serializer("auth_type")
271
+ def serialize_auth_type(self, value):
272
+ if isinstance(value, str):
273
+ try:
274
+ return models.InputEventhubAuthTypeAuthenticationMethod(value)
275
+ except ValueError:
276
+ return value
277
+ return value
278
+
279
+ @field_serializer("mechanism")
280
+ def serialize_mechanism(self, value):
281
+ if isinstance(value, str):
282
+ try:
283
+ return models.InputEventhubSASLMechanism(value)
284
+ except ValueError:
285
+ return value
286
+ return value
287
+
288
+ @field_serializer("client_secret_auth_type")
289
+ def serialize_client_secret_auth_type(self, value):
290
+ if isinstance(value, str):
291
+ try:
292
+ return models.InputEventhubClientSecretAuthTypeAuthenticationMethod(
293
+ value
294
+ )
295
+ except ValueError:
296
+ return value
297
+ return value
298
+
299
+ @field_serializer("oauth_endpoint")
300
+ def serialize_oauth_endpoint(self, value):
301
+ if isinstance(value, str):
302
+ try:
303
+ return models.InputEventhubMicrosoftEntraIDAuthenticationEndpoint(value)
304
+ except ValueError:
305
+ return value
306
+ return value
307
+
133
308
 
134
309
  class InputEventhubTLSSettingsClientSideTypedDict(TypedDict):
135
310
  disabled: NotRequired[bool]
@@ -1,11 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from cribl_control_plane import utils
4
+ from cribl_control_plane import models, utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
+ from pydantic import field_serializer
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -106,6 +107,24 @@ class InputExecPq(BaseModel):
106
107
  Optional[InputExecPqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputExecMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputExecCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
109
128
 
110
129
  class ScheduleType(str, Enum, metaclass=utils.OpenEnumMeta):
111
130
  r"""Select a schedule type; either an interval (in seconds) or a cron-style schedule."""
@@ -228,3 +247,12 @@ class InputExec(BaseModel):
228
247
  "* * * * *"
229
248
  )
230
249
  r"""Cron schedule to execute the command on."""
250
+
251
+ @field_serializer("schedule_type")
252
+ def serialize_schedule_type(self, value):
253
+ if isinstance(value, str):
254
+ try:
255
+ return models.ScheduleType(value)
256
+ except ValueError:
257
+ return value
258
+ return value
@@ -1,11 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from cribl_control_plane import utils
4
+ from cribl_control_plane import models, utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
+ from pydantic import field_serializer
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -106,6 +107,24 @@ class InputFilePq(BaseModel):
106
107
  Optional[InputFilePqControls], pydantic.Field(alias="pqControls")
107
108
  ] = None
108
109
 
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputFilePqMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputFileCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
109
128
 
110
129
  class InputFileMode(str, Enum, metaclass=utils.OpenEnumMeta):
111
130
  r"""Choose how to discover files to monitor"""
@@ -157,8 +176,10 @@ class InputFileTypedDict(TypedDict):
157
176
  r"""Read only new entries at the end of all files discovered at next startup. @{product} will then read newly discovered files from the head. Disable this to resume reading all files from head."""
158
177
  idle_timeout: NotRequired[float]
159
178
  r"""Time, in seconds, before an idle file is closed"""
179
+ min_age_dur: NotRequired[str]
180
+ r"""The minimum age of files to monitor. Format examples: 30s, 15m, 1h. Age is relative to file modification time. Leave empty to apply no age filters."""
160
181
  max_age_dur: NotRequired[str]
161
- r"""The maximum age of files to monitor. Format examples: 60s, 4h, 3d, 1w. Age is relative to file modification time. Leave empty to apply no age filters."""
182
+ r"""The maximum age of event timestamps to collect. Format examples: 60s, 4h, 3d, 1w. Can be used in conjuction with \"Check file modification times\". Leave empty to apply no age filters."""
162
183
  check_file_mod_time: NotRequired[bool]
163
184
  r"""Skip files with modification times earlier than the maximum age duration"""
164
185
  force_text: NotRequired[bool]
@@ -230,8 +251,11 @@ class InputFile(BaseModel):
230
251
  idle_timeout: Annotated[Optional[float], pydantic.Field(alias="idleTimeout")] = 300
231
252
  r"""Time, in seconds, before an idle file is closed"""
232
253
 
254
+ min_age_dur: Annotated[Optional[str], pydantic.Field(alias="minAgeDur")] = None
255
+ r"""The minimum age of files to monitor. Format examples: 30s, 15m, 1h. Age is relative to file modification time. Leave empty to apply no age filters."""
256
+
233
257
  max_age_dur: Annotated[Optional[str], pydantic.Field(alias="maxAgeDur")] = None
234
- r"""The maximum age of files to monitor. Format examples: 60s, 4h, 3d, 1w. Age is relative to file modification time. Leave empty to apply no age filters."""
258
+ r"""The maximum age of event timestamps to collect. Format examples: 60s, 4h, 3d, 1w. Can be used in conjuction with \"Check file modification times\". Leave empty to apply no age filters."""
235
259
 
236
260
  check_file_mod_time: Annotated[
237
261
  Optional[bool], pydantic.Field(alias="checkFileModTime")
@@ -276,3 +300,12 @@ class InputFile(BaseModel):
276
300
  Optional[bool], pydantic.Field(alias="includeUnidentifiableBinary")
277
301
  ] = False
278
302
  r"""Stream binary files as Base64-encoded chunks."""
303
+
304
+ @field_serializer("mode")
305
+ def serialize_mode(self, value):
306
+ if isinstance(value, str):
307
+ try:
308
+ return models.InputFileMode(value)
309
+ except ValueError:
310
+ return value
311
+ return value