cribl-control-plane 0.0.15__py3-none-any.whl → 0.0.17__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 (144) hide show
  1. cribl_control_plane/_version.py +3 -3
  2. cribl_control_plane/{outputs.py → destinations.py} +69 -71
  3. cribl_control_plane/errors/healthstatus_error.py +2 -8
  4. cribl_control_plane/models/__init__.py +5347 -115
  5. cribl_control_plane/models/createinputop.py +18216 -2
  6. cribl_control_plane/models/createoutputop.py +18417 -4
  7. cribl_control_plane/models/createoutputtestbyidop.py +2 -2
  8. cribl_control_plane/models/deleteoutputbyidop.py +2 -2
  9. cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
  10. cribl_control_plane/models/getoutputbyidop.py +2 -2
  11. cribl_control_plane/models/getoutputpqbyidop.py +2 -2
  12. cribl_control_plane/models/getoutputsamplesbyidop.py +2 -2
  13. cribl_control_plane/models/healthstatus.py +4 -7
  14. cribl_control_plane/models/inputappscope.py +16 -36
  15. cribl_control_plane/models/inputazureblob.py +8 -19
  16. cribl_control_plane/models/inputcollection.py +6 -15
  17. cribl_control_plane/models/inputconfluentcloud.py +22 -45
  18. cribl_control_plane/models/inputcribl.py +6 -13
  19. cribl_control_plane/models/inputcriblhttp.py +12 -27
  20. cribl_control_plane/models/inputcribllakehttp.py +14 -26
  21. cribl_control_plane/models/inputcriblmetrics.py +6 -14
  22. cribl_control_plane/models/inputcribltcp.py +12 -27
  23. cribl_control_plane/models/inputcrowdstrike.py +12 -28
  24. cribl_control_plane/models/inputdatadogagent.py +12 -28
  25. cribl_control_plane/models/inputdatagen.py +6 -13
  26. cribl_control_plane/models/inputedgeprometheus.py +33 -64
  27. cribl_control_plane/models/inputelastic.py +18 -44
  28. cribl_control_plane/models/inputeventhub.py +10 -19
  29. cribl_control_plane/models/inputexec.py +8 -16
  30. cribl_control_plane/models/inputfile.py +8 -17
  31. cribl_control_plane/models/inputfirehose.py +12 -27
  32. cribl_control_plane/models/inputgooglepubsub.py +10 -23
  33. cribl_control_plane/models/inputgrafana_union.py +39 -81
  34. cribl_control_plane/models/inputhttp.py +12 -27
  35. cribl_control_plane/models/inputhttpraw.py +12 -27
  36. cribl_control_plane/models/inputjournalfiles.py +8 -16
  37. cribl_control_plane/models/inputkafka.py +18 -45
  38. cribl_control_plane/models/inputkinesis.py +18 -42
  39. cribl_control_plane/models/inputkubeevents.py +6 -13
  40. cribl_control_plane/models/inputkubelogs.py +10 -18
  41. cribl_control_plane/models/inputkubemetrics.py +10 -18
  42. cribl_control_plane/models/inputloki.py +14 -33
  43. cribl_control_plane/models/inputmetrics.py +10 -25
  44. cribl_control_plane/models/inputmodeldriventelemetry.py +14 -33
  45. cribl_control_plane/models/inputmsk.py +20 -52
  46. cribl_control_plane/models/inputnetflow.py +8 -15
  47. cribl_control_plane/models/inputoffice365mgmt.py +18 -37
  48. cribl_control_plane/models/inputoffice365msgtrace.py +20 -41
  49. cribl_control_plane/models/inputoffice365service.py +20 -41
  50. cribl_control_plane/models/inputopentelemetry.py +20 -42
  51. cribl_control_plane/models/inputprometheus.py +22 -54
  52. cribl_control_plane/models/inputprometheusrw.py +14 -34
  53. cribl_control_plane/models/inputrawudp.py +8 -15
  54. cribl_control_plane/models/inputs3.py +10 -23
  55. cribl_control_plane/models/inputs3inventory.py +12 -28
  56. cribl_control_plane/models/inputsecuritylake.py +12 -29
  57. cribl_control_plane/models/inputsnmp.py +10 -20
  58. cribl_control_plane/models/inputsplunk.py +16 -37
  59. cribl_control_plane/models/inputsplunkhec.py +14 -33
  60. cribl_control_plane/models/inputsplunksearch.py +18 -37
  61. cribl_control_plane/models/inputsqs.py +14 -31
  62. cribl_control_plane/models/inputsyslog_union.py +29 -53
  63. cribl_control_plane/models/inputsystemmetrics.py +26 -50
  64. cribl_control_plane/models/inputsystemstate.py +10 -18
  65. cribl_control_plane/models/inputtcp.py +14 -33
  66. cribl_control_plane/models/inputtcpjson.py +14 -33
  67. cribl_control_plane/models/inputwef.py +22 -45
  68. cribl_control_plane/models/inputwindowsmetrics.py +26 -46
  69. cribl_control_plane/models/inputwineventlogs.py +12 -22
  70. cribl_control_plane/models/inputwiz.py +12 -25
  71. cribl_control_plane/models/inputzscalerhec.py +14 -33
  72. cribl_control_plane/models/listoutputop.py +2 -2
  73. cribl_control_plane/models/output.py +3 -6
  74. cribl_control_plane/models/outputazureblob.py +20 -52
  75. cribl_control_plane/models/outputazuredataexplorer.py +30 -77
  76. cribl_control_plane/models/outputazureeventhub.py +20 -44
  77. cribl_control_plane/models/outputazurelogs.py +14 -37
  78. cribl_control_plane/models/outputclickhouse.py +22 -59
  79. cribl_control_plane/models/outputcloudwatch.py +12 -33
  80. cribl_control_plane/models/outputconfluentcloud.py +32 -75
  81. cribl_control_plane/models/outputcriblhttp.py +18 -46
  82. cribl_control_plane/models/outputcribllake.py +18 -48
  83. cribl_control_plane/models/outputcribltcp.py +20 -47
  84. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +16 -54
  85. cribl_control_plane/models/outputdatadog.py +22 -50
  86. cribl_control_plane/models/outputdataset.py +20 -48
  87. cribl_control_plane/models/outputdefault.py +2 -5
  88. cribl_control_plane/models/outputdevnull.py +2 -5
  89. cribl_control_plane/models/outputdiskspool.py +4 -9
  90. cribl_control_plane/models/outputdls3.py +26 -72
  91. cribl_control_plane/models/outputdynatracehttp.py +22 -57
  92. cribl_control_plane/models/outputdynatraceotlp.py +24 -59
  93. cribl_control_plane/models/outputelastic.py +20 -45
  94. cribl_control_plane/models/outputelasticcloud.py +14 -40
  95. cribl_control_plane/models/outputexabeam.py +12 -33
  96. cribl_control_plane/models/outputfilesystem.py +16 -41
  97. cribl_control_plane/models/outputgooglechronicle.py +18 -54
  98. cribl_control_plane/models/outputgooglecloudlogging.py +16 -46
  99. cribl_control_plane/models/outputgooglecloudstorage.py +26 -71
  100. cribl_control_plane/models/outputgooglepubsub.py +16 -39
  101. cribl_control_plane/models/{outputgrafanacloud_union.py → outputgrafanacloud.py} +49 -110
  102. cribl_control_plane/models/outputgraphite.py +16 -35
  103. cribl_control_plane/models/outputhoneycomb.py +14 -37
  104. cribl_control_plane/models/outputhumiohec.py +18 -47
  105. cribl_control_plane/models/outputinfluxdb.py +18 -44
  106. cribl_control_plane/models/outputkafka.py +28 -73
  107. cribl_control_plane/models/outputkinesis.py +18 -44
  108. cribl_control_plane/models/outputloki.py +18 -43
  109. cribl_control_plane/models/outputminio.py +26 -69
  110. cribl_control_plane/models/outputmsk.py +30 -81
  111. cribl_control_plane/models/outputnetflow.py +2 -5
  112. cribl_control_plane/models/outputnewrelic.py +20 -45
  113. cribl_control_plane/models/outputnewrelicevents.py +16 -45
  114. cribl_control_plane/models/outputopentelemetry.py +28 -69
  115. cribl_control_plane/models/outputprometheus.py +14 -37
  116. cribl_control_plane/models/outputring.py +10 -21
  117. cribl_control_plane/models/outputrouter.py +2 -5
  118. cribl_control_plane/models/outputs3.py +28 -72
  119. cribl_control_plane/models/outputsecuritylake.py +20 -56
  120. cribl_control_plane/models/outputsentinel.py +20 -49
  121. cribl_control_plane/models/outputsentineloneaisiem.py +20 -54
  122. cribl_control_plane/models/outputservicenow.py +26 -64
  123. cribl_control_plane/models/outputsignalfx.py +16 -39
  124. cribl_control_plane/models/outputsnmp.py +2 -5
  125. cribl_control_plane/models/outputsns.py +16 -40
  126. cribl_control_plane/models/outputsplunk.py +26 -64
  127. cribl_control_plane/models/outputsplunkhec.py +14 -37
  128. cribl_control_plane/models/outputsplunklb.py +36 -83
  129. cribl_control_plane/models/outputsqs.py +18 -45
  130. cribl_control_plane/models/outputstatsd.py +16 -34
  131. cribl_control_plane/models/outputstatsdext.py +14 -33
  132. cribl_control_plane/models/outputsumologic.py +14 -37
  133. cribl_control_plane/models/outputsyslog.py +26 -60
  134. cribl_control_plane/models/outputtcpjson.py +22 -54
  135. cribl_control_plane/models/outputwavefront.py +14 -37
  136. cribl_control_plane/models/outputwebhook.py +24 -60
  137. cribl_control_plane/models/outputxsiam.py +16 -37
  138. cribl_control_plane/models/updateoutputbyidop.py +4 -4
  139. cribl_control_plane/sdk.py +3 -5
  140. cribl_control_plane/sources.py +8 -10
  141. {cribl_control_plane-0.0.15.dist-info → cribl_control_plane-0.0.17.dist-info}/METADATA +13 -13
  142. cribl_control_plane-0.0.17.dist-info/RECORD +215 -0
  143. cribl_control_plane-0.0.15.dist-info/RECORD +0 -215
  144. {cribl_control_plane-0.0.15.dist-info → cribl_control_plane-0.0.17.dist-info}/WHEEL +0 -0
