cribl-control-plane 0.0.49__py3-none-any.whl → 0.0.50rc1__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 +21 -4
  5. cribl_control_plane/models/appmode.py +2 -1
  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 +7 -2
  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/createversionundoop.py +3 -3
  15. cribl_control_plane/models/cribllakedataset.py +8 -2
  16. cribl_control_plane/models/datasetmetadata.py +8 -2
  17. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  18. cribl_control_plane/models/error.py +16 -0
  19. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  20. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  21. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  22. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  23. cribl_control_plane/models/gethealthinfoop.py +17 -0
  24. cribl_control_plane/models/getsummaryop.py +7 -2
  25. cribl_control_plane/models/getversionshowop.py +6 -5
  26. cribl_control_plane/models/gitinfo.py +14 -3
  27. cribl_control_plane/models/gitshowresult.py +19 -0
  28. cribl_control_plane/models/hbcriblinfo.py +11 -1
  29. cribl_control_plane/models/healthstatus.py +7 -4
  30. cribl_control_plane/models/inputappscope.py +34 -14
  31. cribl_control_plane/models/inputazureblob.py +17 -6
  32. cribl_control_plane/models/inputcollection.py +11 -4
  33. cribl_control_plane/models/inputconfluentcloud.py +47 -20
  34. cribl_control_plane/models/inputcribl.py +11 -4
  35. cribl_control_plane/models/inputcriblhttp.py +23 -8
  36. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  37. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  38. cribl_control_plane/models/inputcribltcp.py +23 -8
  39. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  40. cribl_control_plane/models/inputdatadogagent.py +24 -8
  41. cribl_control_plane/models/inputdatagen.py +11 -4
  42. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  43. cribl_control_plane/models/inputelastic.py +40 -14
  44. cribl_control_plane/models/inputeventhub.py +15 -6
  45. cribl_control_plane/models/inputexec.py +14 -6
  46. cribl_control_plane/models/inputfile.py +15 -6
  47. cribl_control_plane/models/inputfirehose.py +23 -8
  48. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  49. cribl_control_plane/models/inputgrafana.py +67 -24
  50. cribl_control_plane/models/inputhttp.py +23 -8
  51. cribl_control_plane/models/inputhttpraw.py +23 -8
  52. cribl_control_plane/models/inputjournalfiles.py +12 -4
  53. cribl_control_plane/models/inputkafka.py +46 -16
  54. cribl_control_plane/models/inputkinesis.py +38 -14
  55. cribl_control_plane/models/inputkubeevents.py +11 -4
  56. cribl_control_plane/models/inputkubelogs.py +16 -8
  57. cribl_control_plane/models/inputkubemetrics.py +16 -8
  58. cribl_control_plane/models/inputloki.py +29 -10
  59. cribl_control_plane/models/inputmetrics.py +23 -8
  60. cribl_control_plane/models/inputmodeldriventelemetry.py +32 -10
  61. cribl_control_plane/models/inputmsk.py +53 -18
  62. cribl_control_plane/models/inputnetflow.py +11 -4
  63. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  64. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  65. cribl_control_plane/models/inputoffice365service.py +35 -16
  66. cribl_control_plane/models/inputopentelemetry.py +38 -16
  67. cribl_control_plane/models/inputprometheus.py +50 -18
  68. cribl_control_plane/models/inputprometheusrw.py +30 -10
  69. cribl_control_plane/models/inputrawudp.py +11 -4
  70. cribl_control_plane/models/inputs3.py +21 -8
  71. cribl_control_plane/models/inputs3inventory.py +26 -10
  72. cribl_control_plane/models/inputsecuritylake.py +27 -10
  73. cribl_control_plane/models/inputsnmp.py +16 -6
  74. cribl_control_plane/models/inputsplunk.py +33 -12
  75. cribl_control_plane/models/inputsplunkhec.py +29 -10
  76. cribl_control_plane/models/inputsplunksearch.py +33 -14
  77. cribl_control_plane/models/inputsqs.py +27 -10
  78. cribl_control_plane/models/inputsyslog.py +43 -16
  79. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  80. cribl_control_plane/models/inputsystemstate.py +16 -8
  81. cribl_control_plane/models/inputtcp.py +29 -10
  82. cribl_control_plane/models/inputtcpjson.py +29 -10
  83. cribl_control_plane/models/inputwef.py +37 -14
  84. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  85. cribl_control_plane/models/inputwineventlogs.py +20 -10
  86. cribl_control_plane/models/inputwiz.py +21 -8
  87. cribl_control_plane/models/inputwizwebhook.py +23 -8
  88. cribl_control_plane/models/inputzscalerhec.py +29 -10
  89. cribl_control_plane/models/jobinfo.py +4 -1
  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 +4 -1
  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/outputazureblob.py +48 -18
  100. cribl_control_plane/models/outputazuredataexplorer.py +73 -28
  101. cribl_control_plane/models/outputazureeventhub.py +40 -18
  102. cribl_control_plane/models/outputazurelogs.py +35 -12
  103. cribl_control_plane/models/outputclickhouse.py +55 -20
  104. cribl_control_plane/models/outputcloudwatch.py +29 -10
  105. cribl_control_plane/models/outputconfluentcloud.py +77 -32
  106. cribl_control_plane/models/outputcriblhttp.py +44 -16
  107. cribl_control_plane/models/outputcribllake.py +46 -16
  108. cribl_control_plane/models/outputcribltcp.py +45 -18
  109. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +49 -14
  110. cribl_control_plane/models/outputdatadog.py +48 -20
  111. cribl_control_plane/models/outputdataset.py +46 -18
  112. cribl_control_plane/models/outputdiskspool.py +7 -2
  113. cribl_control_plane/models/outputdls3.py +68 -24
  114. cribl_control_plane/models/outputdynatracehttp.py +53 -20
  115. cribl_control_plane/models/outputdynatraceotlp.py +55 -22
  116. cribl_control_plane/models/outputelastic.py +43 -18
  117. cribl_control_plane/models/outputelasticcloud.py +36 -12
  118. cribl_control_plane/models/outputexabeam.py +29 -10
  119. cribl_control_plane/models/outputfilesystem.py +39 -14
  120. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  121. cribl_control_plane/models/outputgooglecloudlogging.py +50 -18
  122. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  123. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  124. cribl_control_plane/models/outputgrafanacloud.py +97 -32
  125. cribl_control_plane/models/outputgraphite.py +31 -14
  126. cribl_control_plane/models/outputhoneycomb.py +35 -12
  127. cribl_control_plane/models/outputhumiohec.py +43 -16
  128. cribl_control_plane/models/outputinfluxdb.py +42 -16
  129. cribl_control_plane/models/outputkafka.py +74 -28
  130. cribl_control_plane/models/outputkinesis.py +40 -16
  131. cribl_control_plane/models/outputloki.py +41 -16
  132. cribl_control_plane/models/outputminio.py +65 -24
  133. cribl_control_plane/models/outputmsk.py +82 -30
  134. cribl_control_plane/models/outputnewrelic.py +43 -18
  135. cribl_control_plane/models/outputnewrelicevents.py +41 -14
  136. cribl_control_plane/models/outputopentelemetry.py +67 -26
  137. cribl_control_plane/models/outputprometheus.py +35 -12
  138. cribl_control_plane/models/outputring.py +19 -8
  139. cribl_control_plane/models/outputs3.py +68 -26
  140. cribl_control_plane/models/outputsecuritylake.py +52 -18
  141. cribl_control_plane/models/outputsentinel.py +45 -18
  142. cribl_control_plane/models/outputsentineloneaisiem.py +50 -18
  143. cribl_control_plane/models/outputservicenow.py +60 -24
  144. cribl_control_plane/models/outputsignalfx.py +37 -14
  145. cribl_control_plane/models/outputsns.py +36 -14
  146. cribl_control_plane/models/outputsplunk.py +60 -24
  147. cribl_control_plane/models/outputsplunkhec.py +35 -12
  148. cribl_control_plane/models/outputsplunklb.py +77 -30
  149. cribl_control_plane/models/outputsqs.py +41 -16
  150. cribl_control_plane/models/outputstatsd.py +30 -14
  151. cribl_control_plane/models/outputstatsdext.py +29 -12
  152. cribl_control_plane/models/outputsumologic.py +35 -12
  153. cribl_control_plane/models/outputsyslog.py +58 -24
  154. cribl_control_plane/models/outputtcpjson.py +52 -20
  155. cribl_control_plane/models/outputwavefront.py +35 -12
  156. cribl_control_plane/models/outputwebhook.py +58 -22
  157. cribl_control_plane/models/outputxsiam.py +35 -14
  158. cribl_control_plane/models/packinfo.py +3 -0
  159. cribl_control_plane/models/packinstallinfo.py +3 -0
  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/runnablejobcollection.py +30 -13
  164. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  165. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  166. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  167. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  168. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  169. cribl_control_plane/models/workertypes.py +2 -1
  170. {cribl_control_plane-0.0.49.dist-info → cribl_control_plane-0.0.50rc1.dist-info}/METADATA +1 -1
  171. cribl_control_plane-0.0.50rc1.dist-info/RECORD +328 -0
  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.0.50rc1.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,21 +15,21 @@ class OutputOpenTelemetryType(str, Enum):
