cribl-control-plane 0.0.50__py3-none-any.whl → 0.0.50rc2__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 (176) hide show
  1. cribl_control_plane/_version.py +3 -5
  2. cribl_control_plane/errors/healthstatus_error.py +8 -2
  3. cribl_control_plane/groups_sdk.py +4 -4
  4. cribl_control_plane/health.py +6 -2
  5. cribl_control_plane/models/__init__.py +56 -31
  6. cribl_control_plane/models/cacheconnection.py +10 -2
  7. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  8. cribl_control_plane/models/cloudprovider.py +2 -1
  9. cribl_control_plane/models/configgroup.py +24 -4
  10. cribl_control_plane/models/configgroupcloud.py +6 -2
  11. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  12. cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
  13. cribl_control_plane/models/createversionpushop.py +5 -5
  14. cribl_control_plane/models/cribllakedataset.py +8 -2
  15. cribl_control_plane/models/datasetmetadata.py +8 -2
  16. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  17. cribl_control_plane/models/error.py +16 -0
  18. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  19. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  20. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  21. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  22. cribl_control_plane/models/gethealthinfoop.py +17 -0
  23. cribl_control_plane/models/getsummaryop.py +7 -2
  24. cribl_control_plane/models/getversionshowop.py +6 -5
  25. cribl_control_plane/models/gitinfo.py +14 -3
  26. cribl_control_plane/models/gitshowresult.py +19 -0
  27. cribl_control_plane/models/hbcriblinfo.py +24 -3
  28. cribl_control_plane/models/healthstatus.py +7 -4
  29. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  30. cribl_control_plane/models/input.py +65 -63
  31. cribl_control_plane/models/inputappscope.py +34 -14
  32. cribl_control_plane/models/inputazureblob.py +17 -6
  33. cribl_control_plane/models/inputcollection.py +11 -4
  34. cribl_control_plane/models/inputconfluentcloud.py +41 -32
  35. cribl_control_plane/models/inputcribl.py +11 -4
  36. cribl_control_plane/models/inputcriblhttp.py +23 -8
  37. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  38. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  39. cribl_control_plane/models/inputcribltcp.py +23 -8
  40. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  41. cribl_control_plane/models/inputdatadogagent.py +24 -8
  42. cribl_control_plane/models/inputdatagen.py +11 -4
  43. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  44. cribl_control_plane/models/inputelastic.py +40 -14
  45. cribl_control_plane/models/inputeventhub.py +15 -6
  46. cribl_control_plane/models/inputexec.py +14 -6
  47. cribl_control_plane/models/inputfile.py +15 -6
  48. cribl_control_plane/models/inputfirehose.py +23 -8
  49. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  50. cribl_control_plane/models/inputgrafana.py +67 -24
  51. cribl_control_plane/models/inputhttp.py +23 -8
  52. cribl_control_plane/models/inputhttpraw.py +23 -8
  53. cribl_control_plane/models/inputjournalfiles.py +12 -4
  54. cribl_control_plane/models/inputkafka.py +41 -28
  55. cribl_control_plane/models/inputkinesis.py +38 -14
  56. cribl_control_plane/models/inputkubeevents.py +11 -4
  57. cribl_control_plane/models/inputkubelogs.py +16 -8
  58. cribl_control_plane/models/inputkubemetrics.py +16 -8
  59. cribl_control_plane/models/inputloki.py +29 -10
  60. cribl_control_plane/models/inputmetrics.py +23 -8
  61. cribl_control_plane/models/inputmodeldriventelemetry.py +32 -10
  62. cribl_control_plane/models/inputmsk.py +48 -30
  63. cribl_control_plane/models/inputnetflow.py +11 -4
  64. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  65. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  66. cribl_control_plane/models/inputoffice365service.py +35 -16
  67. cribl_control_plane/models/inputopentelemetry.py +38 -16
  68. cribl_control_plane/models/inputprometheus.py +50 -18
  69. cribl_control_plane/models/inputprometheusrw.py +30 -10
  70. cribl_control_plane/models/inputrawudp.py +11 -4
  71. cribl_control_plane/models/inputs3.py +21 -8
  72. cribl_control_plane/models/inputs3inventory.py +26 -10
  73. cribl_control_plane/models/inputsecuritylake.py +27 -10
  74. cribl_control_plane/models/inputsnmp.py +16 -6
  75. cribl_control_plane/models/inputsplunk.py +33 -12
  76. cribl_control_plane/models/inputsplunkhec.py +29 -10
  77. cribl_control_plane/models/inputsplunksearch.py +33 -14
  78. cribl_control_plane/models/inputsqs.py +27 -10
  79. cribl_control_plane/models/inputsyslog.py +43 -16
  80. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  81. cribl_control_plane/models/inputsystemstate.py +16 -8
  82. cribl_control_plane/models/inputtcp.py +29 -10
  83. cribl_control_plane/models/inputtcpjson.py +29 -10
  84. cribl_control_plane/models/inputwef.py +37 -14
  85. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  86. cribl_control_plane/models/inputwineventlogs.py +20 -10
  87. cribl_control_plane/models/inputwiz.py +21 -8
  88. cribl_control_plane/models/inputwizwebhook.py +23 -8
  89. cribl_control_plane/models/inputzscalerhec.py +29 -10
  90. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  91. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  92. cribl_control_plane/models/masterworkerentry.py +7 -2
  93. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  94. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  95. cribl_control_plane/models/nodeprovidedinfo.py +3 -0
  96. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  97. cribl_control_plane/models/nodeupgradestate.py +2 -1
  98. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  99. cribl_control_plane/models/output.py +84 -79
  100. cribl_control_plane/models/outputazureblob.py +48 -18
  101. cribl_control_plane/models/outputazuredataexplorer.py +73 -28
  102. cribl_control_plane/models/outputazureeventhub.py +40 -18
  103. cribl_control_plane/models/outputazurelogs.py +35 -12
  104. cribl_control_plane/models/outputclickhouse.py +55 -20
  105. cribl_control_plane/models/outputcloudwatch.py +29 -10
  106. cribl_control_plane/models/outputconfluentcloud.py +71 -44
  107. cribl_control_plane/models/outputcriblhttp.py +44 -16
  108. cribl_control_plane/models/outputcribllake.py +46 -16
  109. cribl_control_plane/models/outputcribltcp.py +45 -18
  110. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +49 -14
  111. cribl_control_plane/models/outputdatabricks.py +282 -0
  112. cribl_control_plane/models/outputdatadog.py +48 -20
  113. cribl_control_plane/models/outputdataset.py +46 -18
  114. cribl_control_plane/models/outputdiskspool.py +7 -2
  115. cribl_control_plane/models/outputdls3.py +68 -24
  116. cribl_control_plane/models/outputdynatracehttp.py +53 -20
  117. cribl_control_plane/models/outputdynatraceotlp.py +55 -22
  118. cribl_control_plane/models/outputelastic.py +43 -18
  119. cribl_control_plane/models/outputelasticcloud.py +36 -12
  120. cribl_control_plane/models/outputexabeam.py +29 -10
  121. cribl_control_plane/models/outputfilesystem.py +39 -14
  122. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  123. cribl_control_plane/models/outputgooglecloudlogging.py +50 -18
  124. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  125. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  126. cribl_control_plane/models/outputgrafanacloud.py +97 -32
  127. cribl_control_plane/models/outputgraphite.py +31 -14
  128. cribl_control_plane/models/outputhoneycomb.py +35 -12
  129. cribl_control_plane/models/outputhumiohec.py +43 -16
  130. cribl_control_plane/models/outputinfluxdb.py +42 -16
  131. cribl_control_plane/models/outputkafka.py +69 -40
  132. cribl_control_plane/models/outputkinesis.py +40 -16
  133. cribl_control_plane/models/outputloki.py +41 -16
  134. cribl_control_plane/models/outputminio.py +65 -24
  135. cribl_control_plane/models/outputmsk.py +77 -42
  136. cribl_control_plane/models/outputnewrelic.py +43 -18
  137. cribl_control_plane/models/outputnewrelicevents.py +41 -14
  138. cribl_control_plane/models/outputopentelemetry.py +67 -26
  139. cribl_control_plane/models/outputprometheus.py +35 -12
  140. cribl_control_plane/models/outputring.py +19 -8
  141. cribl_control_plane/models/outputs3.py +68 -26
  142. cribl_control_plane/models/outputsecuritylake.py +52 -18
  143. cribl_control_plane/models/outputsentinel.py +45 -18
  144. cribl_control_plane/models/outputsentineloneaisiem.py +50 -18
  145. cribl_control_plane/models/outputservicenow.py +60 -24
  146. cribl_control_plane/models/outputsignalfx.py +37 -14
  147. cribl_control_plane/models/outputsns.py +36 -14
  148. cribl_control_plane/models/outputsplunk.py +60 -24
  149. cribl_control_plane/models/outputsplunkhec.py +35 -12
  150. cribl_control_plane/models/outputsplunklb.py +77 -30
  151. cribl_control_plane/models/outputsqs.py +41 -16
  152. cribl_control_plane/models/outputstatsd.py +30 -14
  153. cribl_control_plane/models/outputstatsdext.py +29 -12
  154. cribl_control_plane/models/outputsumologic.py +35 -12
  155. cribl_control_plane/models/outputsyslog.py +58 -24
  156. cribl_control_plane/models/outputtcpjson.py +52 -20
  157. cribl_control_plane/models/outputwavefront.py +35 -12
  158. cribl_control_plane/models/outputwebhook.py +58 -22
  159. cribl_control_plane/models/outputxsiam.py +35 -14
  160. cribl_control_plane/models/productscore.py +2 -1
  161. cribl_control_plane/models/rbacresource.py +2 -1
  162. cribl_control_plane/models/resourcepolicy.py +4 -2
  163. cribl_control_plane/models/routeconf.py +3 -4
  164. cribl_control_plane/models/runnablejobcollection.py +30 -13
  165. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  166. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  167. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  168. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  169. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  170. cribl_control_plane/models/workertypes.py +2 -1
  171. {cribl_control_plane-0.0.50.dist-info → cribl_control_plane-0.0.50rc2.dist-info}/METADATA +1 -1
  172. cribl_control_plane-0.0.50rc2.dist-info/RECORD +327 -0
  173. cribl_control_plane/models/appmode.py +0 -13
  174. cribl_control_plane/models/routecloneconf.py +0 -13
  175. cribl_control_plane-0.0.50.dist-info/RECORD +0 -325
  176. {cribl_control_plane-0.0.50.dist-info → cribl_control_plane-0.0.50rc2.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,7 +15,7 @@ class OutputMinioType(str, Enum):
12
15
  MINIO = "minio"
13
16
 
14
17
 
15
- class OutputMinioAuthenticationMethod(str, Enum):
18
+ class OutputMinioAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""AWS authentication method. Choose Auto to use IAM roles."""
17
20
 
18
21
  AUTO = "auto"
@@ -20,14 +23,14 @@ class OutputMinioAuthenticationMethod(str, Enum):
20
23
  SECRET = "secret"
21
24
 
22
25
 
23
- class OutputMinioSignatureVersion(str, Enum):
26
+ class OutputMinioSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
24
27
  r"""Signature version to use for signing MinIO requests"""
25
28
 
26
29
  V2 = "v2"
27
30
  V4 = "v4"
28
31
 
29
32
 
30
- class OutputMinioObjectACL(str, Enum):
33
+ class OutputMinioObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""Object ACL to assign to uploaded objects"""
32
35
 
33
36
  PRIVATE = "private"
@@ -39,20 +42,20 @@ class OutputMinioObjectACL(str, Enum):
39
42
  BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control"
40
43
 
41
44
 
42
- class OutputMinioStorageClass(str, Enum):
45
+ class OutputMinioStorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
43
46
  r"""Storage class to select for uploaded objects"""
44
47
 
45
48
  STANDARD = "STANDARD"
46
49
  REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY"
47
50
 
48
51
 
49
- class ServerSideEncryption(str, Enum):
52
+ class ServerSideEncryption(str, Enum, metaclass=utils.OpenEnumMeta):
50
53
  r"""Server-side encryption for uploaded objects"""
51
54
 
52
55
  AES256 = "AES256"
53
56
 
54
57
 
55
- class OutputMinioDataFormat(str, Enum):
58
+ class OutputMinioDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
56
59
  r"""Format of the output data"""
57
60
 
58
61
  JSON = "json"
@@ -60,28 +63,28 @@ class OutputMinioDataFormat(str, Enum):
60
63
  PARQUET = "parquet"
61
64
 
62
65
 
63
- class OutputMinioBackpressureBehavior(str, Enum):
66
+ class OutputMinioBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
64
67
  r"""How to handle events when all receivers are exerting backpressure"""
65
68
 
66
69
  BLOCK = "block"
67
70
  DROP = "drop"
68
71
 
69
72
 
70
- class OutputMinioDiskSpaceProtection(str, Enum):
73
+ class OutputMinioDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
71
74
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
72
75
 
73
76
  BLOCK = "block"
74
77
  DROP = "drop"
75
78
 
76
79
 
77
- class OutputMinioCompression(str, Enum):
80
+ class OutputMinioCompression(str, Enum, metaclass=utils.OpenEnumMeta):
78
81
  r"""Data compression format to apply to HTTP content before it is delivered"""
79
82
 
80
83
  NONE = "none"
81
84
  GZIP = "gzip"
82
85
 
83
86
 
84
- class OutputMinioCompressionLevel(str, Enum):
87
+ class OutputMinioCompressionLevel(str, Enum, metaclass=utils.OpenEnumMeta):
85
88
  r"""Compression level to apply before moving files to final destination"""
86
89
 
87
90
  BEST_SPEED = "best_speed"
@@ -89,7 +92,7 @@ class OutputMinioCompressionLevel(str, Enum):
89
92
  BEST_COMPRESSION = "best_compression"
90
93
 
91
94
 
92
- class OutputMinioParquetVersion(str, Enum):
95
+ class OutputMinioParquetVersion(str, Enum, metaclass=utils.OpenEnumMeta):
93
96
  r"""Determines which data types are supported and how they are represented"""
94
97
 
95
98
  PARQUET_1_0 = "PARQUET_1_0"
@@ -97,7 +100,7 @@ class OutputMinioParquetVersion(str, Enum):
97
100
  PARQUET_2_6 = "PARQUET_2_6"
98
101
 
99
102
 
100
- class OutputMinioDataPageVersion(str, Enum):
103
+ class OutputMinioDataPageVersion(str, Enum, metaclass=utils.OpenEnumMeta):
101
104
  r"""Serialization format of data pages. Note that some reader implementations use Data page V2's attributes to work more efficiently, while others ignore it."""
102
105
 
103
106
  DATA_PAGE_V1 = "DATA_PAGE_V1"
@@ -251,7 +254,10 @@ class OutputMinio(BaseModel):
251
254
  r"""Tags for filtering and grouping in @{product}"""
252
255
 
253
256
  aws_authentication_method: Annotated[
254
- Optional[OutputMinioAuthenticationMethod],
257
+ Annotated[
258
+ Optional[OutputMinioAuthenticationMethod],
259
+ PlainValidator(validate_open_enum(False)),
260
+ ],
255
261
  pydantic.Field(alias="awsAuthenticationMethod"),
256
262
  ] = OutputMinioAuthenticationMethod.AUTO
257
263
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -278,22 +284,35 @@ class OutputMinio(BaseModel):
278
284
  r"""Root directory to prepend to path before uploading. Enter a constant, or a JavaScript expression enclosed in quotes or backticks."""
279
285
 
280
286
  signature_version: Annotated[
281
- Optional[OutputMinioSignatureVersion], pydantic.Field(alias="signatureVersion")
287
+ Annotated[
288
+ Optional[OutputMinioSignatureVersion],
289
+ PlainValidator(validate_open_enum(False)),
290
+ ],
291
+ pydantic.Field(alias="signatureVersion"),
282
292
  ] = OutputMinioSignatureVersion.V4
283
293
  r"""Signature version to use for signing MinIO requests"""
284
294
 
285
295
  object_acl: Annotated[
286
- Optional[OutputMinioObjectACL], pydantic.Field(alias="objectACL")
296
+ Annotated[
297
+ Optional[OutputMinioObjectACL], PlainValidator(validate_open_enum(False))
298
+ ],
299
+ pydantic.Field(alias="objectACL"),
287
300
  ] = OutputMinioObjectACL.PRIVATE
288
301
  r"""Object ACL to assign to uploaded objects"""
289
302
 
290
303
  storage_class: Annotated[
291
- Optional[OutputMinioStorageClass], pydantic.Field(alias="storageClass")
304
+ Annotated[
305
+ Optional[OutputMinioStorageClass], PlainValidator(validate_open_enum(False))
306
+ ],
307
+ pydantic.Field(alias="storageClass"),
292
308
  ] = None
293
309
  r"""Storage class to select for uploaded objects"""
294
310
 
295
311
  server_side_encryption: Annotated[
296
- Optional[ServerSideEncryption], pydantic.Field(alias="serverSideEncryption")
312
+ Annotated[
313
+ Optional[ServerSideEncryption], PlainValidator(validate_open_enum(False))
314
+ ],
315
+ pydantic.Field(alias="serverSideEncryption"),
297
316
  ] = None
298
317
  r"""Server-side encryption for uploaded objects"""
299
318
 
@@ -323,7 +342,10 @@ class OutputMinio(BaseModel):
323
342
  r"""JavaScript expression defining how files are partitioned and organized. Default is date-based. If blank, Stream will fall back to the event's __partition field value – if present – otherwise to each location's root directory."""
324
343
 
325
344
  format_: Annotated[
326
- Optional[OutputMinioDataFormat], pydantic.Field(alias="format")
345
+ Annotated[
346
+ Optional[OutputMinioDataFormat], PlainValidator(validate_open_enum(False))
347
+ ],
348
+ pydantic.Field(alias="format"),
327
349
  ] = OutputMinioDataFormat.JSON
328
350
  r"""Format of the output data"""
329
351
 
@@ -356,7 +378,10 @@ class OutputMinio(BaseModel):
356
378
  r"""Buffer size used to write to a file"""
357
379
 
358
380
  on_backpressure: Annotated[
359
- Optional[OutputMinioBackpressureBehavior],
381
+ Annotated[
382
+ Optional[OutputMinioBackpressureBehavior],
383
+ PlainValidator(validate_open_enum(False)),
384
+ ],
360
385
  pydantic.Field(alias="onBackpressure"),
361
386
  ] = OutputMinioBackpressureBehavior.BLOCK
362
387
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -367,7 +392,10 @@ class OutputMinio(BaseModel):
367
392
  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"""
368
393
 
369
394
  on_disk_full_backpressure: Annotated[
370
- Optional[OutputMinioDiskSpaceProtection],
395
+ Annotated[
396
+ Optional[OutputMinioDiskSpaceProtection],
397
+ PlainValidator(validate_open_enum(False)),
398
+ ],
371
399
  pydantic.Field(alias="onDiskFullBackpressure"),
372
400
  ] = OutputMinioDiskSpaceProtection.BLOCK
373
401
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
@@ -395,11 +423,17 @@ class OutputMinio(BaseModel):
395
423
  aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
396
424
  r"""Select or create a stored secret that references your access key and secret key"""
397
425
 
398
- compress: Optional[OutputMinioCompression] = OutputMinioCompression.GZIP
426
+ compress: Annotated[
427
+ Optional[OutputMinioCompression], PlainValidator(validate_open_enum(False))
428
+ ] = OutputMinioCompression.GZIP
399
429
  r"""Data compression format to apply to HTTP content before it is delivered"""
400
430
 
401
431
  compression_level: Annotated[
402
- Optional[OutputMinioCompressionLevel], pydantic.Field(alias="compressionLevel")
432
+ Annotated[
433
+ Optional[OutputMinioCompressionLevel],
434
+ PlainValidator(validate_open_enum(False)),
435
+ ],
436
+ pydantic.Field(alias="compressionLevel"),
403
437
  ] = OutputMinioCompressionLevel.BEST_SPEED
404
438
  r"""Compression level to apply before moving files to final destination"""
405
439
 
@@ -409,12 +443,19 @@ class OutputMinio(BaseModel):
409
443
  r"""Automatically calculate the schema based on the events of each Parquet file generated"""
410
444
 
411
445
  parquet_version: Annotated[
412
- Optional[OutputMinioParquetVersion], pydantic.Field(alias="parquetVersion")
446
+ Annotated[
447
+ Optional[OutputMinioParquetVersion],
448
+ PlainValidator(validate_open_enum(False)),
449
+ ],
450
+ pydantic.Field(alias="parquetVersion"),
413
451
  ] = OutputMinioParquetVersion.PARQUET_2_6
414
452
  r"""Determines which data types are supported and how they are represented"""
415
453
 
416
454
  parquet_data_page_version: Annotated[
417
- Optional[OutputMinioDataPageVersion],
455
+ Annotated[
456
+ Optional[OutputMinioDataPageVersion],
457
+ PlainValidator(validate_open_enum(False)),
458
+ ],
418
459
  pydantic.Field(alias="parquetDataPageVersion"),
419
460
  ] = OutputMinioDataPageVersion.DATA_PAGE_V2
420
461
  r"""Serialization format of data pages. Note that some reader implementations use Data page V2's attributes to work more efficiently, while others ignore it."""
@@ -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,7 +15,7 @@ class OutputMskType(str, Enum):
12
15
  MSK = "msk"
13
16
 
14
17
 
15
- class OutputMskAcknowledgments(int, Enum):
18
+ class OutputMskAcknowledgments(int, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Control the number of required acknowledgments."""
17
20
 
18
21
  ONE = 1
@@ -20,7 +23,7 @@ class OutputMskAcknowledgments(int, Enum):
20
23
  MINUS_1 = -1
21
24
 
22
25
 
23
- class OutputMskRecordDataFormat(str, Enum):
26
+ class OutputMskRecordDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
24
27
  r"""Format to use to serialize events before writing to Kafka."""
25
28
 
26
29
  JSON = "json"
@@ -28,7 +31,7 @@ class OutputMskRecordDataFormat(str, Enum):
28
31
  PROTOBUF = "protobuf"
29
32
 
30
33
 
31
- class OutputMskCompression(str, Enum):
34
+ class OutputMskCompression(str, Enum, metaclass=utils.OpenEnumMeta):
32
35
  r"""Codec to use to compress the data before sending to Kafka"""
33
36
 
34
37
  NONE = "none"
@@ -37,13 +40,6 @@ class OutputMskCompression(str, Enum):
37
40
  LZ4 = "lz4"
38
41
 
39
42
 
40
- class OutputMskSchemaType(str, Enum):
41
- r"""The schema format used to encode and decode event data"""
42
-
43
- AVRO = "avro"
44
- JSON = "json"
45
-
46
-
47
43
  class OutputMskAuthTypedDict(TypedDict):
48
44
  r"""Credentials to use when authenticating with the schema registry using basic HTTP authentication"""
49
45
 
@@ -63,14 +59,18 @@ class OutputMskAuth(BaseModel):
63
59
  r"""Select or create a secret that references your credentials"""
64
60
 
65
61
 
66
- class OutputMskKafkaSchemaRegistryMinimumTLSVersion(str, Enum):
62
+ class OutputMskKafkaSchemaRegistryMinimumTLSVersion(
63
+ str, Enum, metaclass=utils.OpenEnumMeta
64
+ ):
67
65
  TL_SV1 = "TLSv1"
68
66
  TL_SV1_1 = "TLSv1.1"
69
67
  TL_SV1_2 = "TLSv1.2"
70
68
  TL_SV1_3 = "TLSv1.3"
71
69
 
72
70
 
73
- class OutputMskKafkaSchemaRegistryMaximumTLSVersion(str, Enum):
71
+ class OutputMskKafkaSchemaRegistryMaximumTLSVersion(
72
+ str, Enum, metaclass=utils.OpenEnumMeta
73
+ ):
74
74
  TL_SV1 = "TLSv1"
75
75
  TL_SV1_1 = "TLSv1.1"
76
76
  TL_SV1_2 = "TLSv1.2"
@@ -130,12 +130,18 @@ class OutputMskKafkaSchemaRegistryTLSSettingsClientSide(BaseModel):
130
130
  r"""Passphrase to use to decrypt private key"""
131
131
 
132
132
  min_version: Annotated[
133
- Optional[OutputMskKafkaSchemaRegistryMinimumTLSVersion],
133
+ Annotated[
134
+ Optional[OutputMskKafkaSchemaRegistryMinimumTLSVersion],
135
+ PlainValidator(validate_open_enum(False)),
136
+ ],
134
137
  pydantic.Field(alias="minVersion"),
135
138
  ] = None
136
139
 
137
140
  max_version: Annotated[
138
- Optional[OutputMskKafkaSchemaRegistryMaximumTLSVersion],
141
+ Annotated[
142
+ Optional[OutputMskKafkaSchemaRegistryMaximumTLSVersion],
143
+ PlainValidator(validate_open_enum(False)),
144
+ ],
139
145
  pydantic.Field(alias="maxVersion"),
140
146
  ] = None
141
147
 
@@ -144,8 +150,6 @@ class OutputMskKafkaSchemaRegistryAuthenticationTypedDict(TypedDict):
144
150
  disabled: NotRequired[bool]
145
151
  schema_registry_url: NotRequired[str]
146
152
  r"""URL for accessing the Confluent Schema Registry. Example: http://localhost:8081. To connect over TLS, use https instead of http."""
147
- schema_type: NotRequired[OutputMskSchemaType]
148
- r"""The schema format used to encode and decode event data"""
149
153
  connection_timeout: NotRequired[float]
150
154
  r"""Maximum time to wait for a Schema Registry connection to complete successfully"""
151
155
  request_timeout: NotRequired[float]
@@ -169,11 +173,6 @@ class OutputMskKafkaSchemaRegistryAuthentication(BaseModel):
169
173
  ] = "http://localhost:8081"
170
174
  r"""URL for accessing the Confluent Schema Registry. Example: http://localhost:8081. To connect over TLS, use https instead of http."""
171
175
 
172
- schema_type: Annotated[
173
- Optional[OutputMskSchemaType], pydantic.Field(alias="schemaType")
174
- ] = OutputMskSchemaType.AVRO
175
- r"""The schema format used to encode and decode event data"""
176
-
177
176
  connection_timeout: Annotated[
178
177
  Optional[float], pydantic.Field(alias="connectionTimeout")
179
178
  ] = 30000
@@ -203,7 +202,7 @@ class OutputMskKafkaSchemaRegistryAuthentication(BaseModel):
203
202
  r"""Used when __valueSchemaIdOut is not present, to transform _raw, leave blank if value transformation is not required by default."""
204
203
 
205
204
 
206
- class OutputMskAuthenticationMethod(str, Enum):
205
+ class OutputMskAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
207
206
  r"""AWS authentication method. Choose Auto to use IAM roles."""
208
207
 
209
208
  AUTO = "auto"
@@ -211,21 +210,21 @@ class OutputMskAuthenticationMethod(str, Enum):
211
210
  SECRET = "secret"
212
211
 
213
212
 
214
- class OutputMskSignatureVersion(str, Enum):
213
+ class OutputMskSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
215
214
  r"""Signature version to use for signing MSK cluster requests"""
216
215
 
217
216
  V2 = "v2"
218
217
  V4 = "v4"
219
218
 
220
219
 
221
- class OutputMskMinimumTLSVersion(str, Enum):
220
+ class OutputMskMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
222
221
  TL_SV1 = "TLSv1"
223
222
  TL_SV1_1 = "TLSv1.1"
224
223
  TL_SV1_2 = "TLSv1.2"
225
224
  TL_SV1_3 = "TLSv1.3"
226
225
 
227
226
 
228
- class OutputMskMaximumTLSVersion(str, Enum):
227
+ class OutputMskMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
229
228
  TL_SV1 = "TLSv1"
230
229
  TL_SV1_1 = "TLSv1.1"
231
230
  TL_SV1_2 = "TLSv1.2"
@@ -285,15 +284,23 @@ class OutputMskTLSSettingsClientSide(BaseModel):
285
284
  r"""Passphrase to use to decrypt private key"""
286
285
 
287
286
  min_version: Annotated[
288
- Optional[OutputMskMinimumTLSVersion], pydantic.Field(alias="minVersion")
287
+ Annotated[
288
+ Optional[OutputMskMinimumTLSVersion],
289
+ PlainValidator(validate_open_enum(False)),
290
+ ],
291
+ pydantic.Field(alias="minVersion"),
289
292
  ] = None
290
293
 
291
294
  max_version: Annotated[
292
- Optional[OutputMskMaximumTLSVersion], pydantic.Field(alias="maxVersion")
295
+ Annotated[
296
+ Optional[OutputMskMaximumTLSVersion],
297
+ PlainValidator(validate_open_enum(False)),
298
+ ],
299
+ pydantic.Field(alias="maxVersion"),
293
300
  ] = None
294
301
 
295
302
 
296
- class OutputMskBackpressureBehavior(str, Enum):
303
+ class OutputMskBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
297
304
  r"""How to handle events when all receivers are exerting backpressure"""
298
305
 
299
306
  BLOCK = "block"
@@ -301,21 +308,21 @@ class OutputMskBackpressureBehavior(str, Enum):
301
308
  QUEUE = "queue"
302
309
 
303
310
 
304
- class OutputMskPqCompressCompression(str, Enum):
311
+ class OutputMskPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
305
312
  r"""Codec to use to compress the persisted data"""
306
313
 
307
314
  NONE = "none"
308
315
  GZIP = "gzip"
309
316
 
310
317
 
311
- class OutputMskQueueFullBehavior(str, Enum):
318
+ class OutputMskQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
312
319
  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."""
313
320
 
314
321
  BLOCK = "block"
315
322
  DROP = "drop"
316
323
 
317
324
 
318
- class OutputMskMode(str, Enum):
325
+ class OutputMskMode(str, Enum, metaclass=utils.OpenEnumMeta):
319
326
  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."""
320
327
 
321
328
  ERROR = "error"
@@ -452,15 +459,23 @@ class OutputMsk(BaseModel):
452
459
  streamtags: Optional[List[str]] = None
453
460
  r"""Tags for filtering and grouping in @{product}"""
454
461
 
455
- ack: Optional[OutputMskAcknowledgments] = OutputMskAcknowledgments.ONE
462
+ ack: Annotated[
463
+ Optional[OutputMskAcknowledgments], PlainValidator(validate_open_enum(True))
464
+ ] = OutputMskAcknowledgments.ONE
456
465
  r"""Control the number of required acknowledgments."""
457
466
 
458
467
  format_: Annotated[
459
- Optional[OutputMskRecordDataFormat], pydantic.Field(alias="format")
468
+ Annotated[
469
+ Optional[OutputMskRecordDataFormat],
470
+ PlainValidator(validate_open_enum(False)),
471
+ ],
472
+ pydantic.Field(alias="format"),
460
473
  ] = OutputMskRecordDataFormat.JSON
461
474
  r"""Format to use to serialize events before writing to Kafka."""
462
475
 
463
- compression: Optional[OutputMskCompression] = OutputMskCompression.GZIP
476
+ compression: Annotated[
477
+ Optional[OutputMskCompression], PlainValidator(validate_open_enum(False))
478
+ ] = OutputMskCompression.GZIP
464
479
  r"""Codec to use to compress the data before sending to Kafka"""
465
480
 
466
481
  max_record_size_kb: Annotated[
@@ -518,7 +533,10 @@ class OutputMsk(BaseModel):
518
533
  r"""Specifies a time window during which @{product} can reauthenticate if needed. Creates the window measuring backward from the moment when credentials are set to expire."""
519
534
 
520
535
  aws_authentication_method: Annotated[
521
- Optional[OutputMskAuthenticationMethod],
536
+ Annotated[
537
+ Optional[OutputMskAuthenticationMethod],
538
+ PlainValidator(validate_open_enum(False)),
539
+ ],
522
540
  pydantic.Field(alias="awsAuthenticationMethod"),
523
541
  ] = OutputMskAuthenticationMethod.AUTO
524
542
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -531,7 +549,11 @@ class OutputMsk(BaseModel):
531
549
  r"""MSK cluster service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to MSK cluster-compatible endpoint."""
532
550
 
533
551
  signature_version: Annotated[
534
- Optional[OutputMskSignatureVersion], pydantic.Field(alias="signatureVersion")
552
+ Annotated[
553
+ Optional[OutputMskSignatureVersion],
554
+ PlainValidator(validate_open_enum(False)),
555
+ ],
556
+ pydantic.Field(alias="signatureVersion"),
535
557
  ] = OutputMskSignatureVersion.V4
536
558
  r"""Signature version to use for signing MSK cluster requests"""
537
559
 
@@ -568,7 +590,11 @@ class OutputMsk(BaseModel):
568
590
  tls: Optional[OutputMskTLSSettingsClientSide] = None
569
591
 
570
592
  on_backpressure: Annotated[
571
- Optional[OutputMskBackpressureBehavior], pydantic.Field(alias="onBackpressure")
593
+ Annotated[
594
+ Optional[OutputMskBackpressureBehavior],
595
+ PlainValidator(validate_open_enum(False)),
596
+ ],
597
+ pydantic.Field(alias="onBackpressure"),
572
598
  ] = OutputMskBackpressureBehavior.BLOCK
573
599
  r"""How to handle events when all receivers are exerting backpressure"""
574
600
 
@@ -598,18 +624,27 @@ class OutputMsk(BaseModel):
598
624
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
599
625
 
600
626
  pq_compress: Annotated[
601
- Optional[OutputMskPqCompressCompression], pydantic.Field(alias="pqCompress")
627
+ Annotated[
628
+ Optional[OutputMskPqCompressCompression],
629
+ PlainValidator(validate_open_enum(False)),
630
+ ],
631
+ pydantic.Field(alias="pqCompress"),
602
632
  ] = OutputMskPqCompressCompression.NONE
603
633
  r"""Codec to use to compress the persisted data"""
604
634
 
605
635
  pq_on_backpressure: Annotated[
606
- Optional[OutputMskQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
636
+ Annotated[
637
+ Optional[OutputMskQueueFullBehavior],
638
+ PlainValidator(validate_open_enum(False)),
639
+ ],
640
+ pydantic.Field(alias="pqOnBackpressure"),
607
641
  ] = OutputMskQueueFullBehavior.BLOCK
608
642
  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."""
609
643
 
610
- pq_mode: Annotated[Optional[OutputMskMode], pydantic.Field(alias="pqMode")] = (
611
- OutputMskMode.ERROR
612
- )
644
+ pq_mode: Annotated[
645
+ Annotated[Optional[OutputMskMode], PlainValidator(validate_open_enum(False))],
646
+ pydantic.Field(alias="pqMode"),
647
+ ] = OutputMskMode.ERROR
613
648
  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."""
614
649
 
615
650
  pq_controls: Annotated[