@@ -1,17 +1,14 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class OutputPrometheusType(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class OutputPrometheusType(str, Enum):
15
12
  PROMETHEUS = "prometheus"
16
13
 
17
14
 
@@ -26,7 +23,7 @@ class OutputPrometheusExtraHTTPHeader(BaseModel):
26
23
  name: Optional[str] = None
27
24
 
28
25
 
29
- class OutputPrometheusFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
26
+ class OutputPrometheusFailedRequestLoggingMode(str, Enum):
30
27
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
31
28
 
32
29
  PAYLOAD = "payload"
@@ -88,7 +85,7 @@ class OutputPrometheusTimeoutRetrySettings(BaseModel):
88
85
  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)."""
89
86
 
90
87
 
91
- class OutputPrometheusBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
88
+ class OutputPrometheusBackpressureBehavior(str, Enum):
92
89
  r"""How to handle events when all receivers are exerting backpressure"""
93
90
 
94
91
  BLOCK = "block"
@@ -96,7 +93,7 @@ class OutputPrometheusBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMe
96
93
  QUEUE = "queue"
97
94
 
98
95
 
99
- class OutputPrometheusAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
96
+ class OutputPrometheusAuthenticationType(str, Enum):
100
97
  r"""Remote Write authentication type"""
101
98
 
102
99
  NONE = "none"
@@ -107,21 +104,21 @@ class OutputPrometheusAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta
107
104
  OAUTH = "oauth"
108
105
 
109
106
 
110
- class OutputPrometheusCompression(str, Enum, metaclass=utils.OpenEnumMeta):
107
+ class OutputPrometheusCompression(str, Enum):
111
108
  r"""Codec to use to compress the persisted data"""
112
109
 
113
110
  NONE = "none"
114
111
  GZIP = "gzip"
115
112
 
116
113
 
117
- class OutputPrometheusQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
114
+ class OutputPrometheusQueueFullBehavior(str, Enum):
118
115
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
119
116
 
120
117
  BLOCK = "block"
121
118
  DROP = "drop"
122
119
 
123
120
 
124
- class OutputPrometheusMode(str, Enum, metaclass=utils.OpenEnumMeta):
121
+ class OutputPrometheusMode(str, Enum):
125
122
  r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
126
123
 
127
124
  ERROR = "error"
@@ -262,7 +259,7 @@ class OutputPrometheusTypedDict(TypedDict):
262
259
 
263
260
 
264
261
  class OutputPrometheus(BaseModel):
265
- type: Annotated[OutputPrometheusType, PlainValidator(validate_open_enum(False))]
262
+ type: OutputPrometheusType
266
263
 
267
264
  url: str
268
265
  r"""The endpoint to send metrics to"""
@@ -335,10 +332,7 @@ class OutputPrometheus(BaseModel):
335
332
  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."""