12
15
  OPEN_TELEMETRY = "open_telemetry"
13
16
 
14
17
 
15
- class OutputOpenTelemetryProtocol(str, Enum):
18
+ class OutputOpenTelemetryProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Select a transport option for OpenTelemetry"""
17
20
 
18
21
  GRPC = "grpc"
19
22
  HTTP = "http"
20
23
 
21
24
 
22
- class OutputOpenTelemetryOTLPVersion(str, Enum):
25
+ class OutputOpenTelemetryOTLPVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""The version of OTLP Protobuf definitions to use when structuring data to send"""
24
27
 
25
28
  ZERO_DOT_10_DOT_0 = "0.10.0"
26
29
  ONE_DOT_3_DOT_1 = "1.3.1"
27
30
 
28
31
 
29
- class OutputOpenTelemetryCompressCompression(str, Enum):
32
+ class OutputOpenTelemetryCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
30
33
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
31
34
 
32
35
  NONE = "none"
@@ -34,14 +37,16 @@ class OutputOpenTelemetryCompressCompression(str, Enum):
34
37
  GZIP = "gzip"
35
38
 
36
39
 
37
- class OutputOpenTelemetryHTTPCompressCompression(str, Enum):
40
+ class OutputOpenTelemetryHTTPCompressCompression(
41
+ str, Enum, metaclass=utils.OpenEnumMeta
42
+ ):
38
43
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
39
44
 
