cribl-control-plane 0.0.49__py3-none-any.whl → 0.1.0b1__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 (173) hide show
  1. cribl_control_plane/_version.py +4 -6
  2. cribl_control_plane/errors/healthstatus_error.py +8 -2
  3. cribl_control_plane/health.py +6 -2
  4. cribl_control_plane/models/__init__.py +68 -30
  5. cribl_control_plane/models/cacheconnection.py +10 -2
  6. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  7. cribl_control_plane/models/cloudprovider.py +2 -1
  8. cribl_control_plane/models/configgroup.py +7 -2
  9. cribl_control_plane/models/configgroupcloud.py +6 -2
  10. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  11. cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
  12. cribl_control_plane/models/createversionpushop.py +5 -5
  13. cribl_control_plane/models/cribllakedataset.py +8 -2
  14. cribl_control_plane/models/datasetmetadata.py +8 -2
  15. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  16. cribl_control_plane/models/error.py +16 -0
  17. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  18. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  19. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  20. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  21. cribl_control_plane/models/gethealthinfoop.py +17 -0
  22. cribl_control_plane/models/getsummaryop.py +7 -2
  23. cribl_control_plane/models/getversionshowop.py +6 -5
  24. cribl_control_plane/models/gitshowresult.py +19 -0
  25. cribl_control_plane/models/hbcriblinfo.py +24 -3
  26. cribl_control_plane/models/healthstatus.py +7 -4
  27. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  28. cribl_control_plane/models/inputappscope.py +34 -14
  29. cribl_control_plane/models/inputazureblob.py +17 -6
  30. cribl_control_plane/models/inputcollection.py +11 -4
  31. cribl_control_plane/models/inputconfluentcloud.py +41 -32
  32. cribl_control_plane/models/inputcribl.py +11 -4
  33. cribl_control_plane/models/inputcriblhttp.py +23 -8
  34. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  35. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  36. cribl_control_plane/models/inputcribltcp.py +23 -8
  37. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  38. cribl_control_plane/models/inputdatadogagent.py +24 -8
  39. cribl_control_plane/models/inputdatagen.py +11 -4
  40. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  41. cribl_control_plane/models/inputelastic.py +40 -14
  42. cribl_control_plane/models/inputeventhub.py +15 -6
  43. cribl_control_plane/models/inputexec.py +14 -6
  44. cribl_control_plane/models/inputfile.py +15 -6
  45. cribl_control_plane/models/inputfirehose.py +23 -8
  46. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  47. cribl_control_plane/models/inputgrafana.py +67 -24
  48. cribl_control_plane/models/inputhttp.py +23 -8
  49. cribl_control_plane/models/inputhttpraw.py +23 -8
  50. cribl_control_plane/models/inputjournalfiles.py +12 -4
  51. cribl_control_plane/models/inputkafka.py +41 -28
  52. cribl_control_plane/models/inputkinesis.py +38 -14
  53. cribl_control_plane/models/inputkubeevents.py +11 -4
  54. cribl_control_plane/models/inputkubelogs.py +16 -8
  55. cribl_control_plane/models/inputkubemetrics.py +16 -8
  56. cribl_control_plane/models/inputloki.py +29 -10
  57. cribl_control_plane/models/inputmetrics.py +23 -8
  58. cribl_control_plane/models/inputmodeldriventelemetry.py +32 -10
  59. cribl_control_plane/models/inputmsk.py +48 -30
  60. cribl_control_plane/models/inputnetflow.py +11 -4
  61. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  62. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  63. cribl_control_plane/models/inputoffice365service.py +35 -16
  64. cribl_control_plane/models/inputopentelemetry.py +38 -16
  65. cribl_control_plane/models/inputprometheus.py +50 -18
  66. cribl_control_plane/models/inputprometheusrw.py +30 -10
  67. cribl_control_plane/models/inputrawudp.py +11 -4
  68. cribl_control_plane/models/inputs3.py +21 -8
  69. cribl_control_plane/models/inputs3inventory.py +26 -10
  70. cribl_control_plane/models/inputsecuritylake.py +27 -10
  71. cribl_control_plane/models/inputsnmp.py +16 -6
  72. cribl_control_plane/models/inputsplunk.py +33 -12
  73. cribl_control_plane/models/inputsplunkhec.py +29 -10
  74. cribl_control_plane/models/inputsplunksearch.py +33 -14
  75. cribl_control_plane/models/inputsqs.py +27 -10
  76. cribl_control_plane/models/inputsyslog.py +43 -16
  77. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  78. cribl_control_plane/models/inputsystemstate.py +16 -8
  79. cribl_control_plane/models/inputtcp.py +29 -10
  80. cribl_control_plane/models/inputtcpjson.py +29 -10
  81. cribl_control_plane/models/inputwef.py +37 -14
  82. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  83. cribl_control_plane/models/inputwineventlogs.py +20 -10
  84. cribl_control_plane/models/inputwiz.py +21 -8
  85. cribl_control_plane/models/inputwizwebhook.py +23 -8
  86. cribl_control_plane/models/inputzscalerhec.py +29 -10
  87. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  88. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  89. cribl_control_plane/models/masterworkerentry.py +7 -2
  90. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  91. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  92. cribl_control_plane/models/nodeprovidedinfo.py +3 -0
  93. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  94. cribl_control_plane/models/nodeupgradestate.py +2 -1
  95. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  96. cribl_control_plane/models/output.py +3 -0
  97. cribl_control_plane/models/outputazureblob.py +48 -18
  98. cribl_control_plane/models/outputazuredataexplorer.py +73 -28
  99. cribl_control_plane/models/outputazureeventhub.py +40 -18
  100. cribl_control_plane/models/outputazurelogs.py +35 -12
  101. cribl_control_plane/models/outputclickhouse.py +55 -20
  102. cribl_control_plane/models/outputcloudwatch.py +29 -10
  103. cribl_control_plane/models/outputconfluentcloud.py +71 -44
  104. cribl_control_plane/models/outputcriblhttp.py +44 -16
  105. cribl_control_plane/models/outputcribllake.py +46 -16
  106. cribl_control_plane/models/outputcribltcp.py +45 -18
  107. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +49 -14
  108. cribl_control_plane/models/outputdatabricks.py +439 -0
  109. cribl_control_plane/models/outputdatadog.py +48 -20
  110. cribl_control_plane/models/outputdataset.py +46 -18
  111. cribl_control_plane/models/outputdiskspool.py +7 -2
  112. cribl_control_plane/models/outputdls3.py +68 -24
  113. cribl_control_plane/models/outputdynatracehttp.py +53 -20
  114. cribl_control_plane/models/outputdynatraceotlp.py +55 -22
  115. cribl_control_plane/models/outputelastic.py +43 -18
  116. cribl_control_plane/models/outputelasticcloud.py +36 -12
  117. cribl_control_plane/models/outputexabeam.py +29 -10
  118. cribl_control_plane/models/outputfilesystem.py +39 -14
  119. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  120. cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
  121. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  122. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  123. cribl_control_plane/models/outputgrafanacloud.py +97 -32
  124. cribl_control_plane/models/outputgraphite.py +31 -14
  125. cribl_control_plane/models/outputhoneycomb.py +35 -12
  126. cribl_control_plane/models/outputhumiohec.py +43 -16
  127. cribl_control_plane/models/outputinfluxdb.py +42 -16
  128. cribl_control_plane/models/outputkafka.py +69 -40
  129. cribl_control_plane/models/outputkinesis.py +40 -16
  130. cribl_control_plane/models/outputloki.py +41 -16
  131. cribl_control_plane/models/outputminio.py +65 -24
  132. cribl_control_plane/models/outputmsk.py +77 -42
  133. cribl_control_plane/models/outputnewrelic.py +43 -18
  134. cribl_control_plane/models/outputnewrelicevents.py +41 -14
  135. cribl_control_plane/models/outputopentelemetry.py +67 -26
  136. cribl_control_plane/models/outputprometheus.py +35 -12
  137. cribl_control_plane/models/outputring.py +19 -8
  138. cribl_control_plane/models/outputs3.py +68 -26
  139. cribl_control_plane/models/outputsecuritylake.py +52 -18
  140. cribl_control_plane/models/outputsentinel.py +45 -18
  141. cribl_control_plane/models/outputsentineloneaisiem.py +50 -18
  142. cribl_control_plane/models/outputservicenow.py +60 -24
  143. cribl_control_plane/models/outputsignalfx.py +37 -14
  144. cribl_control_plane/models/outputsns.py +36 -14
  145. cribl_control_plane/models/outputsplunk.py +60 -24
  146. cribl_control_plane/models/outputsplunkhec.py +35 -12
  147. cribl_control_plane/models/outputsplunklb.py +77 -30
  148. cribl_control_plane/models/outputsqs.py +41 -16
  149. cribl_control_plane/models/outputstatsd.py +30 -14
  150. cribl_control_plane/models/outputstatsdext.py +29 -12
  151. cribl_control_plane/models/outputsumologic.py +35 -12
  152. cribl_control_plane/models/outputsyslog.py +58 -24
  153. cribl_control_plane/models/outputtcpjson.py +52 -20
  154. cribl_control_plane/models/outputwavefront.py +35 -12
  155. cribl_control_plane/models/outputwebhook.py +58 -22
  156. cribl_control_plane/models/outputxsiam.py +35 -14
  157. cribl_control_plane/models/productscore.py +2 -1
  158. cribl_control_plane/models/rbacresource.py +2 -1
  159. cribl_control_plane/models/resourcepolicy.py +4 -2
  160. cribl_control_plane/models/routeconf.py +3 -4
  161. cribl_control_plane/models/runnablejobcollection.py +30 -13
  162. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  163. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  164. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  165. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  166. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  167. cribl_control_plane/models/workertypes.py +2 -1
  168. {cribl_control_plane-0.0.49.dist-info → cribl_control_plane-0.1.0b1.dist-info}/METADATA +1 -1
  169. cribl_control_plane-0.1.0b1.dist-info/RECORD +327 -0
  170. cribl_control_plane/models/appmode.py +0 -13
  171. cribl_control_plane/models/routecloneconf.py +0 -13
  172. cribl_control_plane-0.0.49.dist-info/RECORD +0 -325
  173. {cribl_control_plane-0.0.49.dist-info → cribl_control_plane-0.1.0b1.dist-info}/WHEEL +0 -0
