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,7 +15,7 @@ class OutputKinesisType(str, Enum):
12
15
  KINESIS = "kinesis"
13
16
 
14
17
 
15
- class OutputKinesisAuthenticationMethod(str, Enum):
18
+ class OutputKinesisAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""AWS authentication method. Choose Auto to use IAM roles."""
17
20
 
18
21
  AUTO = "auto"
@@ -20,21 +23,21 @@ class OutputKinesisAuthenticationMethod(str, Enum):
20
23
  SECRET = "secret"
21
24
 
22
25
 
23
- class OutputKinesisSignatureVersion(str, Enum):
26
+ class OutputKinesisSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
24
27
  r"""Signature version to use for signing Kinesis stream requests"""
25
28
 
26
29
  V2 = "v2"
27
30
  V4 = "v4"
28
31
 
29
32
 
30
- class OutputKinesisCompression(str, Enum):
33
+ class OutputKinesisCompression(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""Compression type to use for records"""
32
35
 
33
36
  NONE = "none"
34
37
  GZIP = "gzip"
35
38
 
36
39
 
37
- class OutputKinesisBackpressureBehavior(str, Enum):
40
+ class OutputKinesisBackpressureBehavior(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 OutputKinesisBackpressureBehavior(str, Enum):
42
45
  QUEUE = "queue"
43
46
 
44
47
 
45
- class OutputKinesisPqCompressCompression(str, Enum):
48
+ class OutputKinesisPqCompressCompression(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 OutputKinesisQueueFullBehavior(str, Enum):
55
+ class OutputKinesisQueueFullBehavior(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 OutputKinesisMode(str, Enum):
62
+ class OutputKinesisMode(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"
@@ -167,7 +170,10 @@ class OutputKinesis(BaseModel):
167
170
  r"""Tags for filtering and grouping in @{product}"""
168
171
 
169
172
  aws_authentication_method: Annotated[
170
- Optional[OutputKinesisAuthenticationMethod],
173
+ Annotated[
174
+ Optional[OutputKinesisAuthenticationMethod],
175
+ PlainValidator(validate_open_enum(False)),
176
+ ],
171
177
  pydantic.Field(alias="awsAuthenticationMethod"),
172
178
  ] = OutputKinesisAuthenticationMethod.AUTO
173
179
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -180,7 +186,10 @@ class OutputKinesis(BaseModel):
180
186
  r"""Kinesis stream service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to Kinesis stream-compatible endpoint."""
181
187
 
182
188
  signature_version: Annotated[
183
- Optional[OutputKinesisSignatureVersion],
189
+ Annotated[
190
+ Optional[OutputKinesisSignatureVersion],
191
+ PlainValidator(validate_open_enum(False)),
192
+ ],
184
193
  pydantic.Field(alias="signatureVersion"),
185
194
  ] = OutputKinesisSignatureVersion.V4
186
195
  r"""Signature version to use for signing Kinesis stream requests"""
@@ -228,7 +237,9 @@ class OutputKinesis(BaseModel):
228
237
  ] = 1
229
238
  r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Max record size."""
230
239
 
231
- compression: Optional[OutputKinesisCompression] = OutputKinesisCompression.GZIP
240
+ compression: Annotated[
241
+ Optional[OutputKinesisCompression], PlainValidator(validate_open_enum(False))
242
+ ] = OutputKinesisCompression.GZIP
232
243
  r"""Compression type to use for records"""
233
244
 
234
245
  use_list_shards: Annotated[
@@ -240,7 +251,10 @@ class OutputKinesis(BaseModel):
240
251
  r"""Batch events into a single record as NDJSON"""
241
252
 
242
253
  on_backpressure: Annotated[
243
- Optional[OutputKinesisBackpressureBehavior],
254
+ Annotated[
255
+ Optional[OutputKinesisBackpressureBehavior],
256
+ PlainValidator(validate_open_enum(False)),
257
+ ],
244
258
  pydantic.Field(alias="onBackpressure"),
245
259
  ] = OutputKinesisBackpressureBehavior.BLOCK
246
260
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -266,19 +280,29 @@ class OutputKinesis(BaseModel):
266
280
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
267
281
 
268
282
  pq_compress: Annotated[
269
- Optional[OutputKinesisPqCompressCompression], pydantic.Field(alias="pqCompress")
283
+ Annotated[
284
+ Optional[OutputKinesisPqCompressCompression],
285
+ PlainValidator(validate_open_enum(False)),
286
+ ],
287
+ pydantic.Field(alias="pqCompress"),
270
288
  ] = OutputKinesisPqCompressCompression.NONE
271
289
  r"""Codec to use to compress the persisted data"""
272
290
 
273
291
  pq_on_backpressure: Annotated[
274
- Optional[OutputKinesisQueueFullBehavior],
292
+ Annotated[
293
+ Optional[OutputKinesisQueueFullBehavior],
294
+ PlainValidator(validate_open_enum(False)),
295
+ ],
275
296
  pydantic.Field(alias="pqOnBackpressure"),
276
297
  ] = OutputKinesisQueueFullBehavior.BLOCK
277
298
  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."""
278
299
 
279
- pq_mode: Annotated[Optional[OutputKinesisMode], pydantic.Field(alias="pqMode")] = (
280
- OutputKinesisMode.ERROR
281
- )
300
+ pq_mode: Annotated[
301
+ Annotated[
302
+ Optional[OutputKinesisMode], PlainValidator(validate_open_enum(False))
303
+ ],
304
+ pydantic.Field(alias="pqMode"),
305
+ ] = OutputKinesisMode.ERROR
282
306
  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."""
283
307
 
284
308
  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,7 +15,7 @@ class OutputLokiType(str, Enum):
12
15
  LOKI = "loki"
13
16
 
14
17
 
15
- class OutputLokiMessageFormat(str, Enum):
18
+ class OutputLokiMessageFormat(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Format to use when sending logs to Loki (Protobuf or JSON)"""
17
20
 
18
21
  PROTOBUF = "protobuf"
@@ -30,7 +33,7 @@ class OutputLokiLabel(BaseModel):
30
33
  name: Optional[str] = ""
31
34
 
32
35
 
33
- class OutputLokiAuthenticationType(str, Enum):
36
+ class OutputLokiAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  NONE = "none"
35
38
  TOKEN = "token"
36
39
  TEXT_SECRET = "textSecret"
@@ -49,7 +52,7 @@ class OutputLokiExtraHTTPHeader(BaseModel):
49
52
  name: Optional[str] = None
50
53
 
51
54
 
52
- class OutputLokiFailedRequestLoggingMode(str, Enum):
55
+ class OutputLokiFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
53
56
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
54
57
 
55
58
  PAYLOAD = "payload"
@@ -111,7 +114,7 @@ class OutputLokiTimeoutRetrySettings(BaseModel):
111
114
  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)."""
112
115
 
113
116
 
114
- class OutputLokiBackpressureBehavior(str, Enum):
117
+ class OutputLokiBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
115
118
  r"""How to handle events when all receivers are exerting backpressure"""
116
119
 
117
120
  BLOCK = "block"
@@ -119,21 +122,21 @@ class OutputLokiBackpressureBehavior(str, Enum):
119
122
  QUEUE = "queue"
120
123
 
121
124
 
122
- class OutputLokiCompression(str, Enum):
125
+ class OutputLokiCompression(str, Enum, metaclass=utils.OpenEnumMeta):
123
126
  r"""Codec to use to compress the persisted data"""
124
127
 
125
128
  NONE = "none"
126
129
  GZIP = "gzip"
127
130
 
128
131
 
129
- class OutputLokiQueueFullBehavior(str, Enum):
132
+ class OutputLokiQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
130
133
  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."""
131
134
 
132
135
  BLOCK = "block"
133
136
  DROP = "drop"
134
137
 
135
138
 
136
- class OutputLokiMode(str, Enum):
139
+ class OutputLokiMode(str, Enum, metaclass=utils.OpenEnumMeta):
137
140
  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."""
138
141
 
139
142
  ERROR = "error"
@@ -259,7 +262,10 @@ class OutputLoki(BaseModel):
259
262
  r"""Name of the event field that contains the message to send. If not specified, Stream sends a JSON representation of the whole event."""
260
263
 
261
264
  message_format: Annotated[
262
- Optional[OutputLokiMessageFormat], pydantic.Field(alias="messageFormat")
265
+ Annotated[
266
+ Optional[OutputLokiMessageFormat], PlainValidator(validate_open_enum(False))
267
+ ],
268
+ pydantic.Field(alias="messageFormat"),
263
269
  ] = OutputLokiMessageFormat.PROTOBUF
264
270
  r"""Format to use when sending logs to Loki (Protobuf or JSON)"""
265
271
 
@@ -267,7 +273,11 @@ class OutputLoki(BaseModel):
267
273
  r"""List of labels to send with logs. Labels define Loki streams, so use static labels to avoid proliferating label value combinations and streams. Can be merged and/or overridden by the event's __labels field. Example: '__labels: {host: \"cribl.io\", level: \"error\"}'"""
268
274
 
269
275
  auth_type: Annotated[
270
- Optional[OutputLokiAuthenticationType], pydantic.Field(alias="authType")
276
+ Annotated[
277
+ Optional[OutputLokiAuthenticationType],
278
+ PlainValidator(validate_open_enum(False)),
279
+ ],
280
+ pydantic.Field(alias="authType"),
271
281
  ] = OutputLokiAuthenticationType.NONE
272
282
 
273
283
  concurrency: Optional[float] = 1
@@ -311,7 +321,10 @@ class OutputLoki(BaseModel):
311
321
  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."""
312
322
 
313
323
  failed_request_logging_mode: Annotated[
314
- Optional[OutputLokiFailedRequestLoggingMode],
324
+ Annotated[
325
+ Optional[OutputLokiFailedRequestLoggingMode],
326
+ PlainValidator(validate_open_enum(False)),
327
+ ],
315
328
  pydantic.Field(alias="failedRequestLoggingMode"),
316
329
  ] = OutputLokiFailedRequestLoggingMode.NONE
317
330
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -343,7 +356,11 @@ class OutputLoki(BaseModel):
343
356
  r"""Add per-event HTTP headers from the __headers field to outgoing requests. Events with different headers are batched and sent separately."""
344
357
 
345
358
  on_backpressure: Annotated[
346
- Optional[OutputLokiBackpressureBehavior], pydantic.Field(alias="onBackpressure")
359
+ Annotated[
360
+ Optional[OutputLokiBackpressureBehavior],
361
+ PlainValidator(validate_open_enum(False)),
362
+ ],
363
+ pydantic.Field(alias="onBackpressure"),
347
364
  ] = OutputLokiBackpressureBehavior.BLOCK
348
365
  r"""How to handle events when all receivers are exerting backpressure"""
349
366
 
@@ -388,18 +405,26 @@ class OutputLoki(BaseModel):
388
405
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
389
406
 
390
407
  pq_compress: Annotated[
391
- Optional[OutputLokiCompression], pydantic.Field(alias="pqCompress")
408
+ Annotated[
409
+ Optional[OutputLokiCompression], PlainValidator(validate_open_enum(False))
410
+ ],
411
+ pydantic.Field(alias="pqCompress"),
392
412
  ] = OutputLokiCompression.NONE
393
413
  r"""Codec to use to compress the persisted data"""
394
414
 
395
415
  pq_on_backpressure: Annotated[
396
- Optional[OutputLokiQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
416
+ Annotated[
417
+ Optional[OutputLokiQueueFullBehavior],
418
+ PlainValidator(validate_open_enum(False)),
419
+ ],
420
+ pydantic.Field(alias="pqOnBackpressure"),
397
421
  ] = OutputLokiQueueFullBehavior.BLOCK
398
422
  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."""
399
423
 
400
- pq_mode: Annotated[Optional[OutputLokiMode], pydantic.Field(alias="pqMode")] = (
401
- OutputLokiMode.ERROR
402
- )
424
+ pq_mode: Annotated[
425
+ Annotated[Optional[OutputLokiMode], PlainValidator(validate_open_enum(False))],
426
+ pydantic.Field(alias="pqMode"),
427
+ ] = OutputLokiMode.ERROR
403
428
  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."""
404
429
 
405
430
  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,7 +15,7 @@ class OutputMinioType(str, Enum):
12
15
  MINIO = "minio"
13
16
 
14
17
 
15
- class OutputMinioAuthenticationMethod(str, Enum):
18
+ class OutputMinioAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""AWS authentication method. Choose Auto to use IAM roles."""
17
20
 
18
21
  AUTO = "auto"
@@ -20,14 +23,14 @@ class OutputMinioAuthenticationMethod(str, Enum):
20
23
  SECRET = "secret"
21
24
 
22
25
 
23
- class OutputMinioSignatureVersion(str, Enum):
26
+ class OutputMinioSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
24
27
  r"""Signature version to use for signing MinIO requests"""
25
28
 
26
29
  V2 = "v2"
27
30
  V4 = "v4"
28
31
 
29
32
 
30
- class OutputMinioObjectACL(str, Enum):
33
+ class OutputMinioObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
31
34
  r"""Object ACL to assign to uploaded objects"""
32
35
 
33
36
  PRIVATE = "private"
@@ -39,20 +42,20 @@ class OutputMinioObjectACL(str, Enum):
39
42
  BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control"
40
43
 
41
44
 
42
- class OutputMinioStorageClass(str, Enum):
45
+ class OutputMinioStorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
43
46
  r"""Storage class to select for uploaded objects"""
44
47
 
45
48
  STANDARD = "STANDARD"
46
49
  REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY"
47
50
 
48
51
 
49
- class ServerSideEncryption(str, Enum):
52
+ class ServerSideEncryption(str, Enum, metaclass=utils.OpenEnumMeta):
50
53
  r"""Server-side encryption for uploaded objects"""
51
54
 
52
55
  AES256 = "AES256"
53
56
 
54
57
 
55
- class OutputMinioDataFormat(str, Enum):
58
+ class OutputMinioDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
56
59
  r"""Format of the output data"""
57
60
 
58
61
  JSON = "json"
@@ -60,28 +63,28 @@ class OutputMinioDataFormat(str, Enum):
60
63
  PARQUET = "parquet"
61
64
 
62
65
 
63
- class OutputMinioBackpressureBehavior(str, Enum):
66
+ class OutputMinioBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
64
67
  r"""How to handle events when all receivers are exerting backpressure"""
65
68
 
66
69
  BLOCK = "block"
67
70
  DROP = "drop"
68
71
 
69
72
 
70
- class OutputMinioDiskSpaceProtection(str, Enum):
73
+ class OutputMinioDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
71
74
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
72
75
 
73
76
  BLOCK = "block"
74
77
  DROP = "drop"
75
78
 
76
79
 
77
- class OutputMinioCompression(str, Enum):
80
+ class OutputMinioCompression(str, Enum, metaclass=utils.OpenEnumMeta):
78
81
  r"""Data compression format to apply to HTTP content before it is delivered"""
79
82
 
80
83
  NONE = "none"
81
84
  GZIP = "gzip"
82
85
 
83
86
 
84
- class OutputMinioCompressionLevel(str, Enum):
87
+ class OutputMinioCompressionLevel(str, Enum, metaclass=utils.OpenEnumMeta):
85
88
  r"""Compression level to apply before moving files to final destination"""
86
89
 
87
90
  BEST_SPEED = "best_speed"
@@ -89,7 +92,7 @@ class OutputMinioCompressionLevel(str, Enum):
89
92
  BEST_COMPRESSION = "best_compression"
90
93
 
91
94
 
92
- class OutputMinioParquetVersion(str, Enum):
95
+ class OutputMinioParquetVersion(str, Enum, metaclass=utils.OpenEnumMeta):
93
96
  r"""Determines which data types are supported and how they are represented"""
94
97
 
95
98
  PARQUET_1_0 = "PARQUET_1_0"
@@ -97,7 +100,7 @@ class OutputMinioParquetVersion(str, Enum):
97
100
  PARQUET_2_6 = "PARQUET_2_6"
98
101
 
99
102
 
100
- class OutputMinioDataPageVersion(str, Enum):
103
+ class OutputMinioDataPageVersion(str, Enum, metaclass=utils.OpenEnumMeta):
101
104
  r"""Serialization format of data pages. Note that some reader implementations use Data page V2's attributes to work more efficiently, while others ignore it."""
102
105
 
103
106
  DATA_PAGE_V1 = "DATA_PAGE_V1"
@@ -251,7 +254,10 @@ class OutputMinio(BaseModel):
251
254
  r"""Tags for filtering and grouping in @{product}"""
252
255
 
253
256
  aws_authentication_method: Annotated[
254
- Optional[OutputMinioAuthenticationMethod],
257
+ Annotated[
258
+ Optional[OutputMinioAuthenticationMethod],
259
+ PlainValidator(validate_open_enum(False)),
260
+ ],
255
261
  pydantic.Field(alias="awsAuthenticationMethod"),
256
262
  ] = OutputMinioAuthenticationMethod.AUTO
257
263
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -278,22 +284,35 @@ class OutputMinio(BaseModel):
278
284
  r"""Root directory to prepend to path before uploading. Enter a constant, or a JavaScript expression enclosed in quotes or backticks."""
279
285
 
280
286
  signature_version: Annotated[
281
- Optional[OutputMinioSignatureVersion], pydantic.Field(alias="signatureVersion")
287
+ Annotated[
288
+ Optional[OutputMinioSignatureVersion],
289
+ PlainValidator(validate_open_enum(False)),
290
+ ],
291
+ pydantic.Field(alias="signatureVersion"),
282
292
  ] = OutputMinioSignatureVersion.V4
283
293
  r"""Signature version to use for signing MinIO requests"""
284
294
 
285
295
  object_acl: Annotated[
286
- Optional[OutputMinioObjectACL], pydantic.Field(alias="objectACL")
296
+ Annotated[
297
+ Optional[OutputMinioObjectACL], PlainValidator(validate_open_enum(False))
298
+ ],
299
+ pydantic.Field(alias="objectACL"),
287
300
  ] = OutputMinioObjectACL.PRIVATE
288
301
  r"""Object ACL to assign to uploaded objects"""
289
302
 
290
303
  storage_class: Annotated[
291
- Optional[OutputMinioStorageClass], pydantic.Field(alias="storageClass")
304
+ Annotated[
305
+ Optional[OutputMinioStorageClass], PlainValidator(validate_open_enum(False))
306
+ ],
307
+ pydantic.Field(alias="storageClass"),
292
308
  ] = None
293
309
  r"""Storage class to select for uploaded objects"""
294
310
 
295
311
  server_side_encryption: Annotated[
296
- Optional[ServerSideEncryption], pydantic.Field(alias="serverSideEncryption")
312
+ Annotated[
313
+ Optional[ServerSideEncryption], PlainValidator(validate_open_enum(False))
314
+ ],
315
+ pydantic.Field(alias="serverSideEncryption"),
297
316
  ] = None
298
317
  r"""Server-side encryption for uploaded objects"""
299
318
 
@@ -323,7 +342,10 @@ class OutputMinio(BaseModel):
323
342
  r"""JavaScript expression defining how files are partitioned and organized. Default is date-based. If blank, Stream will fall back to the event's __partition field value – if present – otherwise to each location's root directory."""
324
343
 
325
344
  format_: Annotated[
326
- Optional[OutputMinioDataFormat], pydantic.Field(alias="format")
345
+ Annotated[
346
+ Optional[OutputMinioDataFormat], PlainValidator(validate_open_enum(False))
347
+ ],
348
+ pydantic.Field(alias="format"),
327
349
  ] = OutputMinioDataFormat.JSON
328
350
  r"""Format of the output data"""
329
351
 
@@ -356,7 +378,10 @@ class OutputMinio(BaseModel):
356
378
  r"""Buffer size used to write to a file"""
357
379
 
358
380
  on_backpressure: Annotated[
359
- Optional[OutputMinioBackpressureBehavior],
381
+ Annotated[
382
+ Optional[OutputMinioBackpressureBehavior],
383
+ PlainValidator(validate_open_enum(False)),
384
+ ],
360
385
  pydantic.Field(alias="onBackpressure"),
361
386
  ] = OutputMinioBackpressureBehavior.BLOCK
362
387
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -367,7 +392,10 @@ class OutputMinio(BaseModel):
367
392
  r"""If a file fails to move to its final destination after the maximum number of retries, move it to a designated directory to prevent further errors"""
368
393
 
369
394
  on_disk_full_backpressure: Annotated[
370
- Optional[OutputMinioDiskSpaceProtection],
395
+ Annotated[
396
+ Optional[OutputMinioDiskSpaceProtection],
397
+ PlainValidator(validate_open_enum(False)),
398
+ ],
371
399
  pydantic.Field(alias="onDiskFullBackpressure"),
372
400
  ] = OutputMinioDiskSpaceProtection.BLOCK
373
401
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
@@ -395,11 +423,17 @@ class OutputMinio(BaseModel):
395
423
  aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
396
424
  r"""Select or create a stored secret that references your access key and secret key"""
397
425
 
398
- compress: Optional[OutputMinioCompression] = OutputMinioCompression.GZIP
426
+ compress: Annotated[
427
+ Optional[OutputMinioCompression], PlainValidator(validate_open_enum(False))
428
+ ] = OutputMinioCompression.GZIP
399
429
  r"""Data compression format to apply to HTTP content before it is delivered"""
400
430
 
401
431
  compression_level: Annotated[
402
- Optional[OutputMinioCompressionLevel], pydantic.Field(alias="compressionLevel")
432
+ Annotated[
433
+ Optional[OutputMinioCompressionLevel],
434
+ PlainValidator(validate_open_enum(False)),
435
+ ],
436
+ pydantic.Field(alias="compressionLevel"),
403
437
  ] = OutputMinioCompressionLevel.BEST_SPEED
404
438
  r"""Compression level to apply before moving files to final destination"""
405
439
 
@@ -409,12 +443,19 @@ class OutputMinio(BaseModel):
409
443
  r"""Automatically calculate the schema based on the events of each Parquet file generated"""
410
444
 
411
445
  parquet_version: Annotated[
412
- Optional[OutputMinioParquetVersion], pydantic.Field(alias="parquetVersion")
446
+ Annotated[
447
+ Optional[OutputMinioParquetVersion],
448
+ PlainValidator(validate_open_enum(False)),
449
+ ],
450
+ pydantic.Field(alias="parquetVersion"),
413
451
  ] = OutputMinioParquetVersion.PARQUET_2_6
414
452
  r"""Determines which data types are supported and how they are represented"""
415
453
 
416
454
  parquet_data_page_version: Annotated[
417
- Optional[OutputMinioDataPageVersion],
455
+ Annotated[
456
+ Optional[OutputMinioDataPageVersion],
457
+ PlainValidator(validate_open_enum(False)),
458
+ ],
418
459
  pydantic.Field(alias="parquetDataPageVersion"),
419
460
  ] = OutputMinioDataPageVersion.DATA_PAGE_V2
420
461
  r"""Serialization format of data pages. Note that some reader implementations use Data page V2's attributes to work more efficiently, while others ignore it."""