40
45
  NONE = "none"
41
46
  GZIP = "gzip"
42
47
 
43
48
 
44
- class OutputOpenTelemetryAuthenticationType(str, Enum):
49
+ class OutputOpenTelemetryAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
45
50
  r"""OpenTelemetry authentication type"""
46
51
 
47
52
  NONE = "none"
@@ -63,7 +68,9 @@ class OutputOpenTelemetryMetadatum(BaseModel):
63
68
  key: Optional[str] = ""
64
69
 
65
70
 
66
- class OutputOpenTelemetryFailedRequestLoggingMode(str, Enum):
71
+ class OutputOpenTelemetryFailedRequestLoggingMode(
72
+ str, Enum, metaclass=utils.OpenEnumMeta
73
+ ):
67
74
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
68
75
 
69
76
  PAYLOAD = "payload"
@@ -71,7 +78,7 @@ class OutputOpenTelemetryFailedRequestLoggingMode(str, Enum):
71
78
  NONE = "none"
72
79
 
73
80
 
74
- class OutputOpenTelemetryBackpressureBehavior(str, Enum):
81
+ class OutputOpenTelemetryBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
75
82
  r"""How to handle events when all receivers are exerting backpressure"""
76
83
 
77
84
  BLOCK = "block"
@@ -174,14 +181,14 @@ class OutputOpenTelemetryTimeoutRetrySettings(BaseModel):
174
181
  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)."""
175
182
 
176
183
 
177
- class OutputOpenTelemetryMinimumTLSVersion(str, Enum):
184
+ class OutputOpenTelemetryMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
178
185
  TL_SV1 = "TLSv1"
179
186
  TL_SV1_1 = "TLSv1.1"
180
187
  TL_SV1_2 = "TLSv1.2"
181
188
  TL_SV1_3 = "TLSv1.3"
182
189
 
183
190
 
184
- class OutputOpenTelemetryMaximumTLSVersion(str, Enum):
191
+ class OutputOpenTelemetryMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
185
192
  TL_SV1 = "TLSv1"
186
193
  TL_SV1_1 = "TLSv1.1"
187
194
  TL_SV1_2 = "TLSv1.2"
@@ -236,31 +243,37 @@ class OutputOpenTelemetryTLSSettingsClientSide(BaseModel):
236
243
  r"""Passphrase to use to decrypt private key"""
237
244
 
238
245
  min_version: Annotated[
239
- Optional[OutputOpenTelemetryMinimumTLSVersion],
246
+ Annotated[
247
+ Optional[OutputOpenTelemetryMinimumTLSVersion],
248
+ PlainValidator(validate_open_enum(False)),
249
+ ],
240
250
  pydantic.Field(alias="minVersion"),
241
251
  ] = None
242
252
 
243
253
  max_version: Annotated[
244
- Optional[OutputOpenTelemetryMaximumTLSVersion],
254
+ Annotated[
255
+ Optional[OutputOpenTelemetryMaximumTLSVersion],
256
+ PlainValidator(validate_open_enum(False)),
257
+ ],
245
258
  pydantic.Field(alias="maxVersion"),
246
259
  ] = None
247
260
 
248
261
 
249
- class OutputOpenTelemetryPqCompressCompression(str, Enum):
262
+ class OutputOpenTelemetryPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
250
263
  r"""Codec to use to compress the persisted data"""
251
264
 
252
265
  NONE = "none"
253
266
  GZIP = "gzip"
254
267
 
255
268
 
256
- class OutputOpenTelemetryQueueFullBehavior(str, Enum):
269
+ class OutputOpenTelemetryQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
257
270
  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."""