@@ -1,9 +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
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import Any, List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputWefConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputWefMode(str, Enum):
29
+ class InputWefMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputWefCompression(str, Enum):
36
+ class InputWefCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputWefPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputWefPq(BaseModel):
67
- mode: Optional[InputWefMode] = InputWefMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputWefMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputWefMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,9 @@ class InputWefPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputWefCompression] = InputWefCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputWefCompression], PlainValidator(validate_open_enum(False))
98
+ ] = InputWefCompression.NONE
92
99
  r"""Codec to use to compress the persisted data"""
93
100
 
94
101
  pq_controls: Annotated[
@@ -96,21 +103,21 @@ class InputWefPq(BaseModel):
96
103
  ] = None
97
104
 
98
105
 
99
- class InputWefAuthenticationMethod(str, Enum):
106
+ class InputWefAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
100
107
  r"""How to authenticate incoming client connections"""
101
108
 
102
109
  CLIENT_CERT = "clientCert"
103
110
  KERBEROS = "kerberos"
104
111
 
105
112
 
106
- class InputWefMinimumTLSVersion(str, Enum):
113
+ class InputWefMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
107
114
  TL_SV1 = "TLSv1"
108
115
  TL_SV1_1 = "TLSv1.1"
109
116
  TL_SV1_2 = "TLSv1.2"
