cribl-control-plane 0.0.46__py3-none-any.whl → 0.0.48a1__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 (167) hide show
  1. cribl_control_plane/_version.py +4 -6
  2. cribl_control_plane/errors/apierror.py +2 -0
  3. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  4. cribl_control_plane/errors/error.py +4 -2
  5. cribl_control_plane/errors/healthstatus_error.py +12 -4
  6. cribl_control_plane/errors/no_response_error.py +5 -1
  7. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  8. cribl_control_plane/models/__init__.py +12 -12
  9. cribl_control_plane/models/cacheconnection.py +10 -2
  10. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  11. cribl_control_plane/models/cloudprovider.py +2 -1
  12. cribl_control_plane/models/configgroup.py +7 -2
  13. cribl_control_plane/models/configgroupcloud.py +6 -2
  14. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  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/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/getsummaryop.py +7 -2
  23. cribl_control_plane/models/hbcriblinfo.py +19 -3
  24. cribl_control_plane/models/healthstatus.py +7 -4
  25. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  26. cribl_control_plane/models/inputappscope.py +34 -14
  27. cribl_control_plane/models/inputazureblob.py +17 -6
  28. cribl_control_plane/models/inputcollection.py +11 -4
  29. cribl_control_plane/models/inputconfluentcloud.py +47 -20
  30. cribl_control_plane/models/inputcribl.py +11 -4
  31. cribl_control_plane/models/inputcriblhttp.py +23 -8
  32. cribl_control_plane/models/inputcribllakehttp.py +22 -10
  33. cribl_control_plane/models/inputcriblmetrics.py +12 -4
  34. cribl_control_plane/models/inputcribltcp.py +23 -8
  35. cribl_control_plane/models/inputcrowdstrike.py +26 -10
  36. cribl_control_plane/models/inputdatadogagent.py +24 -8
  37. cribl_control_plane/models/inputdatagen.py +11 -4
  38. cribl_control_plane/models/inputedgeprometheus.py +58 -24
  39. cribl_control_plane/models/inputelastic.py +40 -14
  40. cribl_control_plane/models/inputeventhub.py +15 -6
  41. cribl_control_plane/models/inputexec.py +14 -6
  42. cribl_control_plane/models/inputfile.py +15 -6
  43. cribl_control_plane/models/inputfirehose.py +23 -8
  44. cribl_control_plane/models/inputgooglepubsub.py +19 -6
  45. cribl_control_plane/models/inputgrafana.py +67 -24
  46. cribl_control_plane/models/inputhttp.py +23 -8
  47. cribl_control_plane/models/inputhttpraw.py +23 -8
  48. cribl_control_plane/models/inputjournalfiles.py +12 -4
  49. cribl_control_plane/models/inputkafka.py +46 -16
  50. cribl_control_plane/models/inputkinesis.py +38 -14
  51. cribl_control_plane/models/inputkubeevents.py +11 -4
  52. cribl_control_plane/models/inputkubelogs.py +16 -8
  53. cribl_control_plane/models/inputkubemetrics.py +16 -8
  54. cribl_control_plane/models/inputloki.py +29 -10
  55. cribl_control_plane/models/inputmetrics.py +23 -8
  56. cribl_control_plane/models/inputmodeldriventelemetry.py +32 -10
  57. cribl_control_plane/models/inputmsk.py +53 -18
  58. cribl_control_plane/models/inputnetflow.py +11 -4
  59. cribl_control_plane/models/inputoffice365mgmt.py +33 -14
  60. cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
  61. cribl_control_plane/models/inputoffice365service.py +35 -16
  62. cribl_control_plane/models/inputopentelemetry.py +38 -16
  63. cribl_control_plane/models/inputprometheus.py +50 -18
  64. cribl_control_plane/models/inputprometheusrw.py +30 -10
  65. cribl_control_plane/models/inputrawudp.py +11 -4
  66. cribl_control_plane/models/inputs3.py +21 -8
  67. cribl_control_plane/models/inputs3inventory.py +26 -10
  68. cribl_control_plane/models/inputsecuritylake.py +27 -10
  69. cribl_control_plane/models/inputsnmp.py +16 -6
  70. cribl_control_plane/models/inputsplunk.py +33 -12
  71. cribl_control_plane/models/inputsplunkhec.py +29 -10
  72. cribl_control_plane/models/inputsplunksearch.py +33 -14
  73. cribl_control_plane/models/inputsqs.py +27 -10
  74. cribl_control_plane/models/inputsyslog.py +43 -16
  75. cribl_control_plane/models/inputsystemmetrics.py +48 -24
  76. cribl_control_plane/models/inputsystemstate.py +16 -8
  77. cribl_control_plane/models/inputtcp.py +29 -10
  78. cribl_control_plane/models/inputtcpjson.py +29 -10
  79. cribl_control_plane/models/inputwef.py +37 -14
  80. cribl_control_plane/models/inputwindowsmetrics.py +44 -24
  81. cribl_control_plane/models/inputwineventlogs.py +20 -10
  82. cribl_control_plane/models/inputwiz.py +21 -8
  83. cribl_control_plane/models/inputwizwebhook.py +23 -8
  84. cribl_control_plane/models/inputzscalerhec.py +29 -10
  85. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  86. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  87. cribl_control_plane/models/masterworkerentry.py +7 -2
  88. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  89. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  90. cribl_control_plane/models/nodeprovidedinfo.py +3 -0
  91. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  92. cribl_control_plane/models/nodeupgradestate.py +2 -1
  93. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  94. cribl_control_plane/models/outputazureblob.py +48 -18
  95. cribl_control_plane/models/outputazuredataexplorer.py +73 -28
  96. cribl_control_plane/models/outputazureeventhub.py +40 -18
  97. cribl_control_plane/models/outputazurelogs.py +35 -12
  98. cribl_control_plane/models/outputclickhouse.py +55 -20
  99. cribl_control_plane/models/outputcloudwatch.py +29 -10
  100. cribl_control_plane/models/outputconfluentcloud.py +77 -32
  101. cribl_control_plane/models/outputcriblhttp.py +44 -16
  102. cribl_control_plane/models/outputcribllake.py +46 -16
  103. cribl_control_plane/models/outputcribltcp.py +45 -18
  104. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +49 -14
  105. cribl_control_plane/models/outputdatadog.py +48 -20
  106. cribl_control_plane/models/outputdataset.py +46 -18
  107. cribl_control_plane/models/outputdiskspool.py +7 -2
  108. cribl_control_plane/models/outputdls3.py +68 -24
  109. cribl_control_plane/models/outputdynatracehttp.py +53 -20
  110. cribl_control_plane/models/outputdynatraceotlp.py +55 -22
  111. cribl_control_plane/models/outputelastic.py +43 -18
  112. cribl_control_plane/models/outputelasticcloud.py +36 -12
  113. cribl_control_plane/models/outputexabeam.py +29 -10
  114. cribl_control_plane/models/outputfilesystem.py +39 -14
  115. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  116. cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
  117. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  118. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  119. cribl_control_plane/models/outputgrafanacloud.py +97 -32
  120. cribl_control_plane/models/outputgraphite.py +31 -14
  121. cribl_control_plane/models/outputhoneycomb.py +35 -12
  122. cribl_control_plane/models/outputhumiohec.py +43 -16
  123. cribl_control_plane/models/outputinfluxdb.py +42 -16
  124. cribl_control_plane/models/outputkafka.py +74 -28
  125. cribl_control_plane/models/outputkinesis.py +40 -16
  126. cribl_control_plane/models/outputloki.py +41 -16
  127. cribl_control_plane/models/outputminio.py +65 -24
  128. cribl_control_plane/models/outputmsk.py +82 -30
  129. cribl_control_plane/models/outputnewrelic.py +43 -18
  130. cribl_control_plane/models/outputnewrelicevents.py +41 -14
  131. cribl_control_plane/models/outputopentelemetry.py +67 -26
  132. cribl_control_plane/models/outputprometheus.py +35 -12
  133. cribl_control_plane/models/outputring.py +19 -8
  134. cribl_control_plane/models/outputs3.py +68 -26
  135. cribl_control_plane/models/outputsecuritylake.py +52 -18
  136. cribl_control_plane/models/outputsentinel.py +45 -18
  137. cribl_control_plane/models/outputsentineloneaisiem.py +50 -18
  138. cribl_control_plane/models/outputservicenow.py +60 -24
  139. cribl_control_plane/models/outputsignalfx.py +37 -14
  140. cribl_control_plane/models/outputsns.py +36 -14
  141. cribl_control_plane/models/outputsplunk.py +60 -24
  142. cribl_control_plane/models/outputsplunkhec.py +35 -12
  143. cribl_control_plane/models/outputsplunklb.py +77 -30
  144. cribl_control_plane/models/outputsqs.py +41 -16
  145. cribl_control_plane/models/outputstatsd.py +30 -14
  146. cribl_control_plane/models/outputstatsdext.py +29 -12
  147. cribl_control_plane/models/outputsumologic.py +35 -12
  148. cribl_control_plane/models/outputsyslog.py +58 -24
  149. cribl_control_plane/models/outputtcpjson.py +52 -20
  150. cribl_control_plane/models/outputwavefront.py +35 -12
  151. cribl_control_plane/models/outputwebhook.py +58 -22
  152. cribl_control_plane/models/outputxsiam.py +35 -14
  153. cribl_control_plane/models/productscore.py +2 -1
  154. cribl_control_plane/models/rbacresource.py +2 -1
  155. cribl_control_plane/models/resourcepolicy.py +4 -2
  156. cribl_control_plane/models/routeconf.py +3 -4
  157. cribl_control_plane/models/runnablejobcollection.py +30 -13
  158. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  159. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  160. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  161. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  162. cribl_control_plane/models/workertypes.py +2 -1
  163. {cribl_control_plane-0.0.46.dist-info → cribl_control_plane-0.0.48a1.dist-info}/METADATA +1 -1
  164. {cribl_control_plane-0.0.46.dist-info → cribl_control_plane-0.0.48a1.dist-info}/RECORD +165 -167
  165. {cribl_control_plane-0.0.46.dist-info → cribl_control_plane-0.0.48a1.dist-info}/WHEEL +1 -1
  166. cribl_control_plane/models/appmode.py +0 -13
  167. cribl_control_plane/models/routecloneconf.py +0 -13