258
271
 
259
272
  BLOCK = "block"
260
273
  DROP = "drop"
261
274
 
262
275
 
263
- class OutputOpenTelemetryMode(str, Enum):
276
+ class OutputOpenTelemetryMode(str, Enum, metaclass=utils.OpenEnumMeta):
264
277
  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."""
265
278
 
266
279
  ERROR = "error"
@@ -412,27 +425,40 @@ class OutputOpenTelemetry(BaseModel):
412
425
  streamtags: Optional[List[str]] = None
413
426
  r"""Tags for filtering and grouping in @{product}"""
414
427
 
415
- protocol: Optional[OutputOpenTelemetryProtocol] = OutputOpenTelemetryProtocol.GRPC
428
+ protocol: Annotated[
429
+ Optional[OutputOpenTelemetryProtocol], PlainValidator(validate_open_enum(False))
430
+ ] = OutputOpenTelemetryProtocol.GRPC
416
431
  r"""Select a transport option for OpenTelemetry"""
417
432
 
418
433
  otlp_version: Annotated[
419
- Optional[OutputOpenTelemetryOTLPVersion], pydantic.Field(alias="otlpVersion")
434
+ Annotated[
435
+ Optional[OutputOpenTelemetryOTLPVersion],
436
+ PlainValidator(validate_open_enum(False)),
437
+ ],
438
+ pydantic.Field(alias="otlpVersion"),
420
439
  ] = OutputOpenTelemetryOTLPVersion.ZERO_DOT_10_DOT_0
421
440
  r"""The version of OTLP Protobuf definitions to use when structuring data to send"""
422
441
 
423
- compress: Optional[OutputOpenTelemetryCompressCompression] = (
424
- OutputOpenTelemetryCompressCompression.GZIP
425
- )
442
+ compress: Annotated[
443
+ Optional[OutputOpenTelemetryCompressCompression],
444
+ PlainValidator(validate_open_enum(False)),
445
+ ] = OutputOpenTelemetryCompressCompression.GZIP
426
446
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
427
447
 
428
448
  http_compress: Annotated[
429
- Optional[OutputOpenTelemetryHTTPCompressCompression],
449
+ Annotated[
450
+ Optional[OutputOpenTelemetryHTTPCompressCompression],
451
+ PlainValidator(validate_open_enum(False)),
452
+ ],
430
453
  pydantic.Field(alias="httpCompress"),
431
454
  ] = OutputOpenTelemetryHTTPCompressCompression.GZIP
432
455
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
433
456
 
434
457
  auth_type: Annotated[
435
- Optional[OutputOpenTelemetryAuthenticationType],
458
+ Annotated[
459
+ Optional[OutputOpenTelemetryAuthenticationType],
460
+ PlainValidator(validate_open_enum(False)),
461
+ ],
436
462
  pydantic.Field(alias="authType"),
437
463
  ] = OutputOpenTelemetryAuthenticationType.NONE
438
464
  r"""OpenTelemetry authentication type"""
@@ -472,7 +498,10 @@ class OutputOpenTelemetry(BaseModel):
472
498
  r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Body size limit."""