110
117
  TL_SV1_3 = "TLSv1.3"
111
118
 
112
119
 
113
- class InputWefMaximumTLSVersion(str, Enum):
120
+ class InputWefMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
114
121
  TL_SV1 = "TLSv1"
115
122
  TL_SV1_1 = "TLSv1.1"
116
123
  TL_SV1_2 = "TLSv1.2"
@@ -181,11 +188,19 @@ class MTLSSettings(BaseModel):
181
188
  r"""Regex matching allowable common names in peer certificates' subject attribute"""
182
189
 
183
190
  min_version: Annotated[
184
- Optional[InputWefMinimumTLSVersion], pydantic.Field(alias="minVersion")
191
+ Annotated[
192
+ Optional[InputWefMinimumTLSVersion],
193
+ PlainValidator(validate_open_enum(False)),
194
+ ],
195
+ pydantic.Field(alias="minVersion"),
185
196
  ] = None
186
197
 
187
198
  max_version: Annotated[
188
- Optional[InputWefMaximumTLSVersion], pydantic.Field(alias="maxVersion")
199
+ Annotated[
200
+ Optional[InputWefMaximumTLSVersion],
201
+ PlainValidator(validate_open_enum(False)),
202
+ ],
203
+ pydantic.Field(alias="maxVersion"),
189
204
  ] = None
