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,14 +15,14 @@ class OutputSqsType(str, Enum):
12
15
  SQS = "sqs"
13
16
 
14
17
 
15
- class OutputSqsQueueType(str, Enum):
18
+ class OutputSqsQueueType(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""The queue type used (or created). Defaults to Standard."""
17
20
 
18
21
  STANDARD = "standard"
19
22
  FIFO = "fifo"
20
23
 
21
24
 
22
- class OutputSqsAuthenticationMethod(str, Enum):
25
+ class OutputSqsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""AWS authentication method. Choose Auto to use IAM roles."""
24
27
 
25
28
  AUTO = "auto"
@@ -27,14 +30,14 @@ class OutputSqsAuthenticationMethod(str, Enum):
27
30
  SECRET = "secret"
28
31
 
29
32
 
30
- class OutputSqsSignatureVersion(str, Enum):
33
+ class OutputSqsSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""Signature version to use for signing SQS requests"""
32
35
 
33
36
  V2 = "v2"
34
37
  V4 = "v4"
35
38
 
36
39
 
37
- class OutputSqsBackpressureBehavior(str, Enum):
40
+ class OutputSqsBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
38
41
  r"""How to handle events when all receivers are exerting backpressure"""
39
42
 
40
43
  BLOCK = "block"
@@ -42,21 +45,21 @@ class OutputSqsBackpressureBehavior(str, Enum):
42
45
  QUEUE = "queue"
43
46
 
44
47
 
45
- class OutputSqsCompression(str, Enum):
48
+ class OutputSqsCompression(str, Enum, metaclass=utils.OpenEnumMeta):
46
49
  r"""Codec to use to compress the persisted data"""
47
50
 
48
51
  NONE = "none"
49
52
  GZIP = "gzip"
50
53
 
51
54
 
52
- class OutputSqsQueueFullBehavior(str, Enum):
55
+ class OutputSqsQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
56
  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."""
54
57
 
55
58
  BLOCK = "block"
56
59
  DROP = "drop"
57
60
 
58
61
 
59
- class OutputSqsMode(str, Enum):
62
+ class OutputSqsMode(str, Enum, metaclass=utils.OpenEnumMeta):
60
63
  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."""
61
64
 
62
65
  ERROR = "error"
@@ -168,7 +171,10 @@ class OutputSqs(BaseModel):
168
171
  r"""Tags for filtering and grouping in @{product}"""
169
172
 
170
173
  queue_type: Annotated[
171
- Optional[OutputSqsQueueType], pydantic.Field(alias="queueType")
174
+ Annotated[
175
+ Optional[OutputSqsQueueType], PlainValidator(validate_open_enum(False))
176
+ ],
177
+ pydantic.Field(alias="queueType"),
172
178
  ] = OutputSqsQueueType.STANDARD
173
179
  r"""The queue type used (or created). Defaults to Standard."""
174
180
 
@@ -186,7 +192,10 @@ class OutputSqs(BaseModel):
186
192
  r"""Create queue if it does not exist."""
187
193
 
188
194
  aws_authentication_method: Annotated[
189
- Optional[OutputSqsAuthenticationMethod],
195
+ Annotated[
196
+ Optional[OutputSqsAuthenticationMethod],
197
+ PlainValidator(validate_open_enum(False)),
198
+ ],
190
199
  pydantic.Field(alias="awsAuthenticationMethod"),
191
200
  ] = OutputSqsAuthenticationMethod.AUTO
192
201
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -202,7 +211,11 @@ class OutputSqs(BaseModel):
202
211
  r"""SQS service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to SQS-compatible endpoint."""
203
212
 
204
213
  signature_version: Annotated[
205
- Optional[OutputSqsSignatureVersion], pydantic.Field(alias="signatureVersion")
214
+ Annotated[
215
+ Optional[OutputSqsSignatureVersion],
216
+ PlainValidator(validate_open_enum(False)),
217
+ ],
218
+ pydantic.Field(alias="signatureVersion"),
206
219
  ] = OutputSqsSignatureVersion.V4
207
220
  r"""Signature version to use for signing SQS requests"""
208
221
 
@@ -257,7 +270,11 @@ class OutputSqs(BaseModel):
257
270
  r"""The maximum number of in-progress API requests before backpressure is applied."""
258
271
 
259
272
  on_backpressure: Annotated[
260
- Optional[OutputSqsBackpressureBehavior], pydantic.Field(alias="onBackpressure")
273
+ Annotated[
274
+ Optional[OutputSqsBackpressureBehavior],
275
+ PlainValidator(validate_open_enum(False)),
276
+ ],
277
+ pydantic.Field(alias="onBackpressure"),
261
278
  ] = OutputSqsBackpressureBehavior.BLOCK
262
279
  r"""How to handle events when all receivers are exerting backpressure"""
263
280
 
@@ -282,18 +299,26 @@ class OutputSqs(BaseModel):
282
299
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
283
300
 
284
301
  pq_compress: Annotated[
285
- Optional[OutputSqsCompression], pydantic.Field(alias="pqCompress")
302
+ Annotated[
303
+ Optional[OutputSqsCompression], PlainValidator(validate_open_enum(False))
304
+ ],
305
+ pydantic.Field(alias="pqCompress"),
286
306
  ] = OutputSqsCompression.NONE
287
307
  r"""Codec to use to compress the persisted data"""
288
308
 
289
309
  pq_on_backpressure: Annotated[
290
- Optional[OutputSqsQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
310
+ Annotated[
311
+ Optional[OutputSqsQueueFullBehavior],
312
+ PlainValidator(validate_open_enum(False)),
313
+ ],
314
+ pydantic.Field(alias="pqOnBackpressure"),
291
315
  ] = OutputSqsQueueFullBehavior.BLOCK
292
316
  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."""
293
317
 
294
- pq_mode: Annotated[Optional[OutputSqsMode], pydantic.Field(alias="pqMode")] = (
295
- OutputSqsMode.ERROR
296
- )
318
+ pq_mode: Annotated[
319
+ Annotated[Optional[OutputSqsMode], PlainValidator(validate_open_enum(False))],
320
+ pydantic.Field(alias="pqMode"),
321
+ ] = OutputSqsMode.ERROR
297
322
  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."""
298
323
 
299
324
  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
 
@@ -12,14 +15,14 @@ class OutputStatsdType(str, Enum):
12
15
  STATSD = "statsd"
13
16
 
14
17
 
15
- class OutputStatsdDestinationProtocol(str, Enum):
18
+ class OutputStatsdDestinationProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Protocol to use when communicating with the destination."""
17
20
 
18
21
  UDP = "udp"
19
22
  TCP = "tcp"
20
23
 
21
24
 
22
- class OutputStatsdBackpressureBehavior(str, Enum):
25
+ class OutputStatsdBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""How to handle events when all receivers are exerting backpressure"""
24
27
 
25
28
  BLOCK = "block"
@@ -27,21 +30,21 @@ class OutputStatsdBackpressureBehavior(str, Enum):
27
30
  QUEUE = "queue"
28
31
 
29
32
 
30
- class OutputStatsdCompression(str, Enum):
33
+ class OutputStatsdCompression(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""Codec to use to compress the persisted data"""
32
35
 
33
36
  NONE = "none"
34
37
  GZIP = "gzip"
35
38
 
36
39
 
37
- class OutputStatsdQueueFullBehavior(str, Enum):
40
+ class OutputStatsdQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
38
41
  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."""
39
42
 
40
43
  BLOCK = "block"
41
44
  DROP = "drop"
42
45
 
43
46
 
44
- class OutputStatsdMode(str, Enum):
47
+ class OutputStatsdMode(str, Enum, metaclass=utils.OpenEnumMeta):
45
48
  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."""
46
49
 
47
50
  ERROR = "error"
@@ -128,9 +131,10 @@ class OutputStatsd(BaseModel):
128
131
  streamtags: Optional[List[str]] = None
129
132
  r"""Tags for filtering and grouping in @{product}"""
130
133
 
131
- protocol: Optional[OutputStatsdDestinationProtocol] = (
132
- OutputStatsdDestinationProtocol.UDP
133
- )
134
+ protocol: Annotated[
135
+ Optional[OutputStatsdDestinationProtocol],
136
+ PlainValidator(validate_open_enum(False)),
137
+ ] = OutputStatsdDestinationProtocol.UDP
134
138
  r"""Protocol to use when communicating with the destination."""
135
139
 
136
140
  port: Optional[float] = 8125
@@ -167,7 +171,10 @@ class OutputStatsd(BaseModel):
167
171
  r"""Amount of time (milliseconds) to wait for a write to complete before assuming connection is dead"""
168
172
 
169
173
  on_backpressure: Annotated[
170
- Optional[OutputStatsdBackpressureBehavior],
174
+ Annotated[
175
+ Optional[OutputStatsdBackpressureBehavior],
176
+ PlainValidator(validate_open_enum(False)),
177
+ ],
171
178
  pydantic.Field(alias="onBackpressure"),
172
179
  ] = OutputStatsdBackpressureBehavior.BLOCK
173
180
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -186,19 +193,28 @@ class OutputStatsd(BaseModel):
186
193
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
187
194
 
188
195
  pq_compress: Annotated[
189
- Optional[OutputStatsdCompression], pydantic.Field(alias="pqCompress")
196
+ Annotated[
197
+ Optional[OutputStatsdCompression], PlainValidator(validate_open_enum(False))
198
+ ],
199
+ pydantic.Field(alias="pqCompress"),
190
200
  ] = OutputStatsdCompression.NONE
191
201
  r"""Codec to use to compress the persisted data"""
192
202
 
193
203
  pq_on_backpressure: Annotated[
194
- Optional[OutputStatsdQueueFullBehavior],
204
+ Annotated[
205
+ Optional[OutputStatsdQueueFullBehavior],
206
+ PlainValidator(validate_open_enum(False)),
207
+ ],
195
208
  pydantic.Field(alias="pqOnBackpressure"),
196
209
  ] = OutputStatsdQueueFullBehavior.BLOCK
197
210
  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."""
198
211
 
199
- pq_mode: Annotated[Optional[OutputStatsdMode], pydantic.Field(alias="pqMode")] = (
200
- OutputStatsdMode.ERROR
201
- )
212
+ pq_mode: Annotated[
213
+ Annotated[
214
+ Optional[OutputStatsdMode], PlainValidator(validate_open_enum(False))
215
+ ],
216
+ pydantic.Field(alias="pqMode"),
217
+ ] = OutputStatsdMode.ERROR
202
218
  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."""
203
219
 
204
220
  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
 
@@ -12,14 +15,14 @@ class OutputStatsdExtType(str, Enum):
12
15
  STATSD_EXT = "statsd_ext"
13
16
 
14
17
 
15
- class OutputStatsdExtDestinationProtocol(str, Enum):
18
+ class OutputStatsdExtDestinationProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Protocol to use when communicating with the destination."""
17
20
 
18
21
  UDP = "udp"
19
22
  TCP = "tcp"
20
23
 
21
24
 
22
- class OutputStatsdExtBackpressureBehavior(str, Enum):
25
+ class OutputStatsdExtBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""How to handle events when all receivers are exerting backpressure"""
24
27
 
25
28
  BLOCK = "block"
@@ -27,21 +30,21 @@ class OutputStatsdExtBackpressureBehavior(str, Enum):
27
30
  QUEUE = "queue"
28
31
 
29
32
 
30
- class OutputStatsdExtCompression(str, Enum):
33
+ class OutputStatsdExtCompression(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""Codec to use to compress the persisted data"""
32
35
 
33
36
  NONE = "none"
34
37
  GZIP = "gzip"
35
38
 
36
39
 
37
- class OutputStatsdExtQueueFullBehavior(str, Enum):
40
+ class OutputStatsdExtQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
38
41
  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."""
39
42
 
40
43
  BLOCK = "block"
41
44
  DROP = "drop"
42
45
 
43
46
 
44
- class OutputStatsdExtMode(str, Enum):
47
+ class OutputStatsdExtMode(str, Enum, metaclass=utils.OpenEnumMeta):
45
48
  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."""
46
49
 
47
50
  ERROR = "error"
@@ -128,9 +131,10 @@ class OutputStatsdExt(BaseModel):
128
131
  streamtags: Optional[List[str]] = None
129
132
  r"""Tags for filtering and grouping in @{product}"""
130
133
 
131
- protocol: Optional[OutputStatsdExtDestinationProtocol] = (
132
- OutputStatsdExtDestinationProtocol.UDP
133
- )
134
+ protocol: Annotated[
135
+ Optional[OutputStatsdExtDestinationProtocol],
136
+ PlainValidator(validate_open_enum(False)),
137
+ ] = OutputStatsdExtDestinationProtocol.UDP
134
138
  r"""Protocol to use when communicating with the destination."""
135
139
 
136
140
  port: Optional[float] = 8125
@@ -167,7 +171,10 @@ class OutputStatsdExt(BaseModel):
167
171
  r"""Amount of time (milliseconds) to wait for a write to complete before assuming connection is dead"""
168
172
 
169
173
  on_backpressure: Annotated[
170
- Optional[OutputStatsdExtBackpressureBehavior],
174
+ Annotated[
175
+ Optional[OutputStatsdExtBackpressureBehavior],
176
+ PlainValidator(validate_open_enum(False)),
177
+ ],
171
178
  pydantic.Field(alias="onBackpressure"),
172
179
  ] = OutputStatsdExtBackpressureBehavior.BLOCK
173
180
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -186,18 +193,28 @@ class OutputStatsdExt(BaseModel):
186
193
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
187
194
 
188
195
  pq_compress: Annotated[
189
- Optional[OutputStatsdExtCompression], pydantic.Field(alias="pqCompress")
196
+ Annotated[
197
+ Optional[OutputStatsdExtCompression],
198
+ PlainValidator(validate_open_enum(False)),
199
+ ],
200
+ pydantic.Field(alias="pqCompress"),
190
201
  ] = OutputStatsdExtCompression.NONE
191
202
  r"""Codec to use to compress the persisted data"""
192
203
 
193
204
  pq_on_backpressure: Annotated[
194
- Optional[OutputStatsdExtQueueFullBehavior],
205
+ Annotated[
206
+ Optional[OutputStatsdExtQueueFullBehavior],
207
+ PlainValidator(validate_open_enum(False)),
208
+ ],
195
209
  pydantic.Field(alias="pqOnBackpressure"),
196
210
  ] = OutputStatsdExtQueueFullBehavior.BLOCK
197
211
  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."""
198
212
 
199
213
  pq_mode: Annotated[
200
- Optional[OutputStatsdExtMode], pydantic.Field(alias="pqMode")
214
+ Annotated[
215
+ Optional[OutputStatsdExtMode], PlainValidator(validate_open_enum(False))
216
+ ],
217
+ pydantic.Field(alias="pqMode"),
201
218
  ] = OutputStatsdExtMode.ERROR
202
219
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
203
220
 
@@ -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 OutputSumoLogicType(str, Enum):
12
15
  SUMO_LOGIC = "sumo_logic"
13
16
 
14
17
 
15
- class OutputSumoLogicDataFormat(str, Enum):
18
+ class OutputSumoLogicDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Preserve the raw event format instead of JSONifying it"""
17
20
 
18
21
  JSON = "json"
@@ -30,7 +33,7 @@ class OutputSumoLogicExtraHTTPHeader(BaseModel):
30
33
  name: Optional[str] = None
31
34
 
32
35
 
33
- class OutputSumoLogicFailedRequestLoggingMode(str, Enum):
36
+ class OutputSumoLogicFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
35
38
 
36
39
  PAYLOAD = "payload"
@@ -92,7 +95,7 @@ class OutputSumoLogicTimeoutRetrySettings(BaseModel):
92
95
  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)."""
93
96
 
94
97
 
95
- class OutputSumoLogicBackpressureBehavior(str, Enum):
98
+ class OutputSumoLogicBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
96
99
  r"""How to handle events when all receivers are exerting backpressure"""
97
100
 
98
101
  BLOCK = "block"
@@ -100,21 +103,21 @@ class OutputSumoLogicBackpressureBehavior(str, Enum):
100
103
  QUEUE = "queue"
101
104
 
102
105
 
103
- class OutputSumoLogicCompression(str, Enum):
106
+ class OutputSumoLogicCompression(str, Enum, metaclass=utils.OpenEnumMeta):
104
107
  r"""Codec to use to compress the persisted data"""
105
108
 
106
109
  NONE = "none"
107
110
  GZIP = "gzip"
108
111
 
109
112
 
110
- class OutputSumoLogicQueueFullBehavior(str, Enum):
113
+ class OutputSumoLogicQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
111
114
  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."""
112
115
 
113
116
  BLOCK = "block"
114
117
  DROP = "drop"
115
118
 
116
119
 
117
- class OutputSumoLogicMode(str, Enum):
120
+ class OutputSumoLogicMode(str, Enum, metaclass=utils.OpenEnumMeta):
118
121
  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."""
119
122
 
120
123
  ERROR = "error"
@@ -234,7 +237,11 @@ class OutputSumoLogic(BaseModel):
234
237
  r"""Override the source category configured on the Sumo Logic HTTP collector. This can also be overridden at the event level with the __sourceCategory field."""
235
238
 
236
239
  format_: Annotated[
237
- Optional[OutputSumoLogicDataFormat], pydantic.Field(alias="format")
240
+ Annotated[
241
+ Optional[OutputSumoLogicDataFormat],
242
+ PlainValidator(validate_open_enum(False)),
243
+ ],
244
+ pydantic.Field(alias="format"),
238
245
  ] = OutputSumoLogicDataFormat.JSON
239
246
  r"""Preserve the raw event format instead of JSONifying it"""
240
247
 
@@ -282,7 +289,10 @@ class OutputSumoLogic(BaseModel):
282
289
  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."""
283
290
 
284
291
  failed_request_logging_mode: Annotated[
285
- Optional[OutputSumoLogicFailedRequestLoggingMode],
292
+ Annotated[
293
+ Optional[OutputSumoLogicFailedRequestLoggingMode],
294
+ PlainValidator(validate_open_enum(False)),
295
+ ],
286
296
  pydantic.Field(alias="failedRequestLoggingMode"),
287
297
  ] = OutputSumoLogicFailedRequestLoggingMode.NONE
288
298
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -309,7 +319,10 @@ class OutputSumoLogic(BaseModel):
309
319
  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."""
310
320
 
311
321
  on_backpressure: Annotated[
312
- Optional[OutputSumoLogicBackpressureBehavior],
322
+ Annotated[
323
+ Optional[OutputSumoLogicBackpressureBehavior],
324
+ PlainValidator(validate_open_enum(False)),
325
+ ],
313
326
  pydantic.Field(alias="onBackpressure"),
314
327
  ] = OutputSumoLogicBackpressureBehavior.BLOCK
315
328
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -335,18 +348,28 @@ class OutputSumoLogic(BaseModel):
335
348
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
336
349
 
337
350
  pq_compress: Annotated[
338
- Optional[OutputSumoLogicCompression], pydantic.Field(alias="pqCompress")
351
+ Annotated[
352
+ Optional[OutputSumoLogicCompression],
353
+ PlainValidator(validate_open_enum(False)),
354
+ ],
355
+ pydantic.Field(alias="pqCompress"),
339
356
  ] = OutputSumoLogicCompression.NONE
340
357
  r"""Codec to use to compress the persisted data"""
341
358
 
342
359
  pq_on_backpressure: Annotated[
343
- Optional[OutputSumoLogicQueueFullBehavior],
360
+ Annotated[
361
+ Optional[OutputSumoLogicQueueFullBehavior],
362
+ PlainValidator(validate_open_enum(False)),
363
+ ],
344
364
  pydantic.Field(alias="pqOnBackpressure"),
345
365
  ] = OutputSumoLogicQueueFullBehavior.BLOCK
346
366
  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."""
347
367
 
348
368
  pq_mode: Annotated[
349
- Optional[OutputSumoLogicMode], pydantic.Field(alias="pqMode")
369
+ Annotated[
370
+ Optional[OutputSumoLogicMode], PlainValidator(validate_open_enum(False))
371
+ ],
372
+ pydantic.Field(alias="pqMode"),
350
373
  ] = OutputSumoLogicMode.ERROR
351
374
  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."""
352
375