473
499
 
474
500
  failed_request_logging_mode: Annotated[
475
- Optional[OutputOpenTelemetryFailedRequestLoggingMode],
501
+ Annotated[
502
+ Optional[OutputOpenTelemetryFailedRequestLoggingMode],
503
+ PlainValidator(validate_open_enum(False)),
504
+ ],
476
505
  pydantic.Field(alias="failedRequestLoggingMode"),
477
506
  ] = OutputOpenTelemetryFailedRequestLoggingMode.NONE
478
507
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -491,7 +520,10 @@ class OutputOpenTelemetry(BaseModel):
491
520
  r"""Disable to close the connection immediately after sending the outgoing request"""
492
521
 
493
522
  on_backpressure: Annotated[
494
- Optional[OutputOpenTelemetryBackpressureBehavior],
523
+ Annotated[
524
+ Optional[OutputOpenTelemetryBackpressureBehavior],
525
+ PlainValidator(validate_open_enum(False)),
526
+ ],
495
527
  pydantic.Field(alias="onBackpressure"),
496
528
  ] = OutputOpenTelemetryBackpressureBehavior.BLOCK
497
529
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -607,19 +639,28 @@ class OutputOpenTelemetry(BaseModel):
607
639
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
608
640
 
609
641
  pq_compress: Annotated[
610
- Optional[OutputOpenTelemetryPqCompressCompression],
642
+ Annotated[
643
+ Optional[OutputOpenTelemetryPqCompressCompression],
644
+ PlainValidator(validate_open_enum(False)),
645
+ ],
611
646
  pydantic.Field(alias="pqCompress"),
612
647
  ] = OutputOpenTelemetryPqCompressCompression.NONE
613
648
  r"""Codec to use to compress the persisted data"""
614
649
 
615
650
  pq_on_backpressure: Annotated[
616
- Optional[OutputOpenTelemetryQueueFullBehavior],
651
+ Annotated[
652
+ Optional[OutputOpenTelemetryQueueFullBehavior],
653
+ PlainValidator(validate_open_enum(False)),
654
+ ],
617
655
  pydantic.Field(alias="pqOnBackpressure"),
618
656
  ] = OutputOpenTelemetryQueueFullBehavior.BLOCK
619
657
  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."""
620
658
 
621
659
  pq_mode: Annotated[
622
- Optional[OutputOpenTelemetryMode], pydantic.Field(alias="pqMode")
660
+ Annotated[
661
+ Optional[OutputOpenTelemetryMode], PlainValidator(validate_open_enum(False))
662
+ ],
663
+ pydantic.Field(alias="pqMode"),
623
664
  ] = OutputOpenTelemetryMode.ERROR
624
665
  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."""
625
666
 