190
205
 
191
206
  ocsp_check: Annotated[Optional[bool], pydantic.Field(alias="ocspCheck")] = False
@@ -201,14 +216,14 @@ class MTLSSettings(BaseModel):
201
216
  r"""If enabled, checks will fail on any OCSP error. Otherwise, checks will fail only when a certificate is revoked, ignoring other errors."""
202
217
 
203
218
 
204
- class InputWefFormat(str, Enum):
219
+ class InputWefFormat(str, Enum, metaclass=utils.OpenEnumMeta):
205
220
  r"""Content format in which the endpoint should deliver events"""
206
221
 
207
222
  RAW = "Raw"
208
223
  RENDERED_TEXT = "RenderedText"
209
224
 
210
225
 
211
- class QueryBuilderMode(str, Enum):
226
+ class QueryBuilderMode(str, Enum, metaclass=utils.OpenEnumMeta):
212
227
  SIMPLE = "simple"
213
228
  XML = "xml"
214
229
 
@@ -261,7 +276,8 @@ class Subscription(BaseModel):
261
276
  r"""Version UUID for this subscription. If any subscription parameters are modified, this value will change."""
262
277
 
263
278
  content_format: Annotated[
264
- Optional[InputWefFormat], pydantic.Field(alias="contentFormat")
279
+ Annotated[Optional[InputWefFormat], PlainValidator(validate_open_enum(False))],
280
+ pydantic.Field(alias="contentFormat"),
265
281
  ] = InputWefFormat.RAW
266
282
  r"""Content format in which the endpoint should deliver events"""
267
283
 
@@ -290,7 +306,10 @@ class Subscription(BaseModel):
290
306
  r"""The RFC-3066 locale the Windows clients should use when sending events. Defaults to \"en-US\"."""
291
307
 
292
308
  query_selector: Annotated[
293
- Optional[QueryBuilderMode], pydantic.Field(alias="querySelector")
309
+ Annotated[
310
+ Optional[QueryBuilderMode], PlainValidator(validate_open_enum(False))
311
+ ],
312
+ pydantic.Field(alias="querySelector"),
294
313
  ] = QueryBuilderMode.SIMPLE
295
314
 
296
315
  metadata: Optional[List[SubscriptionMetadatum]] = None
@@ -410,7 +429,11 @@ class InputWef(BaseModel):
410
429
  r"""Port to listen on"""
411
430
 
412
431
  auth_method: Annotated[
413
- Optional[InputWefAuthenticationMethod], pydantic.Field(alias="authMethod")
432
+ Annotated[
433
+ Optional[InputWefAuthenticationMethod],
434
+ PlainValidator(validate_open_enum(False)),
435
+ ],
436
+ pydantic.Field(alias="authMethod"),
414
437
  ] = InputWefAuthenticationMethod.CLIENT_CERT
415
438
  r"""How to authenticate incoming client connections"""
416
439
 
@@ -1,9 +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
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputWindowsMetricsConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputWindowsMetricsPqMode(str, Enum):
29
+ class InputWindowsMetricsPqMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputWindowsMetricsCompression(str, Enum):
36
+ class InputWindowsMetricsCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputWindowsMetricsPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputWindowsMetricsPq(BaseModel):
67
- mode: Optional[InputWindowsMetricsPqMode] = InputWindowsMetricsPqMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputWindowsMetricsPqMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputWindowsMetricsPqMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,9 +93,10 @@ class InputWindowsMetricsPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputWindowsMetricsCompression] = (
92
- InputWindowsMetricsCompression.NONE
93
- )
96
+ compress: Annotated[
97
+ Optional[InputWindowsMetricsCompression],
98
+ PlainValidator(validate_open_enum(False)),
99
+ ] = InputWindowsMetricsCompression.NONE
94
100
  r"""Codec to use to compress the persisted data"""
