cribl-control-plane 0.0.44__py3-none-any.whl → 0.0.44a2__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 (158) hide show
  1. cribl_control_plane/_version.py +3 -3
  2. cribl_control_plane/errors/healthstatus_error.py +8 -2
  3. cribl_control_plane/models/__init__.py +3 -3
  4. cribl_control_plane/models/appmode.py +2 -1
  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/cribllakedataset.py +8 -2
  12. cribl_control_plane/models/datasetmetadata.py +8 -2
  13. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  14. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  15. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  16. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  17. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  18. cribl_control_plane/models/getsummaryop.py +7 -2
  19. cribl_control_plane/models/hbcriblinfo.py +6 -1
  20. cribl_control_plane/models/healthstatus.py +7 -4
  21. cribl_control_plane/models/inputappscope.py +34 -14
  22. cribl_control_plane/models/inputazureblob.py +17 -6
  23. cribl_control_plane/models/inputcollection.py +11 -4
  24. cribl_control_plane/models/inputconfluentcloud.py +47 -20
  25. cribl_control_plane/models/inputcribl.py +11 -4
  26. cribl_control_plane/models/inputcriblhttp.py +23 -8
  27. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  28. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  29. cribl_control_plane/models/inputcribltcp.py +23 -8
  30. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  31. cribl_control_plane/models/inputdatadogagent.py +24 -8
  32. cribl_control_plane/models/inputdatagen.py +11 -4
  33. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  34. cribl_control_plane/models/inputelastic.py +40 -14
  35. cribl_control_plane/models/inputeventhub.py +15 -6
  36. cribl_control_plane/models/inputexec.py +14 -6
  37. cribl_control_plane/models/inputfile.py +15 -6
  38. cribl_control_plane/models/inputfirehose.py +23 -8
  39. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  40. cribl_control_plane/models/inputgrafana.py +67 -24
  41. cribl_control_plane/models/inputhttp.py +23 -8
  42. cribl_control_plane/models/inputhttpraw.py +23 -8
  43. cribl_control_plane/models/inputjournalfiles.py +12 -4
  44. cribl_control_plane/models/inputkafka.py +46 -16
  45. cribl_control_plane/models/inputkinesis.py +38 -14
  46. cribl_control_plane/models/inputkubeevents.py +11 -4
  47. cribl_control_plane/models/inputkubelogs.py +16 -8
  48. cribl_control_plane/models/inputkubemetrics.py +16 -8
  49. cribl_control_plane/models/inputloki.py +29 -10
  50. cribl_control_plane/models/inputmetrics.py +23 -8
  51. cribl_control_plane/models/inputmodeldriventelemetry.py +27 -10
  52. cribl_control_plane/models/inputmsk.py +53 -18
  53. cribl_control_plane/models/inputnetflow.py +11 -4
  54. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  55. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  56. cribl_control_plane/models/inputoffice365service.py +35 -16
  57. cribl_control_plane/models/inputopentelemetry.py +38 -16
  58. cribl_control_plane/models/inputprometheus.py +50 -18
  59. cribl_control_plane/models/inputprometheusrw.py +30 -10
  60. cribl_control_plane/models/inputrawudp.py +11 -4
  61. cribl_control_plane/models/inputs3.py +21 -8
  62. cribl_control_plane/models/inputs3inventory.py +26 -10
  63. cribl_control_plane/models/inputsecuritylake.py +27 -10
  64. cribl_control_plane/models/inputsnmp.py +16 -6
  65. cribl_control_plane/models/inputsplunk.py +33 -12
  66. cribl_control_plane/models/inputsplunkhec.py +29 -10
  67. cribl_control_plane/models/inputsplunksearch.py +33 -14
  68. cribl_control_plane/models/inputsqs.py +27 -10
  69. cribl_control_plane/models/inputsyslog.py +43 -16
  70. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  71. cribl_control_plane/models/inputsystemstate.py +16 -8
  72. cribl_control_plane/models/inputtcp.py +29 -10
  73. cribl_control_plane/models/inputtcpjson.py +29 -10
  74. cribl_control_plane/models/inputwef.py +37 -14
  75. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  76. cribl_control_plane/models/inputwineventlogs.py +20 -10
  77. cribl_control_plane/models/inputwiz.py +21 -8
  78. cribl_control_plane/models/inputwizwebhook.py +23 -8
  79. cribl_control_plane/models/inputzscalerhec.py +29 -10
  80. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  81. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  82. cribl_control_plane/models/masterworkerentry.py +7 -2
  83. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  84. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  85. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  86. cribl_control_plane/models/nodeupgradestate.py +2 -1
  87. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  88. cribl_control_plane/models/outputazureblob.py +48 -18
  89. cribl_control_plane/models/outputazuredataexplorer.py +74 -29
  90. cribl_control_plane/models/outputazureeventhub.py +40 -18
  91. cribl_control_plane/models/outputazurelogs.py +36 -13
  92. cribl_control_plane/models/outputclickhouse.py +56 -21
  93. cribl_control_plane/models/outputcloudwatch.py +29 -10
  94. cribl_control_plane/models/outputconfluentcloud.py +77 -32
  95. cribl_control_plane/models/outputcriblhttp.py +46 -18
  96. cribl_control_plane/models/outputcribllake.py +46 -16
  97. cribl_control_plane/models/outputcribltcp.py +45 -18
  98. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -15
  99. cribl_control_plane/models/outputdatadog.py +48 -20
  100. cribl_control_plane/models/outputdataset.py +46 -18
  101. cribl_control_plane/models/outputdiskspool.py +7 -2
  102. cribl_control_plane/models/outputdls3.py +68 -24
  103. cribl_control_plane/models/outputdynatracehttp.py +54 -21
  104. cribl_control_plane/models/outputdynatraceotlp.py +56 -23
  105. cribl_control_plane/models/outputelastic.py +44 -19
  106. cribl_control_plane/models/outputelasticcloud.py +37 -13
  107. cribl_control_plane/models/outputexabeam.py +29 -10
  108. cribl_control_plane/models/outputfilesystem.py +39 -14
  109. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  110. cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
  111. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  112. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  113. cribl_control_plane/models/outputgrafanacloud.py +99 -34
  114. cribl_control_plane/models/outputgraphite.py +31 -14
  115. cribl_control_plane/models/outputhoneycomb.py +36 -13
  116. cribl_control_plane/models/outputhumiohec.py +44 -17
  117. cribl_control_plane/models/outputinfluxdb.py +43 -17
  118. cribl_control_plane/models/outputkafka.py +74 -28
  119. cribl_control_plane/models/outputkinesis.py +40 -16
  120. cribl_control_plane/models/outputloki.py +41 -16
  121. cribl_control_plane/models/outputminio.py +65 -24
  122. cribl_control_plane/models/outputmsk.py +82 -30
  123. cribl_control_plane/models/outputnewrelic.py +43 -18
  124. cribl_control_plane/models/outputnewrelicevents.py +42 -15
  125. cribl_control_plane/models/outputopentelemetry.py +68 -27
  126. cribl_control_plane/models/outputprometheus.py +36 -13
  127. cribl_control_plane/models/outputring.py +19 -8
  128. cribl_control_plane/models/outputs3.py +68 -26
  129. cribl_control_plane/models/outputsecuritylake.py +52 -18
  130. cribl_control_plane/models/outputsentinel.py +45 -18
  131. cribl_control_plane/models/outputsentineloneaisiem.py +51 -19
  132. cribl_control_plane/models/outputservicenow.py +61 -25
  133. cribl_control_plane/models/outputsignalfx.py +38 -15
  134. cribl_control_plane/models/outputsns.py +36 -14
  135. cribl_control_plane/models/outputsplunk.py +60 -24
  136. cribl_control_plane/models/outputsplunkhec.py +36 -13
  137. cribl_control_plane/models/outputsplunklb.py +77 -30
  138. cribl_control_plane/models/outputsqs.py +41 -16
  139. cribl_control_plane/models/outputstatsd.py +30 -14
  140. cribl_control_plane/models/outputstatsdext.py +29 -12
  141. cribl_control_plane/models/outputsumologic.py +35 -12
  142. cribl_control_plane/models/outputsyslog.py +58 -24
  143. cribl_control_plane/models/outputtcpjson.py +52 -20
  144. cribl_control_plane/models/outputwavefront.py +36 -13
  145. cribl_control_plane/models/outputwebhook.py +58 -22
  146. cribl_control_plane/models/outputxsiam.py +36 -15
  147. cribl_control_plane/models/productscore.py +2 -1
  148. cribl_control_plane/models/rbacresource.py +2 -1
  149. cribl_control_plane/models/resourcepolicy.py +4 -2
  150. cribl_control_plane/models/runnablejobcollection.py +30 -13
  151. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  152. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  153. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  154. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  155. cribl_control_plane/models/workertypes.py +2 -1
  156. {cribl_control_plane-0.0.44.dist-info → cribl_control_plane-0.0.44a2.dist-info}/METADATA +1 -1
  157. {cribl_control_plane-0.0.44.dist-info → cribl_control_plane-0.0.44a2.dist-info}/RECORD +158 -158
  158. {cribl_control_plane-0.0.44.dist-info → cribl_control_plane-0.0.44a2.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 List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -12,14 +15,14 @@ class OutputCriblHTTPType(str, Enum):
12
15
  CRIBL_HTTP = "cribl_http"
13
16
 
14
17
 
15
- class OutputCriblHTTPMinimumTLSVersion(str, Enum):
18
+ class OutputCriblHTTPMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  TL_SV1 = "TLSv1"
17
20
  TL_SV1_1 = "TLSv1.1"
18
21
  TL_SV1_2 = "TLSv1.2"
19
22
  TL_SV1_3 = "TLSv1.3"
20
23
 
21
24
 
22
- class OutputCriblHTTPMaximumTLSVersion(str, Enum):
25
+ class OutputCriblHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  TL_SV1 = "TLSv1"
24
27
  TL_SV1_1 = "TLSv1.1"
25
28
  TL_SV1_2 = "TLSv1.2"
@@ -79,15 +82,23 @@ class OutputCriblHTTPTLSSettingsClientSide(BaseModel):
79
82
  r"""Passphrase to use to decrypt private key"""
80
83
 
81
84
  min_version: Annotated[
82
- Optional[OutputCriblHTTPMinimumTLSVersion], pydantic.Field(alias="minVersion")
85
+ Annotated[
86
+ Optional[OutputCriblHTTPMinimumTLSVersion],
87
+ PlainValidator(validate_open_enum(False)),
88
+ ],
89
+ pydantic.Field(alias="minVersion"),
83
90
  ] = None
84
91
 
85
92
  max_version: Annotated[
86
- Optional[OutputCriblHTTPMaximumTLSVersion], pydantic.Field(alias="maxVersion")
93
+ Annotated[
94
+ Optional[OutputCriblHTTPMaximumTLSVersion],
95
+ PlainValidator(validate_open_enum(False)),
96
+ ],
97
+ pydantic.Field(alias="maxVersion"),
87
98
  ] = None
88
99
 
89
100
 
90
- class OutputCriblHTTPCompression(str, Enum):
101
+ class OutputCriblHTTPCompression(str, Enum, metaclass=utils.OpenEnumMeta):
91
102
  r"""Codec to use to compress the data before sending"""
92
103
 
93
104
  NONE = "none"
@@ -105,7 +116,7 @@ class OutputCriblHTTPExtraHTTPHeader(BaseModel):
105
116
  name: Optional[str] = None
106
117
 
107
118
 
108
- class OutputCriblHTTPFailedRequestLoggingMode(str, Enum):
119
+ class OutputCriblHTTPFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
109
120
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
110
121
 
111
122
  PAYLOAD = "payload"
@@ -152,7 +163,7 @@ class OutputCriblHTTPTimeoutRetrySettingsTypedDict(TypedDict):
152
163
 
153
164
  class OutputCriblHTTPTimeoutRetrySettings(BaseModel):
154
165
  timeout_retry: Annotated[Optional[bool], pydantic.Field(alias="timeoutRetry")] = (
155
- False
166
+ True
156
167
  )
157
168
 
158
169
  initial_backoff: Annotated[
@@ -167,7 +178,7 @@ class OutputCriblHTTPTimeoutRetrySettings(BaseModel):
167
178
  r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
168
179
 
169
180
 
170
- class OutputCriblHTTPBackpressureBehavior(str, Enum):
181
+ class OutputCriblHTTPBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
171
182
  r"""How to handle events when all receivers are exerting backpressure"""
172
183
 
173
184
  BLOCK = "block"
@@ -190,21 +201,21 @@ class OutputCriblHTTPURL(BaseModel):
190
201
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
191
202
 
192
203
 
193
- class OutputCriblHTTPPqCompressCompression(str, Enum):
204
+ class OutputCriblHTTPPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
194
205
  r"""Codec to use to compress the persisted data"""
195
206
 
196
207
  NONE = "none"
197
208
  GZIP = "gzip"
198
209
 
199
210
 
200
- class OutputCriblHTTPQueueFullBehavior(str, Enum):
211
+ class OutputCriblHTTPQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
201
212
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
202
213
 
203
214
  BLOCK = "block"
204
215
  DROP = "drop"
205
216
 
206
217
 
207
- class OutputCriblHTTPMode(str, Enum):
218
+ class OutputCriblHTTPMode(str, Enum, metaclass=utils.OpenEnumMeta):
208
219
  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."""
209
220
 
210
221
  ERROR = "error"
@@ -335,7 +346,9 @@ class OutputCriblHTTP(BaseModel):
335
346
  ] = None
336
347
  r"""Fields to exclude from the event. By default, all internal fields except `__output` are sent. Example: `cribl_pipe`, `c*`. Wildcards supported."""
337
348
 
338
- compression: Optional[OutputCriblHTTPCompression] = OutputCriblHTTPCompression.GZIP
349
+ compression: Annotated[
350
+ Optional[OutputCriblHTTPCompression], PlainValidator(validate_open_enum(False))
351
+ ] = OutputCriblHTTPCompression.GZIP
339
352
  r"""Codec to use to compress the data before sending"""
340
353
 
341
354
  concurrency: Optional[float] = 5
@@ -374,7 +387,10 @@ class OutputCriblHTTP(BaseModel):
374
387
  r"""Headers to add to all events"""
375
388
 
376
389
  failed_request_logging_mode: Annotated[
377
- Optional[OutputCriblHTTPFailedRequestLoggingMode],
390
+ Annotated[
391
+ Optional[OutputCriblHTTPFailedRequestLoggingMode],
392
+ PlainValidator(validate_open_enum(False)),
393
+ ],
378
394
  pydantic.Field(alias="failedRequestLoggingMode"),
379
395
  ] = OutputCriblHTTPFailedRequestLoggingMode.NONE
380
396
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -397,11 +413,14 @@ class OutputCriblHTTP(BaseModel):
397
413
 
398
414
  response_honor_retry_after_header: Annotated[
399
415
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
400
- ] = False
416
+ ] = True
401
417
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
402
418
 
403
419
  on_backpressure: Annotated[
404
- Optional[OutputCriblHTTPBackpressureBehavior],
420
+ Annotated[
421
+ Optional[OutputCriblHTTPBackpressureBehavior],
422
+ PlainValidator(validate_open_enum(False)),
423
+ ],
405
424
  pydantic.Field(alias="onBackpressure"),
406
425
  ] = OutputCriblHTTPBackpressureBehavior.BLOCK
407
426
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -445,19 +464,28 @@ class OutputCriblHTTP(BaseModel):
445
464
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
446
465
 
447
466
  pq_compress: Annotated[
448
- Optional[OutputCriblHTTPPqCompressCompression],
467
+ Annotated[
468
+ Optional[OutputCriblHTTPPqCompressCompression],
469
+ PlainValidator(validate_open_enum(False)),
470
+ ],
449
471
  pydantic.Field(alias="pqCompress"),
450
472
  ] = OutputCriblHTTPPqCompressCompression.NONE
451
473
  r"""Codec to use to compress the persisted data"""
452
474
 
453
475
  pq_on_backpressure: Annotated[
454
- Optional[OutputCriblHTTPQueueFullBehavior],
476
+ Annotated[
477
+ Optional[OutputCriblHTTPQueueFullBehavior],
478
+ PlainValidator(validate_open_enum(False)),
479
+ ],
455
480
  pydantic.Field(alias="pqOnBackpressure"),
456
481
  ] = OutputCriblHTTPQueueFullBehavior.BLOCK
457
482
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
458
483
 
459
484
  pq_mode: Annotated[
460
- Optional[OutputCriblHTTPMode], pydantic.Field(alias="pqMode")
485
+ Annotated[
486
+ Optional[OutputCriblHTTPMode], PlainValidator(validate_open_enum(False))
487
+ ],
488
+ pydantic.Field(alias="pqMode"),
461
489
  ] = OutputCriblHTTPMode.ERROR
462
490
  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."""
463
491
 
@@ -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
 
@@ -12,14 +15,14 @@ class OutputCriblLakeType(str, Enum):
12
15
  CRIBL_LAKE = "cribl_lake"
13
16
 
14
17
 
15
- class OutputCriblLakeSignatureVersion(str, Enum):
18
+ class OutputCriblLakeSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Signature version to use for signing S3 requests"""
17
20
 
18
21
  V2 = "v2"
19
22
  V4 = "v4"
20
23
 
21
24
 
22
- class OutputCriblLakeObjectACL(str, Enum):
25
+ class OutputCriblLakeObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""Object ACL to assign to uploaded objects"""
24
27
 
25
28
  PRIVATE = "private"
@@ -31,7 +34,7 @@ class OutputCriblLakeObjectACL(str, Enum):
31
34
  BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control"
32
35
 
33
36
 
34
- class OutputCriblLakeStorageClass(str, Enum):
37
+ class OutputCriblLakeStorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
35
38
  r"""Storage class to select for uploaded objects"""
36
39
 
37
40
  STANDARD = "STANDARD"
@@ -44,32 +47,34 @@ class OutputCriblLakeStorageClass(str, Enum):
44
47
  DEEP_ARCHIVE = "DEEP_ARCHIVE"
45
48
 
46
49
 
47
- class OutputCriblLakeServerSideEncryptionForUploadedObjects(str, Enum):
50
+ class OutputCriblLakeServerSideEncryptionForUploadedObjects(
51
+ str, Enum, metaclass=utils.OpenEnumMeta
52
+ ):
48
53
  AES256 = "AES256"
49
54
  AWS_KMS = "aws:kms"
50
55
 
51
56
 
52
- class OutputCriblLakeBackpressureBehavior(str, Enum):
57
+ class OutputCriblLakeBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
58
  r"""How to handle events when all receivers are exerting backpressure"""
54
59
 
55
60
  BLOCK = "block"
56
61
  DROP = "drop"
57
62
 
58
63
 
59
- class OutputCriblLakeDiskSpaceProtection(str, Enum):
64
+ class OutputCriblLakeDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
60
65
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
61
66
 
62
67
  BLOCK = "block"
63
68
  DROP = "drop"
64
69
 
65
70
 
66
- class AwsAuthenticationMethod(str, Enum):
71
+ class AwsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
67
72
  AUTO = "auto"
68
73
  AUTO_RPC = "auto_rpc"
69
74
  MANUAL = "manual"
70
75
 
71
76
 
72
- class OutputCriblLakeFormat(str, Enum):
77
+ class OutputCriblLakeFormat(str, Enum, metaclass=utils.OpenEnumMeta):
73
78
  JSON = "json"
74
79
  PARQUET = "parquet"
75
80
  DDSS = "ddss"
@@ -200,7 +205,10 @@ class OutputCriblLake(BaseModel):
200
205
  r"""S3 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to S3-compatible endpoint."""
201
206
 
202
207
  signature_version: Annotated[
203
- Optional[OutputCriblLakeSignatureVersion],
208
+ Annotated[
209
+ Optional[OutputCriblLakeSignatureVersion],
210
+ PlainValidator(validate_open_enum(False)),
211
+ ],
204
212
  pydantic.Field(alias="signatureVersion"),
205
213
  ] = OutputCriblLakeSignatureVersion.V4
206
214
  r"""Signature version to use for signing S3 requests"""
@@ -249,17 +257,28 @@ class OutputCriblLake(BaseModel):
249
257
  r"""Lake dataset to send the data to."""
250
258
 
251
259
  object_acl: Annotated[
252
- Optional[OutputCriblLakeObjectACL], pydantic.Field(alias="objectACL")
260
+ Annotated[
261
+ Optional[OutputCriblLakeObjectACL],
262
+ PlainValidator(validate_open_enum(False)),
263
+ ],
264
+ pydantic.Field(alias="objectACL"),
253
265
  ] = OutputCriblLakeObjectACL.PRIVATE
254
266
  r"""Object ACL to assign to uploaded objects"""
255
267
 
256
268
  storage_class: Annotated[
257
- Optional[OutputCriblLakeStorageClass], pydantic.Field(alias="storageClass")
269
+ Annotated[
270
+ Optional[OutputCriblLakeStorageClass],
271
+ PlainValidator(validate_open_enum(False)),
272
+ ],
273
+ pydantic.Field(alias="storageClass"),
258
274
  ] = None
259
275
  r"""Storage class to select for uploaded objects"""
260
276
 
261
277
  server_side_encryption: Annotated[
262
- Optional[OutputCriblLakeServerSideEncryptionForUploadedObjects],
278
+ Annotated[
279
+ Optional[OutputCriblLakeServerSideEncryptionForUploadedObjects],
280
+ PlainValidator(validate_open_enum(False)),
281
+ ],
263
282
  pydantic.Field(alias="serverSideEncryption"),
264
283
  ] = None
265
284
 
@@ -300,7 +319,10 @@ class OutputCriblLake(BaseModel):
300
319
  r"""Buffer size used to write to a file"""
301
320
 
302
321
  on_backpressure: Annotated[
303
- Optional[OutputCriblLakeBackpressureBehavior],
322
+ Annotated[
323
+ Optional[OutputCriblLakeBackpressureBehavior],
324
+ PlainValidator(validate_open_enum(False)),
325
+ ],
304
326
  pydantic.Field(alias="onBackpressure"),
305
327
  ] = OutputCriblLakeBackpressureBehavior.BLOCK
306
328
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -311,7 +333,10 @@ class OutputCriblLake(BaseModel):
311
333
  r"""If a file fails to move to its final destination after the maximum number of retries, move it to a designated directory to prevent further errors"""
312
334
 
313
335
  on_disk_full_backpressure: Annotated[
314
- Optional[OutputCriblLakeDiskSpaceProtection],
336
+ Annotated[
337
+ Optional[OutputCriblLakeDiskSpaceProtection],
338
+ PlainValidator(validate_open_enum(False)),
339
+ ],
315
340
  pydantic.Field(alias="onDiskFullBackpressure"),
316
341
  ] = OutputCriblLakeDiskSpaceProtection.BLOCK
317
342
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
@@ -337,12 +362,17 @@ class OutputCriblLake(BaseModel):
337
362
  r"""Maximum number of files that can be waiting for upload before backpressure is applied"""
338
363
 
339
364
  aws_authentication_method: Annotated[
340
- Optional[AwsAuthenticationMethod],
365
+ Annotated[
366
+ Optional[AwsAuthenticationMethod], PlainValidator(validate_open_enum(False))
367
+ ],
341
368
  pydantic.Field(alias="awsAuthenticationMethod"),
342
369
  ] = AwsAuthenticationMethod.AUTO
343
370
 
344
371
  format_: Annotated[
345
- Optional[OutputCriblLakeFormat], pydantic.Field(alias="format")
372
+ Annotated[
373
+ Optional[OutputCriblLakeFormat], PlainValidator(validate_open_enum(False))
374
+ ],
375
+ pydantic.Field(alias="format"),
346
376
  ] = None
347
377
 
348
378
  max_concurrent_file_parts: Annotated[
@@ -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
 
@@ -12,21 +15,21 @@ class OutputCriblTCPType(str, Enum):
12
15
  CRIBL_TCP = "cribl_tcp"
13
16
 
14
17
 
15
- class OutputCriblTCPCompression(str, Enum):
18
+ class OutputCriblTCPCompression(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Codec to use to compress the data before sending"""
17
20
 
18
21
  NONE = "none"
19
22
  GZIP = "gzip"
20
23
 
21
24
 
22
- class OutputCriblTCPMinimumTLSVersion(str, Enum):
25
+ class OutputCriblTCPMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  TL_SV1 = "TLSv1"
24
27
  TL_SV1_1 = "TLSv1.1"
25
28
  TL_SV1_2 = "TLSv1.2"
26
29
  TL_SV1_3 = "TLSv1.3"
27
30
 
28
31
 
29
- class OutputCriblTCPMaximumTLSVersion(str, Enum):
32
+ class OutputCriblTCPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
30
33
  TL_SV1 = "TLSv1"
31
34
  TL_SV1_1 = "TLSv1.1"
32
35
  TL_SV1_2 = "TLSv1.2"
@@ -86,15 +89,23 @@ class OutputCriblTCPTLSSettingsClientSide(BaseModel):
86
89
  r"""Passphrase to use to decrypt private key"""
87
90
 
88
91
  min_version: Annotated[
89
- Optional[OutputCriblTCPMinimumTLSVersion], pydantic.Field(alias="minVersion")
92
+ Annotated[
93
+ Optional[OutputCriblTCPMinimumTLSVersion],
94
+ PlainValidator(validate_open_enum(False)),
95
+ ],
96
+ pydantic.Field(alias="minVersion"),
90
97
  ] = None
91
98
 
92
99
  max_version: Annotated[
93
- Optional[OutputCriblTCPMaximumTLSVersion], pydantic.Field(alias="maxVersion")
100
+ Annotated[
101
+ Optional[OutputCriblTCPMaximumTLSVersion],
102
+ PlainValidator(validate_open_enum(False)),
103
+ ],
104
+ pydantic.Field(alias="maxVersion"),
94
105
  ] = None
95
106
 
96
107
 
97
- class OutputCriblTCPBackpressureBehavior(str, Enum):
108
+ class OutputCriblTCPBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
98
109
  r"""How to handle events when all receivers are exerting backpressure"""
99
110
 
100
111
  BLOCK = "block"
@@ -102,7 +113,7 @@ class OutputCriblTCPBackpressureBehavior(str, Enum):
102
113
  QUEUE = "queue"
103
114
 
104
115
 
105
- class OutputCriblTCPTLS(str, Enum):
116
+ class OutputCriblTCPTLS(str, Enum, metaclass=utils.OpenEnumMeta):
106
117
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
107
118
 
108
119
  INHERIT = "inherit"
@@ -129,7 +140,9 @@ class OutputCriblTCPHost(BaseModel):
129
140
  port: Optional[float] = 10300
130
141
  r"""The port to connect to on the provided host"""
131
142
 
132
- tls: Optional[OutputCriblTCPTLS] = OutputCriblTCPTLS.INHERIT
143
+ tls: Annotated[
144
+ Optional[OutputCriblTCPTLS], PlainValidator(validate_open_enum(False))
145
+ ] = OutputCriblTCPTLS.INHERIT
133
146
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
134
147
 
135
148
  servername: Optional[str] = None
@@ -139,21 +152,21 @@ class OutputCriblTCPHost(BaseModel):
139
152
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
140
153
 
141
154
 
142
- class OutputCriblTCPPqCompressCompression(str, Enum):
155
+ class OutputCriblTCPPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
143
156
  r"""Codec to use to compress the persisted data"""
144
157
 
145
158
  NONE = "none"
146
159
  GZIP = "gzip"
147
160
 
148
161
 
149
- class OutputCriblTCPQueueFullBehavior(str, Enum):
162
+ class OutputCriblTCPQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
150
163
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
151
164
 
152
165
  BLOCK = "block"
153
166
  DROP = "drop"
154
167
 
155
168
 
156
- class OutputCriblTCPMode(str, Enum):
169
+ class OutputCriblTCPMode(str, Enum, metaclass=utils.OpenEnumMeta):
157
170
  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."""
158
171
 
159
172
  ERROR = "error"
@@ -255,7 +268,9 @@ class OutputCriblTCP(BaseModel):
255
268
  )
256
269
  r"""Use load-balanced destinations"""
257
270
 
258
- compression: Optional[OutputCriblTCPCompression] = OutputCriblTCPCompression.GZIP
271
+ compression: Annotated[
272
+ Optional[OutputCriblTCPCompression], PlainValidator(validate_open_enum(False))
273
+ ] = OutputCriblTCPCompression.GZIP
259
274
  r"""Codec to use to compress the data before sending"""
260
275
 
261
276
  log_failed_requests: Annotated[
@@ -291,7 +306,10 @@ class OutputCriblTCP(BaseModel):
291
306
  r"""Fields to exclude from the event. By default, all internal fields except `__output` are sent. Example: `cribl_pipe`, `c*`. Wildcards supported."""
292
307
 
293
308
  on_backpressure: Annotated[
294
- Optional[OutputCriblTCPBackpressureBehavior],
309
+ Annotated[
310
+ Optional[OutputCriblTCPBackpressureBehavior],
311
+ PlainValidator(validate_open_enum(False)),
312
+ ],
295
313
  pydantic.Field(alias="onBackpressure"),
296
314
  ] = OutputCriblTCPBackpressureBehavior.BLOCK
297
315
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -339,20 +357,29 @@ class OutputCriblTCP(BaseModel):
339
357
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
340
358
 
341
359
  pq_compress: Annotated[
342
- Optional[OutputCriblTCPPqCompressCompression],
360
+ Annotated[
361
+ Optional[OutputCriblTCPPqCompressCompression],
362
+ PlainValidator(validate_open_enum(False)),
363
+ ],
343
364
  pydantic.Field(alias="pqCompress"),
344
365
  ] = OutputCriblTCPPqCompressCompression.NONE
345
366
  r"""Codec to use to compress the persisted data"""
346
367
 
347
368
  pq_on_backpressure: Annotated[
348
- Optional[OutputCriblTCPQueueFullBehavior],
369
+ Annotated[
370
+ Optional[OutputCriblTCPQueueFullBehavior],
371
+ PlainValidator(validate_open_enum(False)),
372
+ ],
349
373
  pydantic.Field(alias="pqOnBackpressure"),
350
374
  ] = OutputCriblTCPQueueFullBehavior.BLOCK
351
375
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
352
376
 
353
- pq_mode: Annotated[Optional[OutputCriblTCPMode], pydantic.Field(alias="pqMode")] = (
354
- OutputCriblTCPMode.ERROR
355
- )
377
+ pq_mode: Annotated[
378
+ Annotated[
379
+ Optional[OutputCriblTCPMode], PlainValidator(validate_open_enum(False))
380
+ ],
381
+ pydantic.Field(alias="pqMode"),
382
+ ] = OutputCriblTCPMode.ERROR
356
383
  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."""
357
384
 
358
385
  pq_controls: Annotated[
@@ -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,7 +26,9 @@ class OutputCrowdstrikeNextGenSiemExtraHTTPHeader(BaseModel):
23
26
  name: Optional[str] = None
24
27
 
25
28
 
26
- class OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode(str, Enum):
29
+ class OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode(
30
+ str, Enum, metaclass=utils.OpenEnumMeta
31
+ ):
27
32
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
28
33
 
29
34
  PAYLOAD = "payload"
@@ -31,14 +36,18 @@ class OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode(str, Enum):
31
36
  NONE = "none"
32
37
 
33
38
 
34
- class OutputCrowdstrikeNextGenSiemRequestFormat(str, Enum):
39
+ class OutputCrowdstrikeNextGenSiemRequestFormat(
40
+ str, Enum, metaclass=utils.OpenEnumMeta
41
+ ):
35
42
  r"""When set to JSON, the event is automatically formatted with required fields before sending. When set to Raw, only the event's `_raw` value is sent."""
36
43
 
37
44
  JSON = "JSON"
38
45
  RAW = "raw"
39
46
 
40
47
 
41
- class OutputCrowdstrikeNextGenSiemAuthenticationMethod(str, Enum):
48
+ class OutputCrowdstrikeNextGenSiemAuthenticationMethod(
49
+ str, Enum, metaclass=utils.OpenEnumMeta
50
+ ):
42
51
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
43
52
 
44
53
  MANUAL = "manual"
@@ -99,7 +108,9 @@ class OutputCrowdstrikeNextGenSiemTimeoutRetrySettings(BaseModel):
99
108
  r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
100
109
 
101
110
 
102
- class OutputCrowdstrikeNextGenSiemBackpressureBehavior(str, Enum):
111
+ class OutputCrowdstrikeNextGenSiemBackpressureBehavior(
112
+ str, Enum, metaclass=utils.OpenEnumMeta
113
+ ):
103
114
  r"""How to handle events when all receivers are exerting backpressure"""
104
115
 
105
116
  BLOCK = "block"
@@ -107,21 +118,23 @@ class OutputCrowdstrikeNextGenSiemBackpressureBehavior(str, Enum):
107
118
  QUEUE = "queue"
108
119
 
109
120
 
110
- class OutputCrowdstrikeNextGenSiemCompression(str, Enum):
121
+ class OutputCrowdstrikeNextGenSiemCompression(str, Enum, metaclass=utils.OpenEnumMeta):
111
122
  r"""Codec to use to compress the persisted data"""
112
123
 
113
124
  NONE = "none"
114
125
  GZIP = "gzip"
115
126
 
116
127
 
117
- class OutputCrowdstrikeNextGenSiemQueueFullBehavior(str, Enum):
128
+ class OutputCrowdstrikeNextGenSiemQueueFullBehavior(
129
+ str, Enum, metaclass=utils.OpenEnumMeta
130
+ ):
118
131
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
119
132
 
120
133
  BLOCK = "block"
121
134
  DROP = "drop"
122
135
 
123
136
 
124
- class OutputCrowdstrikeNextGenSiemMode(str, Enum):
137
+ class OutputCrowdstrikeNextGenSiemMode(str, Enum, metaclass=utils.OpenEnumMeta):
125
138
  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."""
126
139
 
127
140
  ERROR = "error"
@@ -285,7 +298,10 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
285
298
  r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
286
299
 
287
300
  failed_request_logging_mode: Annotated[
288
- Optional[OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode],
301
+ Annotated[
302
+ Optional[OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode],
303
+ PlainValidator(validate_open_enum(False)),
304
+ ],
289
305
  pydantic.Field(alias="failedRequestLoggingMode"),
290
306
  ] = OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode.NONE
291
307
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -296,13 +312,19 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
296
312
  r"""List of headers that are safe to log in plain text"""
297
313
 
298
314
  format_: Annotated[
299
- Optional[OutputCrowdstrikeNextGenSiemRequestFormat],
315
+ Annotated[
316
+ Optional[OutputCrowdstrikeNextGenSiemRequestFormat],
317
+ PlainValidator(validate_open_enum(False)),
318
+ ],
300
319
  pydantic.Field(alias="format"),
301
320
  ] = OutputCrowdstrikeNextGenSiemRequestFormat.JSON
302
321
  r"""When set to JSON, the event is automatically formatted with required fields before sending. When set to Raw, only the event's `_raw` value is sent."""
303
322
 
304
323
  auth_type: Annotated[
305
- Optional[OutputCrowdstrikeNextGenSiemAuthenticationMethod],
324
+ Annotated[
325
+ Optional[OutputCrowdstrikeNextGenSiemAuthenticationMethod],
326
+ PlainValidator(validate_open_enum(False)),
327
+ ],
306
328
  pydantic.Field(alias="authType"),
307
329
  ] = OutputCrowdstrikeNextGenSiemAuthenticationMethod.MANUAL
308
330
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
@@ -320,11 +342,14 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
320
342
 
321
343
  response_honor_retry_after_header: Annotated[
322
344
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
323
- ] = False
345
+ ] = True
324
346
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
325
347
 
326
348
  on_backpressure: Annotated[
327
- Optional[OutputCrowdstrikeNextGenSiemBackpressureBehavior],
349
+ Annotated[
350
+ Optional[OutputCrowdstrikeNextGenSiemBackpressureBehavior],
351
+ PlainValidator(validate_open_enum(False)),
352
+ ],
328
353
  pydantic.Field(alias="onBackpressure"),
329
354
  ] = OutputCrowdstrikeNextGenSiemBackpressureBehavior.BLOCK
330
355
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -350,19 +375,29 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
350
375
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
351
376
 
352
377
  pq_compress: Annotated[
353
- Optional[OutputCrowdstrikeNextGenSiemCompression],
378
+ Annotated[
379
+ Optional[OutputCrowdstrikeNextGenSiemCompression],
380
+ PlainValidator(validate_open_enum(False)),
381
+ ],
354
382
  pydantic.Field(alias="pqCompress"),
355
383
  ] = OutputCrowdstrikeNextGenSiemCompression.NONE
356
384
  r"""Codec to use to compress the persisted data"""
357
385
 
358
386
  pq_on_backpressure: Annotated[
359
- Optional[OutputCrowdstrikeNextGenSiemQueueFullBehavior],
387
+ Annotated[
388
+ Optional[OutputCrowdstrikeNextGenSiemQueueFullBehavior],
389
+ PlainValidator(validate_open_enum(False)),
390
+ ],
360
391
  pydantic.Field(alias="pqOnBackpressure"),
361
392
  ] = OutputCrowdstrikeNextGenSiemQueueFullBehavior.BLOCK
362
393
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
363
394
 
364
395
  pq_mode: Annotated[
365
- Optional[OutputCrowdstrikeNextGenSiemMode], pydantic.Field(alias="pqMode")
396
+ Annotated[
397
+ Optional[OutputCrowdstrikeNextGenSiemMode],
398
+ PlainValidator(validate_open_enum(False)),
399
+ ],
400
+ pydantic.Field(alias="pqMode"),
366
401
  ] = OutputCrowdstrikeNextGenSiemMode.ERROR
367
402
  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."""
368
403