@@ -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,7 @@ class OutputPrometheusExtraHTTPHeader(BaseModel):
23
26
  name: Optional[str] = None
24
27
 
25
28
 
26
- class OutputPrometheusFailedRequestLoggingMode(str, Enum):
29
+ class OutputPrometheusFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
28
31
 
29
32
  PAYLOAD = "payload"
@@ -85,7 +88,7 @@ class OutputPrometheusTimeoutRetrySettings(BaseModel):
85
88
  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)."""
86
89
 
87
90
 
88
- class OutputPrometheusBackpressureBehavior(str, Enum):
91
+ class OutputPrometheusBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
89
92
  r"""How to handle events when all receivers are exerting backpressure"""
90
93
 
91
94
  BLOCK = "block"
@@ -93,7 +96,7 @@ class OutputPrometheusBackpressureBehavior(str, Enum):
93
96
  QUEUE = "queue"
94
97
 
95
98
 
96
- class OutputPrometheusAuthenticationType(str, Enum):
99
+ class OutputPrometheusAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
97
100
  r"""Remote Write authentication type"""
98
101
 
99
102
  NONE = "none"
@@ -104,21 +107,21 @@ class OutputPrometheusAuthenticationType(str, Enum):
104
107
  OAUTH = "oauth"
105
108
 
106
109
 
107
- class OutputPrometheusCompression(str, Enum):
110
+ class OutputPrometheusCompression(str, Enum, metaclass=utils.OpenEnumMeta):
108
111
  r"""Codec to use to compress the persisted data"""
109
112
 
110
113
  NONE = "none"
111
114
  GZIP = "gzip"
112
115
 
113
116
 
114
- class OutputPrometheusQueueFullBehavior(str, Enum):
117
+ class OutputPrometheusQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
115
118
  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."""
116
119
 
117
120
  BLOCK = "block"
118
121
  DROP = "drop"
119
122
 
120
123
 
121
- class OutputPrometheusMode(str, Enum):
124
+ class OutputPrometheusMode(str, Enum, metaclass=utils.OpenEnumMeta):
122
125
  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."""
123
126
 
124
127
  ERROR = "error"
@@ -332,7 +335,10 @@ class OutputPrometheus(BaseModel):
332
335
  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."""
333
336
 
334
337
  failed_request_logging_mode: Annotated[
335
- Optional[OutputPrometheusFailedRequestLoggingMode],
338
+ Annotated[
339
+ Optional[OutputPrometheusFailedRequestLoggingMode],
340
+ PlainValidator(validate_open_enum(False)),
341
+ ],
336
342
  pydantic.Field(alias="failedRequestLoggingMode"),
337
343
  ] = OutputPrometheusFailedRequestLoggingMode.NONE
338
344
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -359,13 +365,20 @@ class OutputPrometheus(BaseModel):
359
365
  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."""
360
366
 
361
367
  on_backpressure: Annotated[
362
- Optional[OutputPrometheusBackpressureBehavior],
368
+ Annotated[
369
+ Optional[OutputPrometheusBackpressureBehavior],
370
+ PlainValidator(validate_open_enum(False)),
371
+ ],
363
372
  pydantic.Field(alias="onBackpressure"),
364
373
  ] = OutputPrometheusBackpressureBehavior.BLOCK
365
374
  r"""How to handle events when all receivers are exerting backpressure"""
366
375
 
367
376
  auth_type: Annotated[
368
- Optional[OutputPrometheusAuthenticationType], pydantic.Field(alias="authType")
377
+ Annotated[
378
+ Optional[OutputPrometheusAuthenticationType],
379
+ PlainValidator(validate_open_enum(False)),
380
+ ],
381
+ pydantic.Field(alias="authType"),
369
382
  ] = OutputPrometheusAuthenticationType.NONE
370
383
  r"""Remote Write authentication type"""
371
384
 
@@ -390,18 +403,28 @@ class OutputPrometheus(BaseModel):
390
403
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
391
404
 
392
405
  pq_compress: Annotated[
393
- Optional[OutputPrometheusCompression], pydantic.Field(alias="pqCompress")
406
+ Annotated[
407
+ Optional[OutputPrometheusCompression],
408
+ PlainValidator(validate_open_enum(False)),
409
+ ],
410
+ pydantic.Field(alias="pqCompress"),
394
411
  ] = OutputPrometheusCompression.NONE
395
412
  r"""Codec to use to compress the persisted data"""
396
413
 
397
414
  pq_on_backpressure: Annotated[
398
- Optional[OutputPrometheusQueueFullBehavior],
415
+ Annotated[
416
+ Optional[OutputPrometheusQueueFullBehavior],
417
+ PlainValidator(validate_open_enum(False)),
418
+ ],
399
419
  pydantic.Field(alias="pqOnBackpressure"),
400
420
  ] = OutputPrometheusQueueFullBehavior.BLOCK
401
421
  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."""