95
101
 
96
102
  pq_controls: Annotated[
@@ -98,7 +104,7 @@ class InputWindowsMetricsPq(BaseModel):
98
104
  ] = None
99
105
 
100
106
 
101
- class InputWindowsMetricsHostMode(str, Enum):
107
+ class InputWindowsMetricsHostMode(str, Enum, metaclass=utils.OpenEnumMeta):
102
108
  r"""Select level of detail for host metrics"""
103
109
 
104
110
  BASIC = "basic"
@@ -107,7 +113,7 @@ class InputWindowsMetricsHostMode(str, Enum):
107
113
  DISABLED = "disabled"
108
114
 
109
115
 
110
- class InputWindowsMetricsSystemMode(str, Enum):
116
+ class InputWindowsMetricsSystemMode(str, Enum, metaclass=utils.OpenEnumMeta):
111
117
  r"""Select the level of details for system metrics"""
112
118
 
113
119
  BASIC = "basic"
@@ -124,14 +130,17 @@ class InputWindowsMetricsSystemTypedDict(TypedDict):
124
130
 
125
131
 
126
132
  class InputWindowsMetricsSystem(BaseModel):
127
- mode: Optional[InputWindowsMetricsSystemMode] = InputWindowsMetricsSystemMode.BASIC
133
+ mode: Annotated[
134
+ Optional[InputWindowsMetricsSystemMode],
135
+ PlainValidator(validate_open_enum(False)),
136
+ ] = InputWindowsMetricsSystemMode.BASIC
128
137
  r"""Select the level of details for system metrics"""
129
138
 
130
139
  detail: Optional[bool] = False
131
140
  r"""Generate metrics for all system information"""
132
141
 
133
142
 
134
- class InputWindowsMetricsCPUMode(str, Enum):
143
+ class InputWindowsMetricsCPUMode(str, Enum, metaclass=utils.OpenEnumMeta):
135
144
  r"""Select the level of details for CPU metrics"""
136
145
 
137
146
  BASIC = "basic"
@@ -152,7 +161,9 @@ class InputWindowsMetricsCPUTypedDict(TypedDict):
152
161
 
153
162
 
154
163
  class InputWindowsMetricsCPU(BaseModel):
155
- mode: Optional[InputWindowsMetricsCPUMode] = InputWindowsMetricsCPUMode.BASIC
164
+ mode: Annotated[
165
+ Optional[InputWindowsMetricsCPUMode], PlainValidator(validate_open_enum(False))
166
+ ] = InputWindowsMetricsCPUMode.BASIC
156
167
  r"""Select the level of details for CPU metrics"""
157
168
 
158
169
  per_cpu: Annotated[Optional[bool], pydantic.Field(alias="perCpu")] = False
@@ -165,7 +176,7 @@ class InputWindowsMetricsCPU(BaseModel):
165
176
  r"""Generate raw, monotonic CPU time counters"""
166
177
 
167
178
 
168
- class InputWindowsMetricsMemoryMode(str, Enum):
179
+ class InputWindowsMetricsMemoryMode(str, Enum, metaclass=utils.OpenEnumMeta):
169
180
  r"""Select the level of details for memory metrics"""
170
181
 
171
182
  BASIC = "basic"
@@ -182,14 +193,17 @@ class InputWindowsMetricsMemoryTypedDict(TypedDict):
182
193
 
183
194
 
184
195
  class InputWindowsMetricsMemory(BaseModel):
185
- mode: Optional[InputWindowsMetricsMemoryMode] = InputWindowsMetricsMemoryMode.BASIC
196
+ mode: Annotated[
197
+ Optional[InputWindowsMetricsMemoryMode],
198
+ PlainValidator(validate_open_enum(False)),
199
+ ] = InputWindowsMetricsMemoryMode.BASIC
186
200
  r"""Select the level of details for memory metrics"""
187
201
 
188
202
  detail: Optional[bool] = False
189
203
  r"""Generate metrics for all memory states"""
190
204
 
191
205
 
192
- class InputWindowsMetricsNetworkMode(str, Enum):
206
+ class InputWindowsMetricsNetworkMode(str, Enum, metaclass=utils.OpenEnumMeta):
193
207
  r"""Select the level of details for network metrics"""