336
333
 
337
334
  failed_request_logging_mode: Annotated[
338
- Annotated[
339
- Optional[OutputPrometheusFailedRequestLoggingMode],
340
- PlainValidator(validate_open_enum(False)),
341
- ],
335
+ Optional[OutputPrometheusFailedRequestLoggingMode],
342
336
  pydantic.Field(alias="failedRequestLoggingMode"),
343
337
  ] = OutputPrometheusFailedRequestLoggingMode.NONE
344
338
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -365,20 +359,13 @@ class OutputPrometheus(BaseModel):
365
359
  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."""
366
360
 
367
361
  on_backpressure: Annotated[
368
- Annotated[
369
- Optional[OutputPrometheusBackpressureBehavior],
370
- PlainValidator(validate_open_enum(False)),
371
- ],
362
+ Optional[OutputPrometheusBackpressureBehavior],
372
363
  pydantic.Field(alias="onBackpressure"),
373
364
  ] = OutputPrometheusBackpressureBehavior.BLOCK
374
365
  r"""How to handle events when all receivers are exerting backpressure"""
375
366
 
376
367
  auth_type: Annotated[
377
- Annotated[
378
- Optional[OutputPrometheusAuthenticationType],
379
- PlainValidator(validate_open_enum(False)),
380
- ],
381
- pydantic.Field(alias="authType"),
368
+ Optional[OutputPrometheusAuthenticationType], pydantic.Field(alias="authType")
382
369
  ] = OutputPrometheusAuthenticationType.NONE
383
370
  r"""Remote Write authentication type"""
384
371
 
@@ -403,28 +390,18 @@ class OutputPrometheus(BaseModel):
403
390
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
404
391
 
405
392
  pq_compress: Annotated[
406
- Annotated[
407
- Optional[OutputPrometheusCompression],
408
- PlainValidator(validate_open_enum(False)),
409
- ],
410
- pydantic.Field(alias="pqCompress"),
393
+ Optional[OutputPrometheusCompression], pydantic.Field(alias="pqCompress")
411
394
  ] = OutputPrometheusCompression.NONE
412
395
  r"""Codec to use to compress the persisted data"""
413
396
 
414
397
  pq_on_backpressure: Annotated[
415
- Annotated[
416
- Optional[OutputPrometheusQueueFullBehavior],
417
- PlainValidator(validate_open_enum(False)),
418
- ],
398
+ Optional[OutputPrometheusQueueFullBehavior],
419
399
  pydantic.Field(alias="pqOnBackpressure"),
420
400
  ] = OutputPrometheusQueueFullBehavior.BLOCK
421
401
  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."""
