cribl-control-plane 0.0.38__py3-none-any.whl → 0.4.0a6__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 (241) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +92 -42
  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 +7 -5
  7. cribl_control_plane/destinations.py +6 -4
  8. cribl_control_plane/destinations_pq.py +2 -2
  9. cribl_control_plane/errors/__init__.py +23 -8
  10. cribl_control_plane/errors/apierror.py +2 -0
  11. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  12. cribl_control_plane/errors/error.py +4 -2
  13. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  14. cribl_control_plane/errors/no_response_error.py +5 -1
  15. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  16. cribl_control_plane/groups_configs.py +8 -3
  17. cribl_control_plane/groups_sdk.py +64 -38
  18. cribl_control_plane/health.py +22 -12
  19. cribl_control_plane/httpclient.py +0 -1
  20. cribl_control_plane/lakedatasets.py +40 -12
  21. cribl_control_plane/models/__init__.py +1180 -54
  22. cribl_control_plane/models/authtoken.py +5 -1
  23. cribl_control_plane/models/{routecloneconf.py → branchinfo.py} +4 -4
  24. cribl_control_plane/models/cacheconnection.py +30 -2
  25. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  26. cribl_control_plane/models/cloudprovider.py +2 -1
  27. cribl_control_plane/models/configgroup.py +66 -11
  28. cribl_control_plane/models/configgroupcloud.py +17 -3
  29. cribl_control_plane/models/createconfiggroupbyproductop.py +27 -9
  30. cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
  31. cribl_control_plane/models/createroutesappendbyidop.py +2 -2
  32. cribl_control_plane/models/createversionpushop.py +5 -5
  33. cribl_control_plane/models/createversionrevertop.py +2 -2
  34. cribl_control_plane/models/createversionundoop.py +3 -3
  35. cribl_control_plane/models/cribllakedataset.py +22 -2
  36. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  37. cribl_control_plane/models/datasetmetadata.py +18 -2
  38. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -2
  39. cribl_control_plane/models/deleteoutputpqbyidop.py +5 -5
  40. cribl_control_plane/models/deletepipelinebyidop.py +2 -2
  41. cribl_control_plane/models/difffiles.py +171 -0
  42. cribl_control_plane/models/distributedsummary.py +6 -0
  43. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -2
  44. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -2
  45. cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -1
  46. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -2
  47. cribl_control_plane/models/getoutputpqbyidop.py +6 -5
  48. cribl_control_plane/models/getpipelinebyidop.py +2 -2
  49. cribl_control_plane/models/getroutesbyidop.py +2 -2
  50. cribl_control_plane/models/getsummaryop.py +18 -2
  51. cribl_control_plane/models/getversionbranchop.py +6 -5
  52. cribl_control_plane/models/getversioncountop.py +6 -5
  53. cribl_control_plane/models/getversiondiffop.py +6 -5
  54. cribl_control_plane/models/getversionshowop.py +6 -5
  55. cribl_control_plane/models/gitcountresult.py +13 -0
  56. cribl_control_plane/models/gitdiffresult.py +16 -0
  57. cribl_control_plane/models/gitinfo.py +14 -3
  58. cribl_control_plane/models/gitshowresult.py +19 -0
  59. cribl_control_plane/models/groupcreaterequest.py +171 -0
  60. cribl_control_plane/models/hbcriblinfo.py +39 -3
  61. cribl_control_plane/models/healthserverstatus.py +55 -0
  62. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  63. cribl_control_plane/models/input.py +83 -78
  64. cribl_control_plane/models/inputappscope.py +126 -30
  65. cribl_control_plane/models/inputazureblob.py +62 -6
  66. cribl_control_plane/models/inputcloudflarehec.py +513 -0
  67. cribl_control_plane/models/inputcollection.py +47 -4
  68. cribl_control_plane/models/inputconfluentcloud.py +254 -30
  69. cribl_control_plane/models/inputcribl.py +47 -4
  70. cribl_control_plane/models/inputcriblhttp.py +121 -30
  71. cribl_control_plane/models/inputcribllakehttp.py +122 -30
  72. cribl_control_plane/models/inputcriblmetrics.py +48 -4
  73. cribl_control_plane/models/inputcribltcp.py +122 -24
  74. cribl_control_plane/models/inputcrowdstrike.py +92 -10
  75. cribl_control_plane/models/inputdatadogagent.py +98 -24
  76. cribl_control_plane/models/inputdatagen.py +47 -4
  77. cribl_control_plane/models/inputedgeprometheus.py +210 -50
  78. cribl_control_plane/models/inputelastic.py +167 -36
  79. cribl_control_plane/models/inputeventhub.py +209 -6
  80. cribl_control_plane/models/inputexec.py +59 -6
  81. cribl_control_plane/models/inputfile.py +78 -10
  82. cribl_control_plane/models/inputfirehose.py +97 -24
  83. cribl_control_plane/models/inputgooglepubsub.py +67 -6
  84. cribl_control_plane/models/inputgrafana.py +251 -71
  85. cribl_control_plane/models/inputhttp.py +97 -24
  86. cribl_control_plane/models/inputhttpraw.py +97 -24
  87. cribl_control_plane/models/inputjournalfiles.py +48 -4
  88. cribl_control_plane/models/inputkafka.py +248 -26
  89. cribl_control_plane/models/inputkinesis.py +130 -14
  90. cribl_control_plane/models/inputkubeevents.py +47 -4
  91. cribl_control_plane/models/inputkubelogs.py +61 -8
  92. cribl_control_plane/models/inputkubemetrics.py +61 -8
  93. cribl_control_plane/models/inputloki.py +113 -34
  94. cribl_control_plane/models/inputmetrics.py +97 -24
  95. cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
  96. cribl_control_plane/models/inputmsk.py +141 -30
  97. cribl_control_plane/models/inputnetflow.py +47 -4
  98. cribl_control_plane/models/inputoffice365mgmt.py +112 -14
  99. cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
  100. cribl_control_plane/models/inputoffice365service.py +114 -16
  101. cribl_control_plane/models/inputopentelemetry.py +143 -32
  102. cribl_control_plane/models/inputprometheus.py +193 -44
  103. cribl_control_plane/models/inputprometheusrw.py +114 -27
  104. cribl_control_plane/models/inputrawudp.py +47 -4
  105. cribl_control_plane/models/inputs3.py +78 -8
  106. cribl_control_plane/models/inputs3inventory.py +92 -10
  107. cribl_control_plane/models/inputsecuritylake.py +93 -10
  108. cribl_control_plane/models/inputsnmp.py +68 -6
  109. cribl_control_plane/models/inputsplunk.py +130 -28
  110. cribl_control_plane/models/inputsplunkhec.py +111 -25
  111. cribl_control_plane/models/inputsplunksearch.py +108 -14
  112. cribl_control_plane/models/inputsqs.py +99 -16
  113. cribl_control_plane/models/inputsyslog.py +189 -47
  114. cribl_control_plane/models/inputsystemmetrics.py +202 -32
  115. cribl_control_plane/models/inputsystemstate.py +61 -8
  116. cribl_control_plane/models/inputtcp.py +122 -26
  117. cribl_control_plane/models/inputtcpjson.py +112 -26
  118. cribl_control_plane/models/inputwef.py +121 -15
  119. cribl_control_plane/models/inputwindowsmetrics.py +186 -33
  120. cribl_control_plane/models/inputwineventlogs.py +93 -11
  121. cribl_control_plane/models/inputwiz.py +78 -8
  122. cribl_control_plane/models/inputwizwebhook.py +97 -24
  123. cribl_control_plane/models/inputzscalerhec.py +111 -25
  124. cribl_control_plane/models/jobinfo.py +34 -0
  125. cribl_control_plane/models/jobstatus.py +48 -0
  126. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  127. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  128. cribl_control_plane/models/listconfiggroupbyproductop.py +14 -1
  129. cribl_control_plane/models/logininfo.py +3 -3
  130. cribl_control_plane/models/masterworkerentry.py +17 -2
  131. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  132. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  133. cribl_control_plane/models/nodeprovidedinfo.py +11 -1
  134. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  135. cribl_control_plane/models/nodeupgradestate.py +2 -1
  136. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  137. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  138. cribl_control_plane/models/output.py +104 -90
  139. cribl_control_plane/models/outputazureblob.py +171 -18
  140. cribl_control_plane/models/outputazuredataexplorer.py +514 -90
  141. cribl_control_plane/models/outputazureeventhub.py +315 -31
  142. cribl_control_plane/models/outputazurelogs.py +145 -26
  143. cribl_control_plane/models/outputchronicle.py +532 -0
  144. cribl_control_plane/models/outputclickhouse.py +205 -34
  145. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  146. cribl_control_plane/models/outputcloudwatch.py +129 -23
  147. cribl_control_plane/models/outputconfluentcloud.py +384 -57
  148. cribl_control_plane/models/outputcriblhttp.py +199 -32
  149. cribl_control_plane/models/outputcribllake.py +156 -16
  150. cribl_control_plane/models/outputcribltcp.py +194 -29
  151. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
  152. cribl_control_plane/models/outputdatabricks.py +501 -0
  153. cribl_control_plane/models/outputdatadog.py +199 -31
  154. cribl_control_plane/models/outputdataset.py +181 -29
  155. cribl_control_plane/models/outputdiskspool.py +17 -2
  156. cribl_control_plane/models/outputdls3.py +233 -24
  157. cribl_control_plane/models/outputdynatracehttp.py +208 -34
  158. cribl_control_plane/models/outputdynatraceotlp.py +210 -36
  159. cribl_control_plane/models/outputelastic.py +199 -30
  160. cribl_control_plane/models/outputelasticcloud.py +171 -26
  161. cribl_control_plane/models/outputexabeam.py +96 -10
  162. cribl_control_plane/models/outputfilesystem.py +139 -14
  163. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  164. cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
  165. cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
  166. cribl_control_plane/models/outputgooglepubsub.py +131 -23
  167. cribl_control_plane/models/outputgrafanacloud.py +376 -74
  168. cribl_control_plane/models/outputgraphite.py +128 -25
  169. cribl_control_plane/models/outputhoneycomb.py +145 -26
  170. cribl_control_plane/models/outputhumiohec.py +162 -28
  171. cribl_control_plane/models/outputinfluxdb.py +165 -28
  172. cribl_control_plane/models/outputkafka.py +375 -52
  173. cribl_control_plane/models/outputkinesis.py +165 -27
  174. cribl_control_plane/models/outputloki.py +164 -34
  175. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  176. cribl_control_plane/models/outputminio.py +225 -25
  177. cribl_control_plane/models/outputmsk.py +267 -54
  178. cribl_control_plane/models/outputnewrelic.py +171 -29
  179. cribl_control_plane/models/outputnewrelicevents.py +163 -28
  180. cribl_control_plane/models/outputopentelemetry.py +240 -40
  181. cribl_control_plane/models/outputprometheus.py +145 -26
  182. cribl_control_plane/models/outputring.py +49 -8
  183. cribl_control_plane/models/outputs3.py +233 -26
  184. cribl_control_plane/models/outputsecuritylake.py +179 -18
  185. cribl_control_plane/models/outputsentinel.py +172 -29
  186. cribl_control_plane/models/outputsentineloneaisiem.py +181 -35
  187. cribl_control_plane/models/outputservicenow.py +223 -38
  188. cribl_control_plane/models/outputsignalfx.py +145 -26
  189. cribl_control_plane/models/outputsns.py +143 -25
  190. cribl_control_plane/models/outputsplunk.py +206 -36
  191. cribl_control_plane/models/outputsplunkhec.py +238 -26
  192. cribl_control_plane/models/outputsplunklb.py +253 -43
  193. cribl_control_plane/models/outputsqs.py +163 -33
  194. cribl_control_plane/models/outputstatsd.py +127 -25
  195. cribl_control_plane/models/outputstatsdext.py +128 -25
  196. cribl_control_plane/models/outputsumologic.py +146 -25
  197. cribl_control_plane/models/outputsyslog.py +318 -46
  198. cribl_control_plane/models/outputtcpjson.py +186 -32
  199. cribl_control_plane/models/outputwavefront.py +145 -26
  200. cribl_control_plane/models/outputwebhook.py +211 -33
  201. cribl_control_plane/models/outputxsiam.py +143 -26
  202. cribl_control_plane/models/packinfo.py +8 -5
  203. cribl_control_plane/models/packinstallinfo.py +11 -8
  204. cribl_control_plane/models/productscore.py +2 -1
  205. cribl_control_plane/models/rbacresource.py +2 -1
  206. cribl_control_plane/models/resourcepolicy.py +15 -2
  207. cribl_control_plane/models/routeconf.py +3 -4
  208. cribl_control_plane/models/runnablejob.py +27 -0
  209. cribl_control_plane/models/runnablejobcollection.py +669 -0
  210. cribl_control_plane/models/runnablejobexecutor.py +368 -0
  211. cribl_control_plane/models/runnablejobscheduledsearch.py +286 -0
  212. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -2
  213. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -2
  214. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +9 -5
  215. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  216. cribl_control_plane/models/updatepacksop.py +25 -0
  217. cribl_control_plane/models/updatepipelinebyidop.py +6 -6
  218. cribl_control_plane/models/updateroutesbyidop.py +2 -2
  219. cribl_control_plane/models/uploadpackresponse.py +13 -0
  220. cribl_control_plane/models/workertypes.py +2 -1
  221. cribl_control_plane/nodes.py +5 -3
  222. cribl_control_plane/packs.py +202 -7
  223. cribl_control_plane/pipelines.py +18 -18
  224. cribl_control_plane/routes_sdk.py +22 -22
  225. cribl_control_plane/sdk.py +19 -6
  226. cribl_control_plane/sources.py +5 -3
  227. cribl_control_plane/tokens.py +23 -15
  228. cribl_control_plane/utils/__init__.py +15 -3
  229. cribl_control_plane/utils/annotations.py +32 -8
  230. cribl_control_plane/utils/eventstreaming.py +10 -0
  231. cribl_control_plane/utils/retries.py +69 -5
  232. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  233. cribl_control_plane/versions.py +11 -6
  234. {cribl_control_plane-0.0.38.dist-info → cribl_control_plane-0.4.0a6.dist-info}/METADATA +69 -23
  235. cribl_control_plane-0.4.0a6.dist-info/RECORD +336 -0
  236. {cribl_control_plane-0.0.38.dist-info → cribl_control_plane-0.4.0a6.dist-info}/WHEEL +1 -1
  237. cribl_control_plane-0.4.0a6.dist-info/licenses/LICENSE +201 -0
  238. cribl_control_plane/errors/healthstatus_error.py +0 -32
  239. cribl_control_plane/models/appmode.py +0 -13
  240. cribl_control_plane/models/healthstatus.py +0 -33
  241. cribl_control_plane-0.0.38.dist-info/RECORD +0 -315