@@ -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"""
@@ -324,7 +346,10 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
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
 
@@ -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 OutputDatadogType(str, Enum):
12
15
  DATADOG = "datadog"
13
16
 
14
17
 
15
- class SendLogsAs(str, Enum):
18
+ class SendLogsAs(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""The content type to use when sending logs"""
17
20
 
18
21
  TEXT = "text"
19
22
  JSON = "json"
20
23
 
21
24
 
22
- class OutputDatadogSeverity(str, Enum):
25
+ class OutputDatadogSeverity(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""Default value for message severity. When you send logs as JSON objects, the event's '__severity' field (if set) will override this value."""
24
27
 
25
28
  EMERGENCY = "emergency"
@@ -32,7 +35,7 @@ class OutputDatadogSeverity(str, Enum):
32
35
  DEBUG = "debug"
33
36
 
34
37
 
35
- class DatadogSite(str, Enum):
38
+ class DatadogSite(str, Enum, metaclass=utils.OpenEnumMeta):
36
39
  r"""Datadog site to which events should be sent"""
37
40
 
38
41
  US = "us"
@@ -55,7 +58,7 @@ class OutputDatadogExtraHTTPHeader(BaseModel):
55
58
  name: Optional[str] = None
56
59
 
57
60
 
58
- class OutputDatadogFailedRequestLoggingMode(str, Enum):
61
+ class OutputDatadogFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
59
62
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
60
63
 
61
64
  PAYLOAD = "payload"
@@ -117,7 +120,7 @@ class OutputDatadogTimeoutRetrySettings(BaseModel):
117
120
  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)."""
118
121
 
119
122
 
120
- class OutputDatadogBackpressureBehavior(str, Enum):
123
+ class OutputDatadogBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
121
124
  r"""How to handle events when all receivers are exerting backpressure"""
122
125
 
123
126
  BLOCK = "block"
@@ -125,28 +128,28 @@ class OutputDatadogBackpressureBehavior(str, Enum):
125
128
  QUEUE = "queue"
126
129
 
127
130
 
128
- class OutputDatadogAuthenticationMethod(str, Enum):
131
+ class OutputDatadogAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
129
132
  r"""Enter API key directly, or select a stored secret"""
130
133
 
131
134
  MANUAL = "manual"
132
135
  SECRET = "secret"
133
136
 
134
137
 
135
- class OutputDatadogCompression(str, Enum):
138
+ class OutputDatadogCompression(str, Enum, metaclass=utils.OpenEnumMeta):
136
139
  r"""Codec to use to compress the persisted data"""
137
140
 
138
141
  NONE = "none"
139
142
  GZIP = "gzip"
140
143
 
141
144
 
142
- class OutputDatadogQueueFullBehavior(str, Enum):
145
+ class OutputDatadogQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
143
146
  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."""