422
402
 
423
403
  pq_mode: Annotated[
424
- Annotated[
425
- Optional[OutputPrometheusMode], PlainValidator(validate_open_enum(False))
426
- ],
427
- pydantic.Field(alias="pqMode"),
404
+ Optional[OutputPrometheusMode], pydantic.Field(alias="pqMode")
428
405
  ] = OutputPrometheusMode.ERROR
429
406
  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."""
430
407
 
@@ -1,33 +1,30 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class OutputRingType(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class OutputRingType(str, Enum):
15
12
  RING = "ring"
16
13
 
17
14
 
18
- class OutputRingDataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ class OutputRingDataFormat(str, Enum):
19
16
  r"""Format of the output data."""
20
17
 
21
18
  JSON = "json"
22
19
  RAW = "raw"
23
20
 
24
21
 
25
- class OutputRingDataCompressionFormat(str, Enum, metaclass=utils.OpenEnumMeta):
22
+ class OutputRingDataCompressionFormat(str, Enum):
26
23
  NONE = "none"
27
24
  GZIP = "gzip"
28
25
 
29
26
 
30
- class OutputRingBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
27
+ class OutputRingBackpressureBehavior(str, Enum):
31
28
  r"""How to handle events when all receivers are exerting backpressure"""
32
29
 
33
30
  BLOCK = "block"
@@ -66,7 +63,7 @@ class OutputRing(BaseModel):
66
63
  id: str
67
64
  r"""Unique ID for this output"""
68
65
 
69
- type: Annotated[OutputRingType, PlainValidator(validate_open_enum(False))]
66
+ type: OutputRingType
70
67
 
71
68
  pipeline: Optional[str] = None
72
69
  r"""Pipeline to process data before sending out to this output"""
@@ -83,10 +80,7 @@ class OutputRing(BaseModel):
83
80
  r"""Tags for filtering and grouping in @{product}"""
84
81
 
85
82
  format_: Annotated[
86
- Annotated[
87
- Optional[OutputRingDataFormat], PlainValidator(validate_open_enum(False))
88
- ],
89
- pydantic.Field(alias="format"),
83
+ Optional[OutputRingDataFormat], pydantic.Field(alias="format")
90
84
  ] = OutputRingDataFormat.JSON
91
85
  r"""Format of the output data."""
92
86
 
@@ -101,20 +95,15 @@ class OutputRing(BaseModel):
101
95
  max_data_time: Annotated[Optional[str], pydantic.Field(alias="maxDataTime")] = "24h"
102
96
  r"""Maximum amount of time to retain data (examples: 2h, 4d). When limit is reached, older data will be deleted."""
103
97
 
104
- compress: Annotated[
105
- Optional[OutputRingDataCompressionFormat],
106
- PlainValidator(validate_open_enum(False)),
107
- ] = OutputRingDataCompressionFormat.GZIP
98
+ compress: Optional[OutputRingDataCompressionFormat] = (
99
+ OutputRingDataCompressionFormat.GZIP
100
+ )
108
101
 
109
102
  dest_path: Annotated[Optional[str], pydantic.Field(alias="destPath")] = None
110
103
  r"""Path to use to write metrics. Defaults to $CRIBL_HOME/state/<id>"""
111
104
 
112
105
  on_backpressure: Annotated[
113
- Annotated[
114
- Optional[OutputRingBackpressureBehavior],
115
- PlainValidator(validate_open_enum(False)),
116
- ],
117
- pydantic.Field(alias="onBackpressure"),
106
+ Optional[OutputRingBackpressureBehavior], pydantic.Field(alias="onBackpressure")
118
107
  ] = OutputRingBackpressureBehavior.BLOCK
119
108
  r"""How to handle events when all receivers are exerting backpressure"""
120
109
 
@@ -1,17 +1,14 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class OutputRouterType(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class OutputRouterType(str, Enum):
15
12
  ROUTER = "router"
16
13
 
17
14
 
@@ -58,7 +55,7 @@ class OutputRouterTypedDict(TypedDict):
58
55
 
59
56
 
60
57
  class OutputRouter(BaseModel):
61
- type: Annotated[OutputRouterType, PlainValidator(validate_open_enum(False))]
58
+ type: OutputRouterType
62
59
 
63
60
  rules: List[OutputRouterRule]
64
61
  r"""Event routing rules"""
@@ -1,21 +1,18 @@
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
5
4
  from cribl_control_plane.types import BaseModel
6
- from cribl_control_plane.utils import validate_open_enum
7
5
  from enum import Enum
8
6
  import pydantic
9
- from pydantic.functional_validators import PlainValidator
10
7
  from typing import List, Optional
11
8
  from typing_extensions import Annotated, NotRequired, TypedDict
12
9
 
13
10
 
14
- class OutputS3Type(str, Enum, metaclass=utils.OpenEnumMeta):
11
+ class OutputS3Type(str, Enum):
15
12
  S3 = "s3"
16
13
 
17
14
 
18
- class OutputS3AuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ class OutputS3AuthenticationMethod(str, Enum):
19
16
  r"""AWS authentication method. Choose Auto to use IAM roles."""
20
17
 
21
18
  AUTO = "auto"
@@ -23,14 +20,14 @@ class OutputS3AuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
23
20
  SECRET = "secret"
24
21
 
25
22
 
26
- class OutputS3SignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
+ class OutputS3SignatureVersion(str, Enum):
27
24
  r"""Signature version to use for signing S3 requests"""
28
25
 
29
26
  V2 = "v2"
30
27
  V4 = "v4"
31
28
 
32
29
 
33
- class OutputS3ObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
30
+ class OutputS3ObjectACL(str, Enum):
34
31
  r"""Object ACL to assign to uploaded objects"""
35
32
 
36
33
  PRIVATE = "private"
@@ -42,7 +39,7 @@ class OutputS3ObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
42
39
  BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control"
43
40
 
44
41
 
45
- class OutputS3StorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
42
+ class OutputS3StorageClass(str, Enum):
46
43
  r"""Storage class to select for uploaded objects"""
47
44
 
48
45
  STANDARD = "STANDARD"
@@ -55,14 +52,12 @@ class OutputS3StorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
55
52
  DEEP_ARCHIVE = "DEEP_ARCHIVE"
56
53
 
57
54
 
58
- class OutputS3ServerSideEncryptionForUploadedObjects(
59
- str, Enum, metaclass=utils.OpenEnumMeta
60
- ):
55
+ class OutputS3ServerSideEncryptionForUploadedObjects(str, Enum):
61
56
  AES256 = "AES256"
62
57
  AWS_KMS = "aws:kms"
63
58
 
64
59
 
65
- class OutputS3DataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
60
+ class OutputS3DataFormat(str, Enum):
66
61
  r"""Format of the output data"""
67
62
 
68
63
  JSON = "json"
@@ -70,28 +65,28 @@ class OutputS3DataFormat(str, Enum, metaclass=utils.OpenEnumMeta):
70
65
  PARQUET = "parquet"
71
66
 
72
67
 
73
- class OutputS3BackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
68
+ class OutputS3BackpressureBehavior(str, Enum):
74
69
  r"""How to handle events when all receivers are exerting backpressure"""
75
70
 
76
71
  BLOCK = "block"
77
72
  DROP = "drop"
78
73
 
79
74
 
80
- class OutputS3DiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
75
+ class OutputS3DiskSpaceProtection(str, Enum):
81
76
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
82
77
 
83
78
  BLOCK = "block"
84
79
  DROP = "drop"
85
80
 
86
81
 
87
- class OutputS3Compression(str, Enum, metaclass=utils.OpenEnumMeta):
82
+ class OutputS3Compression(str, Enum):
88
83
  r"""Data compression format to apply to HTTP content before it is delivered"""
89
84
 
90
85
  NONE = "none"
91
86
  GZIP = "gzip"
92
87
 
93
88
 
94
- class OutputS3CompressionLevel(str, Enum, metaclass=utils.OpenEnumMeta):
89
+ class OutputS3CompressionLevel(str, Enum):
95
90
  r"""Compression level to apply before moving files to final destination"""
96
91
 
97
92
  BEST_SPEED = "best_speed"
@@ -99,7 +94,7 @@ class OutputS3CompressionLevel(str, Enum, metaclass=utils.OpenEnumMeta):
99
94
  BEST_COMPRESSION = "best_compression"
100
95
 
101
96
 
102
- class OutputS3ParquetVersion(str, Enum, metaclass=utils.OpenEnumMeta):
97
+ class OutputS3ParquetVersion(str, Enum):
103
98
  r"""Determines which data types are supported and how they are represented"""
104
99
 
105
100
  PARQUET_1_0 = "PARQUET_1_0"
@@ -107,7 +102,7 @@ class OutputS3ParquetVersion(str, Enum, metaclass=utils.OpenEnumMeta):
107
102
  PARQUET_2_6 = "PARQUET_2_6"
108
103
 
109
104
 
110
- class OutputS3DataPageVersion(str, Enum, metaclass=utils.OpenEnumMeta):
105
+ class OutputS3DataPageVersion(str, Enum):
111
106
  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."""