@@ -1,9 +1,13 @@
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 models, 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 import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,64 +16,87 @@ class OutputCriblLakeType(str, Enum):
12
16
  CRIBL_LAKE = "cribl_lake"
13
17
 
14
18
 
15
- class OutputCriblLakeSignatureVersion(str, Enum):
19
+ class OutputCriblLakeSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Signature version to use for signing S3 requests"""
17
21
 
18
22
  V2 = "v2"
19
23
  V4 = "v4"
20
24
 
21
25
 
22
- class OutputCriblLakeObjectACL(str, Enum):
26
+ class OutputCriblLakeObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
23
27
  r"""Object ACL to assign to uploaded objects"""
24
28
 
29
+ # Private
25
30
  PRIVATE = "private"
31
+ # Public Read Only
26
32
  PUBLIC_READ = "public-read"
33
+ # Public Read/Write
27
34
  PUBLIC_READ_WRITE = "public-read-write"
35
+ # Authenticated Read Only
28
36
  AUTHENTICATED_READ = "authenticated-read"
37
+ # AWS EC2 AMI Read Only
29
38
  AWS_EXEC_READ = "aws-exec-read"
39
+ # Bucket Owner Read Only
30
40
  BUCKET_OWNER_READ = "bucket-owner-read"
41
+ # Bucket Owner Full Control
31
42
  BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control"
32
43
 
33
44
 
34
- class OutputCriblLakeStorageClass(str, Enum):
45
+ class OutputCriblLakeStorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
35
46
  r"""Storage class to select for uploaded objects"""
36
47
 
48
+ # Standard
37
49
  STANDARD = "STANDARD"
50
+ # Reduced Redundancy Storage
38
51
  REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY"
52
+ # Standard, Infrequent Access
39
53
  STANDARD_IA = "STANDARD_IA"
54
+ # One Zone, Infrequent Access
40
55
  ONEZONE_IA = "ONEZONE_IA"
56
+ # Intelligent Tiering
41
57
  INTELLIGENT_TIERING = "INTELLIGENT_TIERING"
58
+ # Glacier Flexible Retrieval
42
59
  GLACIER = "GLACIER"
60
+ # Glacier Instant Retrieval
43
61
  GLACIER_IR = "GLACIER_IR"
62
+ # Glacier Deep Archive
44
63
  DEEP_ARCHIVE = "DEEP_ARCHIVE"
45
64
 
46
65
 
47
- class OutputCriblLakeServerSideEncryptionForUploadedObjects(str, Enum):
66
+ class OutputCriblLakeServerSideEncryptionForUploadedObjects(
67
+ str, Enum, metaclass=utils.OpenEnumMeta
68
+ ):
69
+ # Amazon S3 Managed Key
48
70
  AES256 = "AES256"
71
+ # AWS KMS Managed Key
49
72
  AWS_KMS = "aws:kms"
50
73
 
51
74
 
52
- class OutputCriblLakeBackpressureBehavior(str, Enum):
75
+ class OutputCriblLakeBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
76
  r"""How to handle events when all receivers are exerting backpressure"""
54
77
 
78
+ # Block
55
79
  BLOCK = "block"
80
+ # Drop
56
81
  DROP = "drop"
57
82
 
58
83
 
59
- class OutputCriblLakeDiskSpaceProtection(str, Enum):
84
+ class OutputCriblLakeDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
60
85
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
61
86
 
87
+ # Block
62
88
  BLOCK = "block"
89
+ # Drop
63
90
  DROP = "drop"
64
91
 
65
92
 
66
- class AwsAuthenticationMethod(str, Enum):
93
+ class AwsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
67
94
  AUTO = "auto"
68
95
  AUTO_RPC = "auto_rpc"
69
96
  MANUAL = "manual"
70
97
 
71
98
 
72
- class OutputCriblLakeFormat(str, Enum):
99
+ class OutputCriblLakeFormat(str, Enum, metaclass=utils.OpenEnumMeta):
73
100
  JSON = "json"
74
101
  PARQUET = "parquet"
75
102
  DDSS = "ddss"
@@ -144,6 +171,8 @@ class OutputCriblLakeTypedDict(TypedDict):
144
171
  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"""