144
147
 
145
148
  BLOCK = "block"
146
149
  DROP = "drop"
147
150
 
148
151
 
149
- class OutputDatadogMode(str, Enum):
152
+ class OutputDatadogMode(str, Enum, metaclass=utils.OpenEnumMeta):
150
153
  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."""
151
154
 
152
155
  ERROR = "error"
@@ -276,7 +279,8 @@ class OutputDatadog(BaseModel):
276
279
  r"""Tags for filtering and grouping in @{product}"""
277
280
 
278
281
  content_type: Annotated[
279
- Optional[SendLogsAs], pydantic.Field(alias="contentType")
282
+ Annotated[Optional[SendLogsAs], PlainValidator(validate_open_enum(False))],
283
+ pydantic.Field(alias="contentType"),
280
284
  ] = SendLogsAs.JSON
281
285
  r"""The content type to use when sending logs"""
282
286
 
@@ -303,10 +307,14 @@ class OutputDatadog(BaseModel):
303
307
  ] = False
304
308
  r"""Allow API key to be set from the event's '__agent_api_key' field"""
305
309
 
306
- severity: Optional[OutputDatadogSeverity] = None
310
+ severity: Annotated[
311
+ Optional[OutputDatadogSeverity], PlainValidator(validate_open_enum(False))
312
+ ] = None
307
313
  r"""Default value for message severity. When you send logs as JSON objects, the event's '__severity' field (if set) will override this value."""