112
107
 
113
108
  DATA_PAGE_V1 = "DATA_PAGE_V1"
@@ -252,9 +247,7 @@ class OutputS3(BaseModel):
252
247
  id: Optional[str] = None
253
248
  r"""Unique ID for this output"""
254
249
 
255
- type: Annotated[
256
- Optional[OutputS3Type], PlainValidator(validate_open_enum(False))
257
- ] = None
250
+ type: Optional[OutputS3Type] = None
258
251
 
259
252
  pipeline: Optional[str] = None
260
253
  r"""Pipeline to process data before sending out to this output"""
@@ -279,10 +272,7 @@ class OutputS3(BaseModel):
279
272
  r"""Secret key. This value can be a constant or a JavaScript expression. Example: `${C.env.SOME_SECRET}`)"""
280
273
 
281
274
  aws_authentication_method: Annotated[
282
- Annotated[
283
- Optional[OutputS3AuthenticationMethod],
284
- PlainValidator(validate_open_enum(False)),
285
- ],
275
+ Optional[OutputS3AuthenticationMethod],
286
276
  pydantic.Field(alias="awsAuthenticationMethod"),
287
277
  ] = OutputS3AuthenticationMethod.AUTO
288
278
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -291,11 +281,7 @@ class OutputS3(BaseModel):
291
281
  r"""S3 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to S3-compatible endpoint."""