194
208
 
195
209
  BASIC = "basic"
@@ -210,9 +224,10 @@ class InputWindowsMetricsNetworkTypedDict(TypedDict):
210
224
 
211
225
 
212
226
  class InputWindowsMetricsNetwork(BaseModel):
213
- mode: Optional[InputWindowsMetricsNetworkMode] = (
214
- InputWindowsMetricsNetworkMode.BASIC
215
- )
227
+ mode: Annotated[
228
+ Optional[InputWindowsMetricsNetworkMode],
229
+ PlainValidator(validate_open_enum(False)),
230
+ ] = InputWindowsMetricsNetworkMode.BASIC
216
231
  r"""Select the level of details for network metrics"""
217
232
 
218
233
  devices: Optional[List[str]] = None
@@ -227,7 +242,7 @@ class InputWindowsMetricsNetwork(BaseModel):
227
242
  r"""Generate full network metrics"""
228
243
 
229
244
 
230
- class InputWindowsMetricsDiskMode(str, Enum):
245
+ class InputWindowsMetricsDiskMode(str, Enum, metaclass=utils.OpenEnumMeta):
231
246
  r"""Select the level of details for disk metrics"""
232
247
 
233
248
  BASIC = "basic"
@@ -246,7 +261,9 @@ class InputWindowsMetricsDiskTypedDict(TypedDict):
246
261
 
247
262
 
248
263
  class InputWindowsMetricsDisk(BaseModel):
249
- mode: Optional[InputWindowsMetricsDiskMode] = InputWindowsMetricsDiskMode.BASIC
264
+ mode: Annotated[
265
+ Optional[InputWindowsMetricsDiskMode], PlainValidator(validate_open_enum(False))
266
+ ] = InputWindowsMetricsDiskMode.BASIC
250
267
  r"""Select the level of details for disk metrics"""
251
268
 
252
269
  volumes: Optional[List[str]] = None
@@ -283,7 +300,9 @@ class InputWindowsMetricsHostTypedDict(TypedDict):
283
300
 
284
301
 
285
302
  class InputWindowsMetricsHost(BaseModel):
286
- mode: Optional[InputWindowsMetricsHostMode] = InputWindowsMetricsHostMode.BASIC
303
+ mode: Annotated[
304
+ Optional[InputWindowsMetricsHostMode], PlainValidator(validate_open_enum(False))
305
+ ] = InputWindowsMetricsHostMode.BASIC
287
306
  r"""Select level of detail for host metrics"""
288
307
 
289
308
  custom: Optional[InputWindowsMetricsCustom] = None
@@ -328,7 +347,7 @@ class InputWindowsMetricsMetadatum(BaseModel):
328
347
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
329
348
 
330
349
 
331
- class InputWindowsMetricsDataCompressionFormat(str, Enum):
350
+ class InputWindowsMetricsDataCompressionFormat(str, Enum, metaclass=utils.OpenEnumMeta):
332
351
  NONE = "none"
333
352
  GZIP = "gzip"
334
353
 
@@ -360,9 +379,10 @@ class InputWindowsMetricsPersistence(BaseModel):
360
379
  max_data_time: Annotated[Optional[str], pydantic.Field(alias="maxDataTime")] = "24h"
361
380
  r"""Maximum amount of time to retain data (examples: 2h, 4d). When limit is reached, older data will be deleted."""
362
381
 
363
- compress: Optional[InputWindowsMetricsDataCompressionFormat] = (
364
- InputWindowsMetricsDataCompressionFormat.GZIP
365
- )
382
+ compress: Annotated[
383
+ Optional[InputWindowsMetricsDataCompressionFormat],
384
+ PlainValidator(validate_open_enum(False)),
385
+ ] = InputWindowsMetricsDataCompressionFormat.GZIP
366
386
 
