cribl-control-plane 0.0.44a1__py3-none-any.whl → 0.0.44a2__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 (174) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +1 -1
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +5 -3
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +11 -1
  6. cribl_control_plane/commits.py +5 -3
  7. cribl_control_plane/destinations.py +6 -4
  8. cribl_control_plane/errors/__init__.py +15 -3
  9. cribl_control_plane/errors/healthstatus_error.py +8 -2
  10. cribl_control_plane/groups_configs.py +8 -3
  11. cribl_control_plane/groups_sdk.py +6 -4
  12. cribl_control_plane/models/__init__.py +17 -4
  13. cribl_control_plane/models/appmode.py +2 -1
  14. cribl_control_plane/models/cacheconnection.py +10 -2
  15. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  16. cribl_control_plane/models/cloudprovider.py +2 -1
  17. cribl_control_plane/models/configgroup.py +7 -2
  18. cribl_control_plane/models/configgroupcloud.py +6 -2
  19. cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
  20. cribl_control_plane/models/cribllakedataset.py +8 -2
  21. cribl_control_plane/models/datasetmetadata.py +8 -2
  22. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
  23. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
  24. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
  25. cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
  26. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
  27. cribl_control_plane/models/getsummaryop.py +7 -2
  28. cribl_control_plane/models/hbcriblinfo.py +6 -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 +27 -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/lakehouseconnectiontype.py +2 -1
  90. cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
  91. cribl_control_plane/models/masterworkerentry.py +7 -2
  92. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  93. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  94. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  95. cribl_control_plane/models/nodeupgradestate.py +2 -1
  96. cribl_control_plane/models/nodeupgradestatus.py +13 -5
  97. cribl_control_plane/models/outputazureblob.py +48 -18
  98. cribl_control_plane/models/outputazuredataexplorer.py +74 -29
  99. cribl_control_plane/models/outputazureeventhub.py +40 -18
  100. cribl_control_plane/models/outputazurelogs.py +36 -13
  101. cribl_control_plane/models/outputclickhouse.py +56 -21
  102. cribl_control_plane/models/outputcloudwatch.py +29 -10
  103. cribl_control_plane/models/outputconfluentcloud.py +77 -32
  104. cribl_control_plane/models/outputcriblhttp.py +46 -18
  105. cribl_control_plane/models/outputcribllake.py +46 -16
  106. cribl_control_plane/models/outputcribltcp.py +45 -18
  107. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -15
  108. cribl_control_plane/models/outputdatadog.py +48 -20
  109. cribl_control_plane/models/outputdataset.py +46 -18
  110. cribl_control_plane/models/outputdiskspool.py +7 -2
  111. cribl_control_plane/models/outputdls3.py +68 -24
  112. cribl_control_plane/models/outputdynatracehttp.py +54 -21
  113. cribl_control_plane/models/outputdynatraceotlp.py +56 -23
  114. cribl_control_plane/models/outputelastic.py +44 -19
  115. cribl_control_plane/models/outputelasticcloud.py +37 -13
  116. cribl_control_plane/models/outputexabeam.py +29 -10
  117. cribl_control_plane/models/outputfilesystem.py +39 -14
  118. cribl_control_plane/models/outputgooglechronicle.py +50 -16
  119. cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
  120. cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
  121. cribl_control_plane/models/outputgooglepubsub.py +31 -10
  122. cribl_control_plane/models/outputgrafanacloud.py +99 -34
  123. cribl_control_plane/models/outputgraphite.py +31 -14
  124. cribl_control_plane/models/outputhoneycomb.py +36 -13
  125. cribl_control_plane/models/outputhumiohec.py +44 -17
  126. cribl_control_plane/models/outputinfluxdb.py +43 -17
  127. cribl_control_plane/models/outputkafka.py +74 -28
  128. cribl_control_plane/models/outputkinesis.py +40 -16
  129. cribl_control_plane/models/outputloki.py +41 -16
  130. cribl_control_plane/models/outputminio.py +65 -24
  131. cribl_control_plane/models/outputmsk.py +82 -30
  132. cribl_control_plane/models/outputnewrelic.py +43 -18
  133. cribl_control_plane/models/outputnewrelicevents.py +42 -15
  134. cribl_control_plane/models/outputopentelemetry.py +68 -27
  135. cribl_control_plane/models/outputprometheus.py +36 -13
  136. cribl_control_plane/models/outputring.py +19 -8
  137. cribl_control_plane/models/outputs3.py +68 -26
  138. cribl_control_plane/models/outputsecuritylake.py +52 -18
  139. cribl_control_plane/models/outputsentinel.py +45 -18
  140. cribl_control_plane/models/outputsentineloneaisiem.py +51 -19
  141. cribl_control_plane/models/outputservicenow.py +61 -25
  142. cribl_control_plane/models/outputsignalfx.py +38 -15
  143. cribl_control_plane/models/outputsns.py +36 -14
  144. cribl_control_plane/models/outputsplunk.py +60 -24
  145. cribl_control_plane/models/outputsplunkhec.py +36 -13
  146. cribl_control_plane/models/outputsplunklb.py +77 -30
  147. cribl_control_plane/models/outputsqs.py +41 -16
  148. cribl_control_plane/models/outputstatsd.py +30 -14
  149. cribl_control_plane/models/outputstatsdext.py +29 -12
  150. cribl_control_plane/models/outputsumologic.py +35 -12
  151. cribl_control_plane/models/outputsyslog.py +58 -24
  152. cribl_control_plane/models/outputtcpjson.py +52 -20
  153. cribl_control_plane/models/outputwavefront.py +36 -13
  154. cribl_control_plane/models/outputwebhook.py +58 -22
  155. cribl_control_plane/models/outputxsiam.py +36 -15
  156. cribl_control_plane/models/productscore.py +2 -1
  157. cribl_control_plane/models/rbacresource.py +2 -1
  158. cribl_control_plane/models/resourcepolicy.py +4 -2
  159. cribl_control_plane/models/runnablejobcollection.py +30 -13
  160. cribl_control_plane/models/runnablejobexecutor.py +13 -4
  161. cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
  162. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
  163. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
  164. cribl_control_plane/models/workertypes.py +2 -1
  165. cribl_control_plane/nodes.py +5 -3
  166. cribl_control_plane/sdk.py +15 -2
  167. cribl_control_plane/sources.py +5 -3
  168. cribl_control_plane/utils/__init__.py +15 -3
  169. cribl_control_plane/utils/eventstreaming.py +10 -0
  170. cribl_control_plane/versions.py +11 -6
  171. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.44a2.dist-info}/METADATA +1 -1
  172. cribl_control_plane-0.0.44a2.dist-info/RECORD +325 -0
  173. cribl_control_plane-0.0.44a1.dist-info/RECORD +0 -325
  174. {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.44a2.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,19 +15,19 @@ class OutputDynatraceOtlpType(str, Enum):
12
15
  DYNATRACE_OTLP = "dynatrace_otlp"
13
16
 
14
17
 
15
- class OutputDynatraceOtlpProtocol(str, Enum):
18
+ class OutputDynatraceOtlpProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Select a transport option for Dynatrace"""
17
20
 
18
21
  HTTP = "http"
19
22
 
20
23
 
21
- class OutputDynatraceOTLPOTLPVersion(str, Enum):
24
+ class OutputDynatraceOTLPOTLPVersion(str, Enum, metaclass=utils.OpenEnumMeta):
22
25
  r"""The version of OTLP Protobuf definitions to use when structuring data to send"""
23
26
 
24
27
  ONE_DOT_3_DOT_1 = "1.3.1"
25
28
 
26
29
 
27
- class OutputDynatraceOtlpCompressCompression(str, Enum):
30
+ class OutputDynatraceOtlpCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
28
31
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
29
32
 
30
33
  NONE = "none"
@@ -32,7 +35,9 @@ class OutputDynatraceOtlpCompressCompression(str, Enum):
32
35
  GZIP = "gzip"
33
36
 
34
37
 
35
- class OutputDynatraceOtlpHTTPCompressCompression(str, Enum):
38
+ class OutputDynatraceOtlpHTTPCompressCompression(
39
+ str, Enum, metaclass=utils.OpenEnumMeta
40
+ ):
36
41
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
37
42
 
38
43
  NONE = "none"
@@ -50,7 +55,9 @@ class OutputDynatraceOtlpMetadatum(BaseModel):
50
55
  key: Optional[str] = ""
51
56
 
52
57
 
53
- class OutputDynatraceOtlpFailedRequestLoggingMode(str, Enum):
58
+ class OutputDynatraceOtlpFailedRequestLoggingMode(
59
+ str, Enum, metaclass=utils.OpenEnumMeta
60
+ ):
54
61
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
55
62
 
56
63
  PAYLOAD = "payload"
@@ -58,14 +65,14 @@ class OutputDynatraceOtlpFailedRequestLoggingMode(str, Enum):
58
65
  NONE = "none"
59
66
 
60
67
 
61
- class EndpointType(str, Enum):
68
+ class EndpointType(str, Enum, metaclass=utils.OpenEnumMeta):
62
69
  r"""Select the type of Dynatrace endpoint configured"""
63
70
 
64
71
  SAAS = "saas"
65
72
  AG = "ag"
66
73
 
67
74
 
68
- class OutputDynatraceOtlpBackpressureBehavior(str, Enum):
75
+ class OutputDynatraceOtlpBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
69
76
  r"""How to handle events when all receivers are exerting backpressure"""
70
77
 
71
78
  BLOCK = "block"
@@ -138,21 +145,21 @@ class OutputDynatraceOtlpTimeoutRetrySettings(BaseModel):
138
145
  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)."""
139
146
 
140
147
 
141
- class OutputDynatraceOtlpPqCompressCompression(str, Enum):
148
+ class OutputDynatraceOtlpPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
142
149
  r"""Codec to use to compress the persisted data"""
143
150
 
144
151
  NONE = "none"
145
152
  GZIP = "gzip"
146
153
 
147
154
 
148
- class OutputDynatraceOtlpQueueFullBehavior(str, Enum):
155
+ class OutputDynatraceOtlpQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
149
156
  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."""
150
157
 
151
158
  BLOCK = "block"
152
159
  DROP = "drop"
153
160
 
154
161
 
155
- class OutputDynatraceOtlpMode(str, Enum):
162
+ class OutputDynatraceOtlpMode(str, Enum, metaclass=utils.OpenEnumMeta):
156
163
  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."""
157
164
 
158
165
  ERROR = "error"
@@ -282,7 +289,9 @@ class OutputDynatraceOtlp(BaseModel):
282
289
  streamtags: Optional[List[str]] = None
283
290
  r"""Tags for filtering and grouping in @{product}"""
284
291
 
285
- protocol: Optional[OutputDynatraceOtlpProtocol] = OutputDynatraceOtlpProtocol.HTTP
292
+ protocol: Annotated[
293
+ Optional[OutputDynatraceOtlpProtocol], PlainValidator(validate_open_enum(False))
294
+ ] = OutputDynatraceOtlpProtocol.HTTP
286
295
  r"""Select a transport option for Dynatrace"""
287
296
 
288
297
  endpoint: Optional[str] = (
@@ -291,17 +300,25 @@ class OutputDynatraceOtlp(BaseModel):
291
300
  r"""The endpoint where Dynatrace events will be sent. Enter any valid URL or an IP address (IPv4 or IPv6; enclose IPv6 addresses in square brackets)"""
292
301
 
293
302
  otlp_version: Annotated[
294
- Optional[OutputDynatraceOTLPOTLPVersion], pydantic.Field(alias="otlpVersion")
303
+ Annotated[
304
+ Optional[OutputDynatraceOTLPOTLPVersion],
305
+ PlainValidator(validate_open_enum(False)),
306
+ ],
307
+ pydantic.Field(alias="otlpVersion"),
295
308
  ] = OutputDynatraceOTLPOTLPVersion.ONE_DOT_3_DOT_1
296
309
  r"""The version of OTLP Protobuf definitions to use when structuring data to send"""
297
310
 
298
- compress: Optional[OutputDynatraceOtlpCompressCompression] = (
299
- OutputDynatraceOtlpCompressCompression.GZIP
300
- )
311
+ compress: Annotated[
312
+ Optional[OutputDynatraceOtlpCompressCompression],
313
+ PlainValidator(validate_open_enum(False)),
314
+ ] = OutputDynatraceOtlpCompressCompression.GZIP
301
315
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
302
316
 
303
317
  http_compress: Annotated[
304
- Optional[OutputDynatraceOtlpHTTPCompressCompression],
318
+ Annotated[
319
+ Optional[OutputDynatraceOtlpHTTPCompressCompression],
320
+ PlainValidator(validate_open_enum(False)),
321
+ ],
305
322
  pydantic.Field(alias="httpCompress"),
306
323
  ] = OutputDynatraceOtlpHTTPCompressCompression.GZIP
307
324
  r"""Type of compression to apply to messages sent to the OpenTelemetry endpoint"""
@@ -341,7 +358,10 @@ class OutputDynatraceOtlp(BaseModel):
341
358
  r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Body size limit."""
342
359
 
343
360
  failed_request_logging_mode: Annotated[
344
- Optional[OutputDynatraceOtlpFailedRequestLoggingMode],
361
+ Annotated[
362
+ Optional[OutputDynatraceOtlpFailedRequestLoggingMode],
363
+ PlainValidator(validate_open_enum(False)),
364
+ ],
345
365
  pydantic.Field(alias="failedRequestLoggingMode"),
346
366
  ] = OutputDynatraceOtlpFailedRequestLoggingMode.NONE
347
367
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -360,7 +380,8 @@ class OutputDynatraceOtlp(BaseModel):
360
380
  r"""Disable to close the connection immediately after sending the outgoing request"""
361
381
 
362
382
  endpoint_type: Annotated[
363
- Optional[EndpointType], pydantic.Field(alias="endpointType")
383
+ Annotated[Optional[EndpointType], PlainValidator(validate_open_enum(False))],
384
+ pydantic.Field(alias="endpointType"),
364
385
  ] = EndpointType.SAAS
365
386
  r"""Select the type of Dynatrace endpoint configured"""
366
387
 
@@ -369,7 +390,10 @@ class OutputDynatraceOtlp(BaseModel):
369
390
  )
370
391
 
371
392
  on_backpressure: Annotated[
372
- Optional[OutputDynatraceOtlpBackpressureBehavior],
393
+ Annotated[
394
+ Optional[OutputDynatraceOtlpBackpressureBehavior],
395
+ PlainValidator(validate_open_enum(False)),
396
+ ],
373
397
  pydantic.Field(alias="onBackpressure"),
374
398
  ] = OutputDynatraceOtlpBackpressureBehavior.BLOCK
375
399
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -413,7 +437,7 @@ class OutputDynatraceOtlp(BaseModel):
413
437
 
414
438
  response_honor_retry_after_header: Annotated[
415
439
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
416
- ] = False
440
+ ] = True
417
441
  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."""
418
442
 
419
443
  pq_max_file_size: Annotated[
@@ -430,19 +454,28 @@ class OutputDynatraceOtlp(BaseModel):
430
454
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
431
455
 
432
456
  pq_compress: Annotated[
433
- Optional[OutputDynatraceOtlpPqCompressCompression],
457
+ Annotated[
458
+ Optional[OutputDynatraceOtlpPqCompressCompression],
459
+ PlainValidator(validate_open_enum(False)),
460
+ ],
434
461
  pydantic.Field(alias="pqCompress"),
435
462
  ] = OutputDynatraceOtlpPqCompressCompression.NONE
436
463
  r"""Codec to use to compress the persisted data"""
437
464
 
438
465
  pq_on_backpressure: Annotated[
439
- Optional[OutputDynatraceOtlpQueueFullBehavior],
466
+ Annotated[
467
+ Optional[OutputDynatraceOtlpQueueFullBehavior],
468
+ PlainValidator(validate_open_enum(False)),
469
+ ],
440
470
  pydantic.Field(alias="pqOnBackpressure"),
441
471
  ] = OutputDynatraceOtlpQueueFullBehavior.BLOCK
442
472
  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."""
443
473
 
444
474
  pq_mode: Annotated[
445
- Optional[OutputDynatraceOtlpMode], pydantic.Field(alias="pqMode")
475
+ Annotated[
476
+ Optional[OutputDynatraceOtlpMode], PlainValidator(validate_open_enum(False))
477
+ ],
478
+ pydantic.Field(alias="pqMode"),
446
479
  ] = OutputDynatraceOtlpMode.ERROR
447
480
  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."""
448
481
 
@@ -1,9 +1,12 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic.functional_validators import PlainValidator
7
10
  from typing import List, Optional
8
11
  from typing_extensions import Annotated, NotRequired, TypedDict
9
12
 
@@ -23,7 +26,7 @@ class OutputElasticExtraHTTPHeader(BaseModel):
23
26
  name: Optional[str] = None
24
27
 
25
28
 
26
- class OutputElasticFailedRequestLoggingMode(str, Enum):
29
+ class OutputElasticFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
30
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
28
31
 
29
32
  PAYLOAD = "payload"
@@ -96,7 +99,7 @@ class OutputElasticExtraParam(BaseModel):
96
99
  value: str
97
100
 
98
101
 
99
- class OutputElasticAuthenticationMethod(str, Enum):
102
+ class OutputElasticAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
100
103
  r"""Enter credentials directly, or select a stored secret"""
101
104
 
102
105
  MANUAL = "manual"
@@ -115,12 +118,16 @@ class OutputElasticAuth(BaseModel):
115
118
  disabled: Optional[bool] = True
116
119
 
117
120
  auth_type: Annotated[
118
- Optional[OutputElasticAuthenticationMethod], pydantic.Field(alias="authType")
121
+ Annotated[
122
+ Optional[OutputElasticAuthenticationMethod],
123
+ PlainValidator(validate_open_enum(False)),
124
+ ],
125
+ pydantic.Field(alias="authType"),
119
126
  ] = OutputElasticAuthenticationMethod.MANUAL
120
127
  r"""Enter credentials directly, or select a stored secret"""
121
128
 
122
129
 
123
- class ElasticVersion(str, Enum):
130
+ class ElasticVersion(str, Enum, metaclass=utils.OpenEnumMeta):
124
131
  r"""Optional Elasticsearch version, used to format events. If not specified, will auto-discover version."""
125
132
 
126
133
  AUTO = "auto"
@@ -128,14 +135,14 @@ class ElasticVersion(str, Enum):
128
135
  SEVEN = "7"
129
136
 
130
137
 
131
- class WriteAction(str, Enum):
138
+ class WriteAction(str, Enum, metaclass=utils.OpenEnumMeta):
132
139
  r"""Action to use when writing events. Must be set to `Create` when writing to a data stream."""
133
140
 
134
141
  INDEX = "index"
135
142
  CREATE = "create"
136
143
 
137
144
 
138
- class OutputElasticBackpressureBehavior(str, Enum):
145
+ class OutputElasticBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
139
146
  r"""How to handle events when all receivers are exerting backpressure"""
140
147
 
141
148
  BLOCK = "block"
@@ -158,21 +165,21 @@ class OutputElasticURL(BaseModel):
158
165
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
159
166
 
160
167
 
161
- class OutputElasticCompression(str, Enum):
168
+ class OutputElasticCompression(str, Enum, metaclass=utils.OpenEnumMeta):
162
169
  r"""Codec to use to compress the persisted data"""
163
170
 
164
171
  NONE = "none"
165
172
  GZIP = "gzip"
166
173
 
167
174
 
168
- class OutputElasticQueueFullBehavior(str, Enum):
175
+ class OutputElasticQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
169
176
  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."""
170
177
 
171
178
  BLOCK = "block"
172
179
  DROP = "drop"
173
180
 
174
181
 
175
- class OutputElasticMode(str, Enum):
182
+ class OutputElasticMode(str, Enum, metaclass=utils.OpenEnumMeta):
176
183
  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."""
177
184
 
178
185
  ERROR = "error"
@@ -347,7 +354,10 @@ class OutputElastic(BaseModel):
347
354
  r"""Headers to add to all events"""
348
355
 
349
356
  failed_request_logging_mode: Annotated[
350
- Optional[OutputElasticFailedRequestLoggingMode],
357
+ Annotated[
358
+ Optional[OutputElasticFailedRequestLoggingMode],
359
+ PlainValidator(validate_open_enum(False)),
360
+ ],
351
361
  pydantic.Field(alias="failedRequestLoggingMode"),
352
362
  ] = OutputElasticFailedRequestLoggingMode.NONE
353
363
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -370,7 +380,7 @@ class OutputElastic(BaseModel):
370
380
 
371
381
  response_honor_retry_after_header: Annotated[
372
382
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
373
- ] = False
383
+ ] = True
374
384
  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."""
375
385
 
376
386
  extra_params: Annotated[
@@ -380,7 +390,8 @@ class OutputElastic(BaseModel):
380
390
  auth: Optional[OutputElasticAuth] = None
381
391
 
382
392
  elastic_version: Annotated[
383
- Optional[ElasticVersion], pydantic.Field(alias="elasticVersion")
393
+ Annotated[Optional[ElasticVersion], PlainValidator(validate_open_enum(False))],
394
+ pydantic.Field(alias="elasticVersion"),
384
395
  ] = ElasticVersion.AUTO
385
396
  r"""Optional Elasticsearch version, used to format events. If not specified, will auto-discover version."""
386
397
 
@@ -395,7 +406,8 @@ class OutputElastic(BaseModel):
395
406
  r"""Include the `document_id` field when sending events to an Elastic TSDS (time series data stream)"""
396
407
 
397
408
  write_action: Annotated[
398
- Optional[WriteAction], pydantic.Field(alias="writeAction")
409
+ Annotated[Optional[WriteAction], PlainValidator(validate_open_enum(False))],
410
+ pydantic.Field(alias="writeAction"),
399
411
  ] = WriteAction.CREATE
400
412
  r"""Action to use when writing events. Must be set to `Create` when writing to a data stream."""
401
413
 
@@ -405,7 +417,10 @@ class OutputElastic(BaseModel):
405
417
  r"""Retry failed events when a bulk request to Elastic is successful, but the response body returns an error for one or more events in the batch"""
406
418
 
407
419
  on_backpressure: Annotated[
408
- Optional[OutputElasticBackpressureBehavior],
420
+ Annotated[
421
+ Optional[OutputElasticBackpressureBehavior],
422
+ PlainValidator(validate_open_enum(False)),
423
+ ],
409
424
  pydantic.Field(alias="onBackpressure"),
410
425
  ] = OutputElasticBackpressureBehavior.BLOCK
411
426
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -449,19 +464,29 @@ class OutputElastic(BaseModel):
449
464
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
450
465
 
451
466
  pq_compress: Annotated[
452
- Optional[OutputElasticCompression], pydantic.Field(alias="pqCompress")
467
+ Annotated[
468
+ Optional[OutputElasticCompression],
469
+ PlainValidator(validate_open_enum(False)),
470
+ ],
471
+ pydantic.Field(alias="pqCompress"),
453
472
  ] = OutputElasticCompression.NONE
454
473
  r"""Codec to use to compress the persisted data"""
455
474
 
456
475
  pq_on_backpressure: Annotated[
457
- Optional[OutputElasticQueueFullBehavior],
476
+ Annotated[
477
+ Optional[OutputElasticQueueFullBehavior],
478
+ PlainValidator(validate_open_enum(False)),
479
+ ],
458
480
  pydantic.Field(alias="pqOnBackpressure"),
459
481
  ] = OutputElasticQueueFullBehavior.BLOCK
460
482
  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."""
461
483
 
462
- pq_mode: Annotated[Optional[OutputElasticMode], pydantic.Field(alias="pqMode")] = (
463
- OutputElasticMode.ERROR
464
- )
484
+ pq_mode: Annotated[
485
+ Annotated[
486
+ Optional[OutputElasticMode], PlainValidator(validate_open_enum(False))
487
+ ],
488
+ pydantic.Field(alias="pqMode"),
489
+ ] = OutputElasticMode.ERROR
465
490
  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."""
466
491
 
467
492
  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 OutputElasticCloudExtraHTTPHeader(BaseModel):
23
26
  name: Optional[str] = None
24
27
 
25
28
 
26
- class OutputElasticCloudFailedRequestLoggingMode(str, Enum):
29
+ class OutputElasticCloudFailedRequestLoggingMode(
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"
@@ -42,7 +47,7 @@ class OutputElasticCloudExtraParam(BaseModel):
42
47
  value: str
43
48
 
44
49
 
45
- class OutputElasticCloudAuthenticationMethod(str, Enum):
50
+ class OutputElasticCloudAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
46
51
  r"""Enter credentials directly, or select a stored secret"""
47
52
 
48
53
  MANUAL = "manual"
@@ -61,7 +66,10 @@ class OutputElasticCloudAuth(BaseModel):
61
66
  disabled: Optional[bool] = False
62
67
 
63
68
  auth_type: Annotated[
64
- Optional[OutputElasticCloudAuthenticationMethod],
69
+ Annotated[
70
+ Optional[OutputElasticCloudAuthenticationMethod],
71
+ PlainValidator(validate_open_enum(False)),
72
+ ],
65
73
  pydantic.Field(alias="authType"),
66
74
  ] = OutputElasticCloudAuthenticationMethod.MANUAL
67
75
  r"""Enter credentials directly, or select a stored secret"""
@@ -121,7 +129,7 @@ class OutputElasticCloudTimeoutRetrySettings(BaseModel):
121
129
  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)."""
122
130
 
123
131
 
124
- class OutputElasticCloudBackpressureBehavior(str, Enum):
132
+ class OutputElasticCloudBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
125
133
  r"""How to handle events when all receivers are exerting backpressure"""
126
134
 
127
135
  BLOCK = "block"
@@ -129,21 +137,21 @@ class OutputElasticCloudBackpressureBehavior(str, Enum):
129
137
  QUEUE = "queue"
130
138
 
131
139
 
132
- class OutputElasticCloudCompression(str, Enum):
140
+ class OutputElasticCloudCompression(str, Enum, metaclass=utils.OpenEnumMeta):
133
141
  r"""Codec to use to compress the persisted data"""
134
142
 
135
143
  NONE = "none"
136
144
  GZIP = "gzip"
137
145
 
138
146
 
139
- class OutputElasticCloudQueueFullBehavior(str, Enum):
147
+ class OutputElasticCloudQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
140
148
  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."""
141
149
 
142
150
  BLOCK = "block"
143
151
  DROP = "drop"
144
152
 
145
153
 
146
- class OutputElasticCloudMode(str, Enum):
154
+ class OutputElasticCloudMode(str, Enum, metaclass=utils.OpenEnumMeta):
147
155
  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."""
148
156
 
149
157
  ERROR = "error"
@@ -295,7 +303,10 @@ class OutputElasticCloud(BaseModel):
295
303
  r"""Headers to add to all events"""
296
304
 
297
305
  failed_request_logging_mode: Annotated[
298
- Optional[OutputElasticCloudFailedRequestLoggingMode],
306
+ Annotated[
307
+ Optional[OutputElasticCloudFailedRequestLoggingMode],
308
+ PlainValidator(validate_open_enum(False)),
309
+ ],
299
310
  pydantic.Field(alias="failedRequestLoggingMode"),
300
311
  ] = OutputElasticCloudFailedRequestLoggingMode.NONE
301
312
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -336,11 +347,14 @@ class OutputElasticCloud(BaseModel):
336
347
 
337
348
  response_honor_retry_after_header: Annotated[
338
349
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
339
- ] = False
350
+ ] = True
340
351
  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."""
341
352
 
342
353
  on_backpressure: Annotated[
343
- Optional[OutputElasticCloudBackpressureBehavior],
354
+ Annotated[
355
+ Optional[OutputElasticCloudBackpressureBehavior],
356
+ PlainValidator(validate_open_enum(False)),
357
+ ],
344
358
  pydantic.Field(alias="onBackpressure"),
345
359
  ] = OutputElasticCloudBackpressureBehavior.BLOCK
346
360
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -361,18 +375,28 @@ class OutputElasticCloud(BaseModel):
361
375
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
362
376
 
363
377
  pq_compress: Annotated[
364
- Optional[OutputElasticCloudCompression], pydantic.Field(alias="pqCompress")
378
+ Annotated[
379
+ Optional[OutputElasticCloudCompression],
380
+ PlainValidator(validate_open_enum(False)),
381
+ ],
382
+ pydantic.Field(alias="pqCompress"),
365
383
  ] = OutputElasticCloudCompression.NONE
366
384
  r"""Codec to use to compress the persisted data"""
367
385
 
368
386
  pq_on_backpressure: Annotated[
369
- Optional[OutputElasticCloudQueueFullBehavior],
387
+ Annotated[
388
+ Optional[OutputElasticCloudQueueFullBehavior],
389
+ PlainValidator(validate_open_enum(False)),
390
+ ],
370
391
  pydantic.Field(alias="pqOnBackpressure"),
371
392
  ] = OutputElasticCloudQueueFullBehavior.BLOCK
372
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."""
373
394
 
374
395
  pq_mode: Annotated[
375
- Optional[OutputElasticCloudMode], pydantic.Field(alias="pqMode")
396
+ Annotated[
397
+ Optional[OutputElasticCloudMode], PlainValidator(validate_open_enum(False))
398
+ ],
399
+ pydantic.Field(alias="pqMode"),
376
400
  ] = OutputElasticCloudMode.ERROR
377
401
  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."""
378
402
 
@@ -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 OutputExabeamType(str, Enum):
12
15
  EXABEAM = "exabeam"
13
16
 
14
17
 
15
- class OutputExabeamSignatureVersion(str, Enum):
18
+ class OutputExabeamSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
19
  r"""Signature version to use for signing Google Cloud Storage requests"""
17
20
 
18
21
  V2 = "v2"
19
22
  V4 = "v4"
20
23
 
21
24
 
22
- class OutputExabeamObjectACL(str, Enum):
25
+ class OutputExabeamObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
23
26
  r"""Object ACL to assign to uploaded objects"""
24
27
 
25
28
  PRIVATE = "private"
@@ -30,7 +33,7 @@ class OutputExabeamObjectACL(str, Enum):
30
33
  PUBLIC_READ = "public-read"
31
34
 
32
35
 
33
- class OutputExabeamStorageClass(str, Enum):
36
+ class OutputExabeamStorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
34
37
  r"""Storage class to select for uploaded objects"""
35
38
 
36
39
  STANDARD = "STANDARD"
@@ -39,14 +42,14 @@ class OutputExabeamStorageClass(str, Enum):
39
42
  ARCHIVE = "ARCHIVE"
40
43
 
41
44
 
42
- class OutputExabeamBackpressureBehavior(str, Enum):
45
+ class OutputExabeamBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
43
46
  r"""How to handle events when all receivers are exerting backpressure"""
44
47
 
45
48
  BLOCK = "block"
46
49
  DROP = "drop"
47
50
 
48
51
 
49
- class OutputExabeamDiskSpaceProtection(str, Enum):
52
+ class OutputExabeamDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
50
53
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
51
54
 
52
55
  BLOCK = "block"
@@ -165,18 +168,28 @@ class OutputExabeam(BaseModel):
165
168
  r"""Google Cloud Storage service endpoint"""
166
169
 
167
170
  signature_version: Annotated[
168
- Optional[OutputExabeamSignatureVersion],
171
+ Annotated[
172
+ Optional[OutputExabeamSignatureVersion],
173
+ PlainValidator(validate_open_enum(False)),
174
+ ],
169
175
  pydantic.Field(alias="signatureVersion"),
170
176
  ] = OutputExabeamSignatureVersion.V4
171
177
  r"""Signature version to use for signing Google Cloud Storage requests"""
172
178
 
173
179
  object_acl: Annotated[
174
- Optional[OutputExabeamObjectACL], pydantic.Field(alias="objectACL")
180
+ Annotated[
181
+ Optional[OutputExabeamObjectACL], PlainValidator(validate_open_enum(False))
182
+ ],
183
+ pydantic.Field(alias="objectACL"),
175
184
  ] = OutputExabeamObjectACL.PRIVATE
176
185
  r"""Object ACL to assign to uploaded objects"""
177
186
 
178
187
  storage_class: Annotated[
179
- Optional[OutputExabeamStorageClass], pydantic.Field(alias="storageClass")
188
+ Annotated[
189
+ Optional[OutputExabeamStorageClass],
190
+ PlainValidator(validate_open_enum(False)),
191
+ ],
192
+ pydantic.Field(alias="storageClass"),
180
193
  ] = None
181
194
  r"""Storage class to select for uploaded objects"""
182
195
 
@@ -216,7 +229,10 @@ class OutputExabeam(BaseModel):
216
229
  r"""Maximum number of files to keep open concurrently. When exceeded, @{product} will close the oldest open files and move them to the final output location."""
217
230
 
218
231
  on_backpressure: Annotated[
219
- Optional[OutputExabeamBackpressureBehavior],
232
+ Annotated[
233
+ Optional[OutputExabeamBackpressureBehavior],
234
+ PlainValidator(validate_open_enum(False)),
235
+ ],
220
236
  pydantic.Field(alias="onBackpressure"),
221
237
  ] = OutputExabeamBackpressureBehavior.BLOCK
222
238
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -227,7 +243,10 @@ class OutputExabeam(BaseModel):
227
243
  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"""
228
244
 
229
245
  on_disk_full_backpressure: Annotated[
230
- Optional[OutputExabeamDiskSpaceProtection],
246
+ Annotated[
247
+ Optional[OutputExabeamDiskSpaceProtection],
248
+ PlainValidator(validate_open_enum(False)),
249
+ ],
231
250
  pydantic.Field(alias="onDiskFullBackpressure"),
232
251
  ] = OutputExabeamDiskSpaceProtection.BLOCK
233
252
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""