292
282
 
293
283
  signature_version: Annotated[
294
- Annotated[
295
- Optional[OutputS3SignatureVersion],
296
- PlainValidator(validate_open_enum(False)),
297
- ],
298
- pydantic.Field(alias="signatureVersion"),
284
+ Optional[OutputS3SignatureVersion], pydantic.Field(alias="signatureVersion")
299
285
  ] = OutputS3SignatureVersion.V4
300
286
  r"""Signature version to use for signing S3 requests"""
301
287
 
@@ -343,26 +329,17 @@ class OutputS3(BaseModel):
343
329
  r"""Prefix to append to files before uploading. Must be a JavaScript expression (which can evaluate to a constant value), enclosed in quotes or backticks. Can be evaluated only at init time. Example referencing a Global Variable: `myKeyPrefix-${C.vars.myVar}`"""
344
330
 
345
331
  object_acl: Annotated[
346
- Annotated[
347
- Optional[OutputS3ObjectACL], PlainValidator(validate_open_enum(False))
348
- ],
349
- pydantic.Field(alias="objectACL"),
332
+ Optional[OutputS3ObjectACL], pydantic.Field(alias="objectACL")
350
333
  ] = OutputS3ObjectACL.PRIVATE
351
334
  r"""Object ACL to assign to uploaded objects"""