367
387
  dest_path: Annotated[Optional[str], pydantic.Field(alias="destPath")] = (
368
388
  "$CRIBL_HOME/state/windows_metrics"
@@ -1,9 +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
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputWinEventLogsConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputWinEventLogsMode(str, Enum):
29
+ class InputWinEventLogsMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputWinEventLogsCompression(str, Enum):
36
+ class InputWinEventLogsCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputWinEventLogsPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputWinEventLogsPq(BaseModel):
67
- mode: Optional[InputWinEventLogsMode] = InputWinEventLogsMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputWinEventLogsMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputWinEventLogsMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,10 @@ class InputWinEventLogsPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputWinEventLogsCompression] = InputWinEventLogsCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputWinEventLogsCompression],
98
+ PlainValidator(validate_open_enum(False)),
99
+ ] = InputWinEventLogsCompression.NONE
92
100
  r"""Codec to use to compress the persisted data"""
93
101
 
94
102
  pq_controls: Annotated[
@@ -96,14 +104,14 @@ class InputWinEventLogsPq(BaseModel):
96
104
  ] = None
97
105
 
98
106
 
99
- class ReadMode(str, Enum):
107
+ class ReadMode(str, Enum, metaclass=utils.OpenEnumMeta):
100
108
  r"""Read all stored and future event logs, or only future events"""
101
109
 
102
110
  OLDEST = "oldest"
103
111
  NEWEST = "newest"
104
112
 
105
113
 
106
- class EventFormat(str, Enum):
114
+ class EventFormat(str, Enum, metaclass=utils.OpenEnumMeta):
107
115
  r"""Format of individual events"""
108
116
 
109
117
  JSON = "json"
@@ -193,13 +201,15 @@ class InputWinEventLogs(BaseModel):
193
201
 
194
202
  pq: Optional[InputWinEventLogsPq] = None
195
203
 
196
- read_mode: Annotated[Optional[ReadMode], pydantic.Field(alias="readMode")] = (
197
- ReadMode.NEWEST
198
- )
204
+ read_mode: Annotated[
205
+ Annotated[Optional[ReadMode], PlainValidator(validate_open_enum(False))],
206
+ pydantic.Field(alias="readMode"),
207
+ ] = ReadMode.NEWEST
199
208
  r"""Read all stored and future event logs, or only future events"""
200
209
 
201
210
  event_format: Annotated[
202
- Optional[EventFormat], pydantic.Field(alias="eventFormat")
211
+ Annotated[Optional[EventFormat], PlainValidator(validate_open_enum(False))],
212
+ pydantic.Field(alias="eventFormat"),
203
213
  ] = EventFormat.JSON
204
214
  r"""Format of individual events"""
205
215
 
@@ -1,9 +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
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputWizConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputWizMode(str, Enum):
29
+ class InputWizMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputWizCompression(str, Enum):
36
+ class InputWizCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputWizPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputWizPq(BaseModel):
67
- mode: Optional[InputWizMode] = InputWizMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputWizMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputWizMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,9 @@ class InputWizPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputWizCompression] = InputWizCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputWizCompression], PlainValidator(validate_open_enum(False))
98
+ ] = InputWizCompression.NONE
92
99
  r"""Codec to use to compress the persisted data"""
93
100
 
94
101
  pq_controls: Annotated[
@@ -127,7 +134,7 @@ class InputWizMetadatum(BaseModel):
127
134
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
128
135
 
129
136
 
130
- class InputWizRetryType(str, Enum):
137
+ class InputWizRetryType(str, Enum, metaclass=utils.OpenEnumMeta):
131
138
  r"""The algorithm to use when performing HTTP retries"""
132
139
 
133
140
  NONE = "none"
@@ -155,7 +162,9 @@ class InputWizRetryRulesTypedDict(TypedDict):
155
162
 
156
163
 
157
164
  class InputWizRetryRules(BaseModel):
158
- type: Optional[InputWizRetryType] = InputWizRetryType.BACKOFF
165
+ type: Annotated[
166
+ Optional[InputWizRetryType], PlainValidator(validate_open_enum(False))
167
+ ] = InputWizRetryType.BACKOFF
159
168
  r"""The algorithm to use when performing HTTP retries"""
160
169
 
161
170
  interval: Optional[float] = 1000
@@ -186,7 +195,7 @@ class InputWizRetryRules(BaseModel):
186
195
  r"""Retry request when a connection reset (ECONNRESET) error occurs"""
187
196
 
188
197
 
189
- class InputWizAuthenticationMethod(str, Enum):
198
+ class InputWizAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
190
199
  r"""Enter client secret directly, or select a stored secret"""
191
200
 
192
201
  MANUAL = "manual"
@@ -321,7 +330,11 @@ class InputWiz(BaseModel):
321
330
  ] = None