145
172
  on_disk_full_backpressure: NotRequired[OutputCriblLakeDiskSpaceProtection]
146
173
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
174
+ force_close_on_shutdown: NotRequired[bool]
175
+ r"""Force all staged files to close during an orderly Node shutdown. This triggers immediate upload of in-progress data — regardless of idle time, file age, or size thresholds — to minimize data loss."""
147
176
  max_file_open_time_sec: NotRequired[float]
148
177
  r"""Maximum amount of time to write to a file. Files open for longer than this will be closed and moved to final output location."""
149
178
  max_file_idle_time_sec: NotRequired[float]
@@ -159,6 +188,8 @@ class OutputCriblLakeTypedDict(TypedDict):
159
188
  description: NotRequired[str]
160
189
  empty_dir_cleanup_sec: NotRequired[float]
161
190
  r"""How frequently, in seconds, to clean up empty directories"""
191
+ directory_batch_size: NotRequired[float]
192
+ r"""Number of directories to process in each batch during cleanup of empty directories. Minimum is 10, maximum is 10000. Higher values may require more memory."""
162
193
  deadletter_path: NotRequired[str]
163
194
  r"""Storage location for files that fail to reach their final destination after maximum retries are exceeded"""
164
195
  max_retry_num: NotRequired[float]
@@ -200,7 +231,10 @@ class OutputCriblLake(BaseModel):
200
231
  r"""S3 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to S3-compatible endpoint."""