352
335
 
353
336
  storage_class: Annotated[
354
- Annotated[
355
- Optional[OutputS3StorageClass], PlainValidator(validate_open_enum(False))
356
- ],
357
- pydantic.Field(alias="storageClass"),
337
+ Optional[OutputS3StorageClass], pydantic.Field(alias="storageClass")
358
338
  ] = None
359
339
  r"""Storage class to select for uploaded objects"""
360
340
 
361
341
  server_side_encryption: Annotated[
362
- Annotated[
363
- Optional[OutputS3ServerSideEncryptionForUploadedObjects],
364
- PlainValidator(validate_open_enum(False)),
365
- ],
342
+ Optional[OutputS3ServerSideEncryptionForUploadedObjects],
366
343
  pydantic.Field(alias="serverSideEncryption"),
367
344
  ] = None
368
345
 
@@ -379,12 +356,9 @@ class OutputS3(BaseModel):
379
356
  )
380
357
  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."""
381
358
 
382
- format_: Annotated[
383
- Annotated[
384
- Optional[OutputS3DataFormat], PlainValidator(validate_open_enum(False))
385
- ],
386
- pydantic.Field(alias="format"),
387
- ] = OutputS3DataFormat.JSON
359
+ format_: Annotated[Optional[OutputS3DataFormat], pydantic.Field(alias="format")] = (
360
+ OutputS3DataFormat.JSON
361
+ )
388
362
  r"""Format of the output data"""
389
363
 
390
364
  base_file_name: Annotated[Optional[str], pydantic.Field(alias="baseFileName")] = (
@@ -416,11 +390,7 @@ class OutputS3(BaseModel):
416
390
  r"""Buffer size used to write to a file"""
417
391
 
418
392
  on_backpressure: Annotated[
419
- Annotated[
420
- Optional[OutputS3BackpressureBehavior],
421
- PlainValidator(validate_open_enum(False)),
422
- ],
423
- pydantic.Field(alias="onBackpressure"),
393
+ Optional[OutputS3BackpressureBehavior], pydantic.Field(alias="onBackpressure")
424
394
  ] = OutputS3BackpressureBehavior.BLOCK
425
395
  r"""How to handle events when all receivers are exerting backpressure"""
426
396
 
@@ -430,10 +400,7 @@ class OutputS3(BaseModel):
430
400
  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"""