322
331
 
323
332
  auth_type: Annotated[
324
- Optional[InputWizAuthenticationMethod], pydantic.Field(alias="authType")
333
+ Annotated[
334
+ Optional[InputWizAuthenticationMethod],
335
+ PlainValidator(validate_open_enum(False)),
336
+ ],
337
+ pydantic.Field(alias="authType"),
325
338
  ] = InputWizAuthenticationMethod.MANUAL
326
339
  r"""Enter client secret directly, or select a stored secret"""
327
340
 
@@ -1,9 +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
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import Any, List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,14 +26,14 @@ class InputWizWebhookConnection(BaseModel):
23
26
  pipeline: Optional[str] = None
24
27
 
25
28
 
26
- class InputWizWebhookMode(str, Enum):
29
+ class InputWizWebhookMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
31
 
29
32
  SMART = "smart"
30
33
  ALWAYS = "always"
31
34
 
32
35
 
33
- class InputWizWebhookCompression(str, Enum):
36
+ class InputWizWebhookCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Codec to use to compress the persisted data"""
35
38
 
36
39
  NONE = "none"
@@ -64,7 +67,9 @@ class InputWizWebhookPqTypedDict(TypedDict):
64
67
 
65
68
 
66
69
  class InputWizWebhookPq(BaseModel):
67
- mode: Optional[InputWizWebhookMode] = InputWizWebhookMode.ALWAYS
70
+ mode: Annotated[
71
+ Optional[InputWizWebhookMode], PlainValidator(validate_open_enum(False))
72
+ ] = InputWizWebhookMode.ALWAYS
68
73
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
69
74
 
70
75
  max_buffer_size: Annotated[
@@ -88,7 +93,9 @@ class InputWizWebhookPq(BaseModel):
88
93
  path: Optional[str] = "$CRIBL_HOME/state/queues"
89
94
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
90
95
 
91
- compress: Optional[InputWizWebhookCompression] = InputWizWebhookCompression.NONE
96
+ compress: Annotated[
97
+ Optional[InputWizWebhookCompression], PlainValidator(validate_open_enum(False))
98
+ ] = InputWizWebhookCompression.NONE
92
99
  r"""Codec to use to compress the persisted data"""
93
100
 
94
101
  pq_controls: Annotated[
@@ -96,14 +103,14 @@ class InputWizWebhookPq(BaseModel):
96
103
  ] = None
97
104
 
98
105
 
99
- class InputWizWebhookMinimumTLSVersion(str, Enum):
106
+ class InputWizWebhookMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
100
107
  TL_SV1 = "TLSv1"
101
108
  TL_SV1_1 = "TLSv1.1"
102
109
  TL_SV1_2 = "TLSv1.2"
103
110
  TL_SV1_3 = "TLSv1.3"
104
111
 
105
112
 
106
- class InputWizWebhookMaximumTLSVersion(str, Enum):
113
+ class InputWizWebhookMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
107
114
  TL_SV1 = "TLSv1"
108
115
  TL_SV1_1 = "TLSv1.1"
109
116
  TL_SV1_2 = "TLSv1.2"
@@ -162,11 +169,19 @@ class InputWizWebhookTLSSettingsServerSide(BaseModel):
162
169
  ] = None
163
170
 
164
171
  min_version: Annotated[
165
- Optional[InputWizWebhookMinimumTLSVersion], pydantic.Field(alias="minVersion")
172
+ Annotated[
173
+ Optional[InputWizWebhookMinimumTLSVersion],
174
+ PlainValidator(validate_open_enum(False)),
175
+ ],
176
+ pydantic.Field(alias="minVersion"),
166
177
  ] = None
167
178
 
168
179
  max_version: Annotated[
169
- Optional[InputWizWebhookMaximumTLSVersion], pydantic.Field(alias="maxVersion")
180
+ Annotated[
181
+ Optional[InputWizWebhookMaximumTLSVersion],
182
+ PlainValidator(validate_open_enum(False)),
183
+ ],
184
+ pydantic.Field(alias="maxVersion"),
170
185
  ] = None
171
186
 
172
187