201
232
 
202
233
  signature_version: Annotated[
203
- Optional[OutputCriblLakeSignatureVersion],
234
+ Annotated[
235
+ Optional[OutputCriblLakeSignatureVersion],
236
+ PlainValidator(validate_open_enum(False)),
237
+ ],
204
238
  pydantic.Field(alias="signatureVersion"),
205
239
  ] = OutputCriblLakeSignatureVersion.V4
206
240
  r"""Signature version to use for signing S3 requests"""
@@ -249,17 +283,28 @@ class OutputCriblLake(BaseModel):
249
283
  r"""Lake dataset to send the data to."""
250
284
 
251
285
  object_acl: Annotated[
252
- Optional[OutputCriblLakeObjectACL], pydantic.Field(alias="objectACL")
286
+ Annotated[
287
+ Optional[OutputCriblLakeObjectACL],
288
+ PlainValidator(validate_open_enum(False)),
289
+ ],
290
+ pydantic.Field(alias="objectACL"),
253
291
  ] = OutputCriblLakeObjectACL.PRIVATE
254
292
  r"""Object ACL to assign to uploaded objects"""
255
293
 
256
294
  storage_class: Annotated[
257
- Optional[OutputCriblLakeStorageClass], pydantic.Field(alias="storageClass")
295
+ Annotated[
296
+ Optional[OutputCriblLakeStorageClass],
297
+ PlainValidator(validate_open_enum(False)),
298
+ ],
299
+ pydantic.Field(alias="storageClass"),
258
300
  ] = None