431
401
 
432
402
  on_disk_full_backpressure: Annotated[
433
- Annotated[
434
- Optional[OutputS3DiskSpaceProtection],
435
- PlainValidator(validate_open_enum(False)),
436
- ],
403
+ Optional[OutputS3DiskSpaceProtection],
437
404
  pydantic.Field(alias="onDiskFullBackpressure"),
438
405
  ] = OutputS3DiskSpaceProtection.BLOCK
439
406
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
@@ -471,17 +438,11 @@ class OutputS3(BaseModel):
471
438
  aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
472
439
  r"""Select or create a stored secret that references your access key and secret key"""
473
440
 
474
- compress: Annotated[
475
- Optional[OutputS3Compression], PlainValidator(validate_open_enum(False))
476
- ] = OutputS3Compression.GZIP
441
+ compress: Optional[OutputS3Compression] = OutputS3Compression.GZIP
477
442
  r"""Data compression format to apply to HTTP content before it is delivered"""
478
443
 
479
444
  compression_level: Annotated[
480
- Annotated[
481
- Optional[OutputS3CompressionLevel],
482
- PlainValidator(validate_open_enum(False)),
483
- ],
484
- pydantic.Field(alias="compressionLevel"),
445
+ Optional[OutputS3CompressionLevel], pydantic.Field(alias="compressionLevel")
485
446
  ] = OutputS3CompressionLevel.BEST_SPEED
486
447
  r"""Compression level to apply before moving files to final destination"""
487
448
 
@@ -491,17 +452,12 @@ class OutputS3(BaseModel):
491
452
  r"""Automatically calculate the schema based on the events of each Parquet file generated"""
492
453
 
493
454
  parquet_version: Annotated[
494
- Annotated[
495
- Optional[OutputS3ParquetVersion], PlainValidator(validate_open_enum(False))
496
- ],
497
- pydantic.Field(alias="parquetVersion"),
455
+ Optional[OutputS3ParquetVersion], pydantic.Field(alias="parquetVersion")
498
456
  ] = OutputS3ParquetVersion.PARQUET_2_6
499
457
  r"""Determines which data types are supported and how they are represented"""
500
458
 
501
459
  parquet_data_page_version: Annotated[
502
- Annotated[
503
- Optional[OutputS3DataPageVersion], PlainValidator(validate_open_enum(False))
504
- ],
460
+ Optional[OutputS3DataPageVersion],
505
461
  pydantic.Field(alias="parquetDataPageVersion"),
506
462
  ] = OutputS3DataPageVersion.DATA_PAGE_V2
507
463
  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."""