308
314
 
309
- site: Optional[DatadogSite] = DatadogSite.US
315
+ site: Annotated[
316
+ Optional[DatadogSite], PlainValidator(validate_open_enum(False))
317
+ ] = DatadogSite.US
310
318
  r"""Datadog site to which events should be sent"""
311
319
 
312
320
  send_counters_as_count: Annotated[
@@ -358,7 +366,10 @@ class OutputDatadog(BaseModel):
358
366
  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."""
359
367
 
360
368
  failed_request_logging_mode: Annotated[
361
- Optional[OutputDatadogFailedRequestLoggingMode],
369
+ Annotated[
370
+ Optional[OutputDatadogFailedRequestLoggingMode],
371
+ PlainValidator(validate_open_enum(False)),
372
+ ],
362
373
  pydantic.Field(alias="failedRequestLoggingMode"),
363
374
  ] = OutputDatadogFailedRequestLoggingMode.NONE
364
375
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -385,13 +396,20 @@ class OutputDatadog(BaseModel):
385
396
  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."""
386
397
 
387
398
  on_backpressure: Annotated[
388
- Optional[OutputDatadogBackpressureBehavior],
399
+ Annotated[
400
+ Optional[OutputDatadogBackpressureBehavior],
401
+ PlainValidator(validate_open_enum(False)),
402
+ ],
389
403
  pydantic.Field(alias="onBackpressure"),
390
404
  ] = OutputDatadogBackpressureBehavior.BLOCK
391
405
  r"""How to handle events when all receivers are exerting backpressure"""
392
406
 
393
407
  auth_type: Annotated[
394
- Optional[OutputDatadogAuthenticationMethod], pydantic.Field(alias="authType")
408
+ Annotated[
409
+ Optional[OutputDatadogAuthenticationMethod],
410
+ PlainValidator(validate_open_enum(False)),
411
+ ],
412
+ pydantic.Field(alias="authType"),
395
413
  ] = OutputDatadogAuthenticationMethod.MANUAL
396
414
  r"""Enter API key directly, or select a stored secret"""
397
415
 
@@ -418,19 +436,29 @@ class OutputDatadog(BaseModel):
418
436
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
419
437
 
420
438
  pq_compress: Annotated[
421
- Optional[OutputDatadogCompression], pydantic.Field(alias="pqCompress")
439
+ Annotated[
440
+ Optional[OutputDatadogCompression],
441
+ PlainValidator(validate_open_enum(False)),
442
+ ],
443
+ pydantic.Field(alias="pqCompress"),
422
444
  ] = OutputDatadogCompression.NONE
423
445
  r"""Codec to use to compress the persisted data"""
424
446
 
425
447
  pq_on_backpressure: Annotated[
426
- Optional[OutputDatadogQueueFullBehavior],
448
+ Annotated[
449
+ Optional[OutputDatadogQueueFullBehavior],
450
+ PlainValidator(validate_open_enum(False)),
451
+ ],
427
452
  pydantic.Field(alias="pqOnBackpressure"),
428
453
  ] = OutputDatadogQueueFullBehavior.BLOCK
429
454
  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."""
430
455
 
431
- pq_mode: Annotated[Optional[OutputDatadogMode], pydantic.Field(alias="pqMode")] = (
432
- OutputDatadogMode.ERROR
433
- )
456
+ pq_mode: Annotated[
457
+ Annotated[
458
+ Optional[OutputDatadogMode], PlainValidator(validate_open_enum(False))
459
+ ],
460
+ pydantic.Field(alias="pqMode"),
461
+ ] = OutputDatadogMode.ERROR
434
462
  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."""
435
463
 
436
464
  pq_controls: Annotated[