259
301
  r"""Storage class to select for uploaded objects"""
260
302
 
261
303
  server_side_encryption: Annotated[
262
- Optional[OutputCriblLakeServerSideEncryptionForUploadedObjects],
304
+ Annotated[
305
+ Optional[OutputCriblLakeServerSideEncryptionForUploadedObjects],
306
+ PlainValidator(validate_open_enum(False)),
307
+ ],
263
308
  pydantic.Field(alias="serverSideEncryption"),
264
309
  ] = None
265
310
 
@@ -300,7 +345,10 @@ class OutputCriblLake(BaseModel):
300
345
  r"""Buffer size used to write to a file"""
301
346
 
302
347
  on_backpressure: Annotated[
303
- Optional[OutputCriblLakeBackpressureBehavior],
348
+ Annotated[
349
+ Optional[OutputCriblLakeBackpressureBehavior],
350
+ PlainValidator(validate_open_enum(False)),
351
+ ],
304
352
  pydantic.Field(alias="onBackpressure"),
305
353
  ] = OutputCriblLakeBackpressureBehavior.BLOCK
306
354
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -311,11 +359,19 @@ class OutputCriblLake(BaseModel):
311
359
  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"""
312
360
 
313
361
  on_disk_full_backpressure: Annotated[
314
- Optional[OutputCriblLakeDiskSpaceProtection],
362
+ Annotated[
363
+ Optional[OutputCriblLakeDiskSpaceProtection],
364
+ PlainValidator(validate_open_enum(False)),
365
+ ],
315
366
  pydantic.Field(alias="onDiskFullBackpressure"),
316
367
  ] = OutputCriblLakeDiskSpaceProtection.BLOCK
317
368
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
318
369
 
370
+ force_close_on_shutdown: Annotated[
371
+ Optional[bool], pydantic.Field(alias="forceCloseOnShutdown")
372
+ ] = False
373
+ r"""Force all staged files to close during an orderly Node shutdown. This triggers immediate upload of in-progress data — regardless of idle time, file age, or size thresholds — to minimize data loss."""
374
+
319
375
  max_file_open_time_sec: Annotated[
320
376
  Optional[float], pydantic.Field(alias="maxFileOpenTimeSec")
321
377
  ] = 300
@@ -337,12 +393,17 @@ class OutputCriblLake(BaseModel):
337
393
  r"""Maximum number of files that can be waiting for upload before backpressure is applied"""
338
394
 
339
395
  aws_authentication_method: Annotated[
340
- Optional[AwsAuthenticationMethod],
396
+ Annotated[
397
+ Optional[AwsAuthenticationMethod], PlainValidator(validate_open_enum(False))
398
+ ],
341
399
  pydantic.Field(alias="awsAuthenticationMethod"),
342
400
  ] = AwsAuthenticationMethod.AUTO
343
401
 
344
402
  format_: Annotated[
345
- Optional[OutputCriblLakeFormat], pydantic.Field(alias="format")
403
+ Annotated[
404
+ Optional[OutputCriblLakeFormat], PlainValidator(validate_open_enum(False))
405
+ ],
406
+ pydantic.Field(alias="format"),
346
407
  ] = None
347
408
 
348
409
  max_concurrent_file_parts: Annotated[
@@ -357,6 +418,11 @@ class OutputCriblLake(BaseModel):
357
418
  ] = 300
358
419
  r"""How frequently, in seconds, to clean up empty directories"""
359
420
 
421
+ directory_batch_size: Annotated[
422
+ Optional[float], pydantic.Field(alias="directoryBatchSize")
423
+ ] = 1000
424
+ r"""Number of directories to process in each batch during cleanup of empty directories. Minimum is 10, maximum is 10000. Higher values may require more memory."""
425
+
360
426
  deadletter_path: Annotated[
361
427
  Optional[str], pydantic.Field(alias="deadletterPath")
362
428
  ] = "$CRIBL_HOME/state/outputs/dead-letter"
@@ -364,3 +430,77 @@ class OutputCriblLake(BaseModel):
364
430
 
365
431
  max_retry_num: Annotated[Optional[float], pydantic.Field(alias="maxRetryNum")] = 20
366
432
  r"""The maximum number of times a file will attempt to move to its final destination before being dead-lettered"""
433
+
434
+ @field_serializer("signature_version")
435
+ def serialize_signature_version(self, value):
436
+ if isinstance(value, str):
437
+ try:
438
+ return models.OutputCriblLakeSignatureVersion(value)
439
+ except ValueError:
440
+ return value
441
+ return value
442
+
443
+ @field_serializer("object_acl")
444
+ def serialize_object_acl(self, value):
445
+ if isinstance(value, str):
446
+ try:
447
+ return models.OutputCriblLakeObjectACL(value)
448
+ except ValueError:
449
+ return value
450
+ return value
451
+
452
+ @field_serializer("storage_class")
453
+ def serialize_storage_class(self, value):
454
+ if isinstance(value, str):
455
+ try:
456
+ return models.OutputCriblLakeStorageClass(value)
457
+ except ValueError:
458
+ return value
459
+ return value
460
+
461
+ @field_serializer("server_side_encryption")
462
+ def serialize_server_side_encryption(self, value):
463
+ if isinstance(value, str):
464
+ try:
465
+ return models.OutputCriblLakeServerSideEncryptionForUploadedObjects(
466
+ value
467
+ )
468
+ except ValueError:
469
+ return value
470
+ return value
471
+
472
+ @field_serializer("on_backpressure")
473
+ def serialize_on_backpressure(self, value):
474
+ if isinstance(value, str):
475
+ try:
476
+ return models.OutputCriblLakeBackpressureBehavior(value)
477
+ except ValueError:
478
+ return value
479
+ return value
480
+
481
+ @field_serializer("on_disk_full_backpressure")
482
+ def serialize_on_disk_full_backpressure(self, value):
483
+ if isinstance(value, str):
484
+ try:
485
+ return models.OutputCriblLakeDiskSpaceProtection(value)
486
+ except ValueError:
487
+ return value
488
+ return value
489
+
490
+ @field_serializer("aws_authentication_method")
491
+ def serialize_aws_authentication_method(self, value):
492
+ if isinstance(value, str):
493
+ try:
494
+ return models.AwsAuthenticationMethod(value)
495
+ except ValueError:
496
+ return value
497
+ return value
498
+
499
+ @field_serializer("format_")
500
+ def serialize_format_(self, value):
501
+ if isinstance(value, str):
502
+ try:
503
+ return models.OutputCriblLakeFormat(value)
504
+ except ValueError:
505
+ return value
506
+ return value
@@ -1,9 +1,13 @@
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 models, 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 import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,21 +16,23 @@ class OutputCriblTCPType(str, Enum):
12
16
  CRIBL_TCP = "cribl_tcp"
13
17
 
14
18
 
15
- class OutputCriblTCPCompression(str, Enum):
19
+ class OutputCriblTCPCompression(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Codec to use to compress the data before sending"""
17
21
 