402
422
 
403
423
  pq_mode: Annotated[
404
- Optional[OutputPrometheusMode], pydantic.Field(alias="pqMode")
424
+ Annotated[
425
+ Optional[OutputPrometheusMode], PlainValidator(validate_open_enum(False))
426
+ ],
427
+ pydantic.Field(alias="pqMode"),
405
428
  ] = OutputPrometheusMode.ERROR
406
429
  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."""
407
430
 
@@ -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,19 +15,19 @@ class OutputRingType(str, Enum):
12
15
  RING = "ring"
13
16
 
14
17
 
15
- class OutputRingDataFormat(str, Enum):
18
+ class OutputRingDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Format of the output data."""
17
20
 
18
21
  JSON = "json"
19
22
  RAW = "raw"
20
23
 
21
24
 
22
- class OutputRingDataCompressionFormat(str, Enum):
25
+ class OutputRingDataCompressionFormat(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  NONE = "none"
24
27
  GZIP = "gzip"
25
28
 
26
29
 
27
- class OutputRingBackpressureBehavior(str, Enum):
30
+ class OutputRingBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
28
31
  r"""How to handle events when all receivers are exerting backpressure"""
29
32
 
30
33
  BLOCK = "block"
@@ -80,7 +83,10 @@ class OutputRing(BaseModel):
80
83
  r"""Tags for filtering and grouping in @{product}"""
81
84
 
82
85
  format_: Annotated[
83
- Optional[OutputRingDataFormat], pydantic.Field(alias="format")
86
+ Annotated[
87
+ Optional[OutputRingDataFormat], PlainValidator(validate_open_enum(False))
88
+ ],
89
+ pydantic.Field(alias="format"),
84
90
  ] = OutputRingDataFormat.JSON
85
91
  r"""Format of the output data."""
86
92
 
@@ -95,15 +101,20 @@ class OutputRing(BaseModel):
95
101
  max_data_time: Annotated[Optional[str], pydantic.Field(alias="maxDataTime")] = "24h"
96
102
  r"""Maximum amount of time to retain data (examples: 2h, 4d). When limit is reached, older data will be deleted."""
97
103
 
98
- compress: Optional[OutputRingDataCompressionFormat] = (
99
- OutputRingDataCompressionFormat.GZIP
100
- )
104
+ compress: Annotated[
105
+ Optional[OutputRingDataCompressionFormat],
106
+ PlainValidator(validate_open_enum(False)),
107
+ ] = OutputRingDataCompressionFormat.GZIP
101
108
 
102
109
  dest_path: Annotated[Optional[str], pydantic.Field(alias="destPath")] = None
103
110
  r"""Path to use to write metrics. Defaults to $CRIBL_HOME/state/<id>"""
104
111
 
105
112
  on_backpressure: Annotated[
106
- Optional[OutputRingBackpressureBehavior], pydantic.Field(alias="onBackpressure")
113
+ Annotated[
114
+ Optional[OutputRingBackpressureBehavior],
115
+ PlainValidator(validate_open_enum(False)),
116
+ ],
117
+ pydantic.Field(alias="onBackpressure"),
107
118
  ] = OutputRingBackpressureBehavior.BLOCK
108
119
  r"""How to handle events when all receivers are exerting backpressure"""
109
120