22
+ # None
18
23
  NONE = "none"
24
+ # Gzip
19
25
  GZIP = "gzip"
20
26
 
21
27
 
22
- class OutputCriblTCPMinimumTLSVersion(str, Enum):
28
+ class OutputCriblTCPMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
29
  TL_SV1 = "TLSv1"
24
30
  TL_SV1_1 = "TLSv1.1"
25
31
  TL_SV1_2 = "TLSv1.2"
26
32
  TL_SV1_3 = "TLSv1.3"
27
33
 
28
34
 
29
- class OutputCriblTCPMaximumTLSVersion(str, Enum):
35
+ class OutputCriblTCPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
30
36
  TL_SV1 = "TLSv1"
31
37
  TL_SV1_1 = "TLSv1.1"
32
38
  TL_SV1_2 = "TLSv1.2"
@@ -86,23 +92,70 @@ class OutputCriblTCPTLSSettingsClientSide(BaseModel):
86
92
  r"""Passphrase to use to decrypt private key"""
87
93
 
88
94
  min_version: Annotated[
89
- Optional[OutputCriblTCPMinimumTLSVersion], pydantic.Field(alias="minVersion")
95
+ Annotated[
96
+ Optional[OutputCriblTCPMinimumTLSVersion],
97
+ PlainValidator(validate_open_enum(False)),
98
+ ],
99
+ pydantic.Field(alias="minVersion"),
90
100
  ] = None
91
101
 
92
102
  max_version: Annotated[
93
- Optional[OutputCriblTCPMaximumTLSVersion], pydantic.Field(alias="maxVersion")
103
+ Annotated[
104
+ Optional[OutputCriblTCPMaximumTLSVersion],
105
+ PlainValidator(validate_open_enum(False)),
106
+ ],
107
+ pydantic.Field(alias="maxVersion"),
94
108
  ] = None
95
109
 
110
+ @field_serializer("min_version")
111
+ def serialize_min_version(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.OutputCriblTCPMinimumTLSVersion(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("max_version")
120
+ def serialize_max_version(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.OutputCriblTCPMaximumTLSVersion(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
128
+
129
+ class OutputCriblTCPAuthTokenTypedDict(TypedDict):
130
+ token_secret: str
131
+ r"""Select or create a stored text secret"""
132
+ enabled: NotRequired[bool]
133
+ description: NotRequired[str]
134
+ r"""Optional token description"""
135
+
136
+
137
+ class OutputCriblTCPAuthToken(BaseModel):
138
+ token_secret: Annotated[str, pydantic.Field(alias="tokenSecret")]
139
+ r"""Select or create a stored text secret"""
140
+
141
+ enabled: Optional[bool] = True
142
+
143
+ description: Optional[str] = None
144
+ r"""Optional token description"""
145
+
96
146
 
97
- class OutputCriblTCPBackpressureBehavior(str, Enum):
147
+ class OutputCriblTCPBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
98
148
  r"""How to handle events when all receivers are exerting backpressure"""
99
149
 
150
+ # Block
100
151
  BLOCK = "block"
152
+ # Drop
101
153
  DROP = "drop"
154
+ # Persistent Queue
102
155
  QUEUE = "queue"
103
156
 
104
157
 
105
- class OutputCriblTCPTLS(str, Enum):
158
+ class OutputCriblTCPTLS(str, Enum, metaclass=utils.OpenEnumMeta):
106
159
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
107
160
 
108
161
  INHERIT = "inherit"
@@ -129,7 +182,9 @@ class OutputCriblTCPHost(BaseModel):
129
182
  port: Optional[float] = 10300
130
183
  r"""The port to connect to on the provided host"""
131
184
 
132
- tls: Optional[OutputCriblTCPTLS] = OutputCriblTCPTLS.INHERIT
185
+ tls: Annotated[
186
+ Optional[OutputCriblTCPTLS], PlainValidator(validate_open_enum(False))
187
+ ] = OutputCriblTCPTLS.INHERIT
133
188
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
134
189
 
135
190
  servername: Optional[str] = None
@@ -138,29 +193,45 @@ class OutputCriblTCPHost(BaseModel):
138
193
  weight: Optional[float] = 1
139
194
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
140
195
 
196
+ @field_serializer("tls")
197
+ def serialize_tls(self, value):
198
+ if isinstance(value, str):
199
+ try:
200
+ return models.OutputCriblTCPTLS(value)
201
+ except ValueError:
202
+ return value
203
+ return value
204
+
205
+
206
+ class OutputCriblTCPMode(str, Enum, metaclass=utils.OpenEnumMeta):
207
+ 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."""
208
+
209
+ # Error
210
+ ERROR = "error"
211
+ # Backpressure
212
+ ALWAYS = "always"
213
+ # Always On
214
+ BACKPRESSURE = "backpressure"
215
+
141
216
 
142
- class OutputCriblTCPPqCompressCompression(str, Enum):
217
+ class OutputCriblTCPPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
143
218
  r"""Codec to use to compress the persisted data"""
144
219
 
220
+ # None
145
221
  NONE = "none"
222
+ # Gzip
146
223
  GZIP = "gzip"
147
224
 
148
225
 
149
- class OutputCriblTCPQueueFullBehavior(str, Enum):
226
+ class OutputCriblTCPQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
150
227
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
151
228
 
229
+ # Block
152
230
  BLOCK = "block"
231
+ # Drop new data
153
232
  DROP = "drop"
154
233
 
155
234
 
156
- class OutputCriblTCPMode(str, Enum):
157
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
158
-
159
- ERROR = "error"
160
- BACKPRESSURE = "backpressure"
161
- ALWAYS = "always"
162
-
163
-
164
235
  class OutputCriblTCPPqControlsTypedDict(TypedDict):
165
236
  pass
166
237
 
@@ -196,6 +267,8 @@ class OutputCriblTCPTypedDict(TypedDict):
196
267
  r"""Amount of time (milliseconds) to wait for a write to complete before assuming connection is dead"""
197
268
  token_ttl_minutes: NotRequired[float]
198
269
  r"""The number of minutes before the internally generated authentication token expires, valid values between 1 and 60"""
270
+ auth_tokens: NotRequired[List[OutputCriblTCPAuthTokenTypedDict]]
271
+ r"""Shared secrets to be used by connected environments to authorize connections. These tokens should also be installed in Cribl TCP Source in Cribl.Cloud."""
199
272
  exclude_fields: NotRequired[List[str]]
200
273
  r"""Fields to exclude from the event. By default, all internal fields except `__output` are sent. Example: `cribl_pipe`, `c*`. Wildcards supported."""
201
274
  on_backpressure: NotRequired[OutputCriblTCPBackpressureBehavior]
@@ -215,6 +288,16 @@ class OutputCriblTCPTypedDict(TypedDict):
215
288
  r"""How far back in time to keep traffic stats for load balancing purposes"""
216
289
  max_concurrent_senders: NotRequired[float]
217
290
  r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
291
+ pq_strict_ordering: NotRequired[bool]
292
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
293
+ pq_rate_per_sec: NotRequired[float]
294
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
295
+ pq_mode: NotRequired[OutputCriblTCPMode]
296
+ 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."""
297
+ pq_max_buffer_size: NotRequired[float]
298
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
299
+ pq_max_backpressure_sec: NotRequired[float]
300
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
218
301
  pq_max_file_size: NotRequired[str]
219
302
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
220
303
  pq_max_size: NotRequired[str]
@@ -225,8 +308,6 @@ class OutputCriblTCPTypedDict(TypedDict):
225
308
  r"""Codec to use to compress the persisted data"""
226
309
  pq_on_backpressure: NotRequired[OutputCriblTCPQueueFullBehavior]
227
310
  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."""
228
- pq_mode: NotRequired[OutputCriblTCPMode]
229
- 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."""
230
311
  pq_controls: NotRequired[OutputCriblTCPPqControlsTypedDict]
231
312
 
232
313
 
@@ -255,7 +336,9 @@ class OutputCriblTCP(BaseModel):
255
336
  )
256
337
  r"""Use load-balanced destinations"""
257
338
 
258
- compression: Optional[OutputCriblTCPCompression] = OutputCriblTCPCompression.GZIP
339
+ compression: Annotated[
340
+ Optional[OutputCriblTCPCompression], PlainValidator(validate_open_enum(False))
341
+ ] = OutputCriblTCPCompression.GZIP
259
342
  r"""Codec to use to compress the data before sending"""
260
343
 
261
344
  log_failed_requests: Annotated[
@@ -285,13 +368,21 @@ class OutputCriblTCP(BaseModel):
285
368
  ] = 60
286
369
  r"""The number of minutes before the internally generated authentication token expires, valid values between 1 and 60"""
287
370
 
371
+ auth_tokens: Annotated[
372
+ Optional[List[OutputCriblTCPAuthToken]], pydantic.Field(alias="authTokens")
373
+ ] = None
374
+ r"""Shared secrets to be used by connected environments to authorize connections. These tokens should also be installed in Cribl TCP Source in Cribl.Cloud."""
375
+
288
376
  exclude_fields: Annotated[
289
377
  Optional[List[str]], pydantic.Field(alias="excludeFields")
290
378
  ] = None
291
379
  r"""Fields to exclude from the event. By default, all internal fields except `__output` are sent. Example: `cribl_pipe`, `c*`. Wildcards supported."""
292
380
 
293
381
  on_backpressure: Annotated[
294
- Optional[OutputCriblTCPBackpressureBehavior],
382
+ Annotated[
383
+ Optional[OutputCriblTCPBackpressureBehavior],
384
+ PlainValidator(validate_open_enum(False)),
385
+ ],
295
386
  pydantic.Field(alias="onBackpressure"),
296
387
  ] = OutputCriblTCPBackpressureBehavior.BLOCK
297
388
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -325,6 +416,34 @@ class OutputCriblTCP(BaseModel):
325
416
  ] = 0
326
417
  r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
327
418
 
419
+ pq_strict_ordering: Annotated[
420
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
421
+ ] = True
422
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
423
+
424
+ pq_rate_per_sec: Annotated[
425
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
426
+ ] = 0
427
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
428
+
429
+ pq_mode: Annotated[
430
+ Annotated[
431
+ Optional[OutputCriblTCPMode], PlainValidator(validate_open_enum(False))
432
+ ],
433
+ pydantic.Field(alias="pqMode"),
434
+ ] = OutputCriblTCPMode.ERROR
435
+ 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."""
436
+
437
+ pq_max_buffer_size: Annotated[
438
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
439
+ ] = 42
440
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
441
+
442
+ pq_max_backpressure_sec: Annotated[
443
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
444
+ ] = 30
445
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
446
+
328
447
  pq_max_file_size: Annotated[
329
448
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
330
449
  ] = "1 MB"
@@ -339,22 +458,68 @@ class OutputCriblTCP(BaseModel):
339
458
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
340
459
 
341
460
  pq_compress: Annotated[
342
- Optional[OutputCriblTCPPqCompressCompression],
461
+ Annotated[
462
+ Optional[OutputCriblTCPPqCompressCompression],
463
+ PlainValidator(validate_open_enum(False)),
464
+ ],
343
465
  pydantic.Field(alias="pqCompress"),
344
466
  ] = OutputCriblTCPPqCompressCompression.NONE
345
467
  r"""Codec to use to compress the persisted data"""
346
468
 
347
469
  pq_on_backpressure: Annotated[
348
- Optional[OutputCriblTCPQueueFullBehavior],
470
+ Annotated[
471
+ Optional[OutputCriblTCPQueueFullBehavior],
472
+ PlainValidator(validate_open_enum(False)),
473
+ ],
349
474
  pydantic.Field(alias="pqOnBackpressure"),
350
475
  ] = OutputCriblTCPQueueFullBehavior.BLOCK
351
476
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
352
477
 
353
- pq_mode: Annotated[Optional[OutputCriblTCPMode], pydantic.Field(alias="pqMode")] = (
354
- OutputCriblTCPMode.ERROR
355
- )
356
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
357
-
358
478
  pq_controls: Annotated[
359
479
  Optional[OutputCriblTCPPqControls], pydantic.Field(alias="pqControls")
360
480
  ] = None
481
+
482
+ @field_serializer("compression")
483
+ def serialize_compression(self, value):
484
+ if isinstance(value, str):
485
+ try:
486
+ return models.OutputCriblTCPCompression(value)
487
+ except ValueError:
488
+ return value
489
+ return value
490
+
491
+ @field_serializer("on_backpressure")
492
+ def serialize_on_backpressure(self, value):
493
+ if isinstance(value, str):
494
+ try:
495
+ return models.OutputCriblTCPBackpressureBehavior(value)
496
+ except ValueError:
497
+ return value
498
+ return value
499
+
500
+ @field_serializer("pq_mode")
501
+ def serialize_pq_mode(self, value):
502
+ if isinstance(value, str):
503
+ try:
504
+ return models.OutputCriblTCPMode(value)
505
+ except ValueError:
506
+ return value
507
+ return value
508
+
509
+ @field_serializer("pq_compress")
510
+ def serialize_pq_compress(self, value):
511
+ if isinstance(value, str):
512
+ try:
513
+ return models.OutputCriblTCPPqCompressCompression(value)
514
+ except ValueError:
515
+ return value
516
+ return value
517
+
518
+ @field_serializer("pq_on_backpressure")
519
+ def serialize_pq_on_backpressure(self, value):
520
+ if isinstance(value, str):
521
+ try:
522
+ return models.OutputCriblTCPQueueFullBehavior(value)
523
+ except ValueError:
524
+ return value
525
+ return value