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,7 +16,7 @@ class OutputWebhookType(str, Enum):
12
16
  WEBHOOK = "webhook"
13
17
 
14
18
 
15
- class OutputWebhookMethod(str, Enum):
19
+ class OutputWebhookMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""The method to use when sending events"""
17
21
 
18
22
  POST = "POST"
@@ -20,12 +24,16 @@ class OutputWebhookMethod(str, Enum):
20
24
  PATCH = "PATCH"
21
25
 
22
26
 
23
- class OutputWebhookFormat(str, Enum):
27
+ class OutputWebhookFormat(str, Enum, metaclass=utils.OpenEnumMeta):
24
28
  r"""How to format events before sending out"""
25
29
 
30
+ # NDJSON (Newline Delimited JSON)
26
31
  NDJSON = "ndjson"
32
+ # JSON Array
27
33
  JSON_ARRAY = "json_array"
34
+ # Custom
28
35
  CUSTOM = "custom"
36
+ # Advanced
29
37
  ADVANCED = "advanced"
30
38
 
31
39
 
@@ -40,11 +48,14 @@ class OutputWebhookExtraHTTPHeader(BaseModel):
40
48
  name: Optional[str] = None
41
49
 
42
50
 
43
- class OutputWebhookFailedRequestLoggingMode(str, Enum):
51
+ class OutputWebhookFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
44
52
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
45
53
 
54
+ # Payload
46
55
  PAYLOAD = "payload"
56
+ # Payload + Headers
47
57
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
58
+ # None
48
59
  NONE = "none"
49
60
 
50
61
 
@@ -102,33 +113,42 @@ class OutputWebhookTimeoutRetrySettings(BaseModel):
102
113
  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)."""
103
114
 
104
115
 
105
- class OutputWebhookBackpressureBehavior(str, Enum):
116
+ class OutputWebhookBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
106
117
  r"""How to handle events when all receivers are exerting backpressure"""
107
118
 
119
+ # Block
108
120
  BLOCK = "block"
121
+ # Drop
109
122
  DROP = "drop"
123
+ # Persistent Queue
110
124
  QUEUE = "queue"
111
125
 
112
126
 
113
- class OutputWebhookAuthenticationType(str, Enum):
127
+ class OutputWebhookAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
114
128
  r"""Authentication method to use for the HTTP request"""
115
129
 
130
+ # None
116
131
  NONE = "none"
132
+ # Basic
117
133
  BASIC = "basic"
134
+ # Basic (credentials secret)
118
135
  CREDENTIALS_SECRET = "credentialsSecret"
136
+ # Token
119
137
  TOKEN = "token"
138
+ # Token (text secret)
120
139
  TEXT_SECRET = "textSecret"
140
+ # OAuth
121
141
  OAUTH = "oauth"
122
142
 
123
143
 
124
- class OutputWebhookMinimumTLSVersion(str, Enum):
144
+ class OutputWebhookMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
125
145
  TL_SV1 = "TLSv1"
126
146
  TL_SV1_1 = "TLSv1.1"
127
147
  TL_SV1_2 = "TLSv1.2"
128
148
  TL_SV1_3 = "TLSv1.3"
129
149
 
130
150
 
131
- class OutputWebhookMaximumTLSVersion(str, Enum):
151
+ class OutputWebhookMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
132
152
  TL_SV1 = "TLSv1"
133
153
  TL_SV1_1 = "TLSv1.1"
134
154
  TL_SV1_2 = "TLSv1.2"
@@ -177,36 +197,69 @@ class OutputWebhookTLSSettingsClientSide(BaseModel):
177
197
  r"""Passphrase to use to decrypt private key"""
178
198
 
179
199
  min_version: Annotated[
180
- Optional[OutputWebhookMinimumTLSVersion], pydantic.Field(alias="minVersion")
200
+ Annotated[
201
+ Optional[OutputWebhookMinimumTLSVersion],
202
+ PlainValidator(validate_open_enum(False)),
203
+ ],
204
+ pydantic.Field(alias="minVersion"),
181
205
  ] = None
182
206
 
183
207
  max_version: Annotated[
184
- Optional[OutputWebhookMaximumTLSVersion], pydantic.Field(alias="maxVersion")
208
+ Annotated[
209
+ Optional[OutputWebhookMaximumTLSVersion],
210
+ PlainValidator(validate_open_enum(False)),
211
+ ],
212
+ pydantic.Field(alias="maxVersion"),
185
213
  ] = None
186
214
 
215
+ @field_serializer("min_version")
216
+ def serialize_min_version(self, value):
217
+ if isinstance(value, str):
218
+ try:
219
+ return models.OutputWebhookMinimumTLSVersion(value)
220
+ except ValueError:
221
+ return value
222
+ return value
223
+
224
+ @field_serializer("max_version")
225
+ def serialize_max_version(self, value):
226
+ if isinstance(value, str):
227
+ try:
228
+ return models.OutputWebhookMaximumTLSVersion(value)
229
+ except ValueError:
230
+ return value
231
+ return value
232
+
233
+
234
+ class OutputWebhookMode(str, Enum, metaclass=utils.OpenEnumMeta):
235
+ 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."""
187
236
 
188
- class OutputWebhookCompression(str, Enum):
237
+ # Error
238
+ ERROR = "error"
239
+ # Backpressure
240
+ ALWAYS = "always"
241
+ # Always On
242
+ BACKPRESSURE = "backpressure"
243
+
244
+
245
+ class OutputWebhookCompression(str, Enum, metaclass=utils.OpenEnumMeta):
189
246
  r"""Codec to use to compress the persisted data"""
190
247
 
248
+ # None
191
249
  NONE = "none"
250
+ # Gzip
192
251
  GZIP = "gzip"
193
252
 
194
253
 
195
- class OutputWebhookQueueFullBehavior(str, Enum):
254
+ class OutputWebhookQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
196
255
  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."""
197
256
 
257
+ # Block
198
258
  BLOCK = "block"
259
+ # Drop new data
199
260
  DROP = "drop"
200
261
 
201
262
 
202
- class OutputWebhookMode(str, Enum):
203
- 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."""
204
-
205
- ERROR = "error"
206
- BACKPRESSURE = "backpressure"
207
- ALWAYS = "always"
208
-
209
-
210
263
  class OutputWebhookPqControlsTypedDict(TypedDict):
211
264
  pass
212
265
 
@@ -336,6 +389,16 @@ class OutputWebhookTypedDict(TypedDict):
336
389
  r"""Custom JavaScript code to format incoming event data accessible through the __e variable. The formatted content is added to (__e['__eventOut']) if available. Otherwise, the original event is serialized as JSON. Caution: This function is evaluated in an unprotected context, allowing you to execute almost any JavaScript code."""
337
390
  format_payload_code: NotRequired[str]
338
391
  r"""Optional JavaScript code to format the payload sent to the Destination. The payload, containing a batch of formatted events, is accessible through the __e['payload'] variable. The formatted payload is returned in the __e['__payloadOut'] variable. Caution: This function is evaluated in an unprotected context, allowing you to execute almost any JavaScript code."""
392
+ pq_strict_ordering: NotRequired[bool]
393
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
394
+ pq_rate_per_sec: NotRequired[float]
395
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
396
+ pq_mode: NotRequired[OutputWebhookMode]
397
+ 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."""
398
+ pq_max_buffer_size: NotRequired[float]
399
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
400
+ pq_max_backpressure_sec: NotRequired[float]
401
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
339
402
  pq_max_file_size: NotRequired[str]
340
403
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
341
404
  pq_max_size: NotRequired[str]
@@ -346,8 +409,6 @@ class OutputWebhookTypedDict(TypedDict):
346
409
  r"""Codec to use to compress the persisted data"""
347
410
  pq_on_backpressure: NotRequired[OutputWebhookQueueFullBehavior]
348
411
  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."""
349
- pq_mode: NotRequired[OutputWebhookMode]
350
- 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."""
351
412
  pq_controls: NotRequired[OutputWebhookPqControlsTypedDict]
352
413
  username: NotRequired[str]
353
414
  password: NotRequired[str]
@@ -404,11 +465,16 @@ class OutputWebhook(BaseModel):
404
465
  streamtags: Optional[List[str]] = None
405
466
  r"""Tags for filtering and grouping in @{product}"""
406
467
 
407
- method: Optional[OutputWebhookMethod] = OutputWebhookMethod.POST
468
+ method: Annotated[
469
+ Optional[OutputWebhookMethod], PlainValidator(validate_open_enum(False))
470
+ ] = OutputWebhookMethod.POST
408
471
  r"""The method to use when sending events"""
409
472
 
410
473
  format_: Annotated[
411
- Optional[OutputWebhookFormat], pydantic.Field(alias="format")
474
+ Annotated[
475
+ Optional[OutputWebhookFormat], PlainValidator(validate_open_enum(False))
476
+ ],
477
+ pydantic.Field(alias="format"),
412
478
  ] = OutputWebhookFormat.NDJSON
413
479
  r"""How to format events before sending out"""
414
480
 
@@ -459,7 +525,10 @@ class OutputWebhook(BaseModel):
459
525
  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."""
460
526
 
461
527
  failed_request_logging_mode: Annotated[
462
- Optional[OutputWebhookFailedRequestLoggingMode],
528
+ Annotated[
529
+ Optional[OutputWebhookFailedRequestLoggingMode],
530
+ PlainValidator(validate_open_enum(False)),
531
+ ],
463
532
  pydantic.Field(alias="failedRequestLoggingMode"),
464
533
  ] = OutputWebhookFailedRequestLoggingMode.NONE
465
534
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -486,13 +555,20 @@ class OutputWebhook(BaseModel):
486
555
  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."""
487
556
 
488
557
  on_backpressure: Annotated[
489
- Optional[OutputWebhookBackpressureBehavior],
558
+ Annotated[
559
+ Optional[OutputWebhookBackpressureBehavior],
560
+ PlainValidator(validate_open_enum(False)),
561
+ ],
490
562
  pydantic.Field(alias="onBackpressure"),
491
563
  ] = OutputWebhookBackpressureBehavior.BLOCK
492
564
  r"""How to handle events when all receivers are exerting backpressure"""
493
565
 
494
566
  auth_type: Annotated[
495
- Optional[OutputWebhookAuthenticationType], pydantic.Field(alias="authType")
567
+ Annotated[
568
+ Optional[OutputWebhookAuthenticationType],
569
+ PlainValidator(validate_open_enum(False)),
570
+ ],
571
+ pydantic.Field(alias="authType"),
496
572
  ] = OutputWebhookAuthenticationType.NONE
497
573
  r"""Authentication method to use for the HTTP request"""
498
574
 
@@ -550,6 +626,34 @@ class OutputWebhook(BaseModel):
550
626
  ] = None
551
627
  r"""Optional JavaScript code to format the payload sent to the Destination. The payload, containing a batch of formatted events, is accessible through the __e['payload'] variable. The formatted payload is returned in the __e['__payloadOut'] variable. Caution: This function is evaluated in an unprotected context, allowing you to execute almost any JavaScript code."""
552
628
 
629
+ pq_strict_ordering: Annotated[
630
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
631
+ ] = True
632
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
633
+
634
+ pq_rate_per_sec: Annotated[
635
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
636
+ ] = 0
637
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
638
+
639
+ pq_mode: Annotated[
640
+ Annotated[
641
+ Optional[OutputWebhookMode], PlainValidator(validate_open_enum(False))
642
+ ],
643
+ pydantic.Field(alias="pqMode"),
644
+ ] = OutputWebhookMode.ERROR
645
+ 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."""
646
+
647
+ pq_max_buffer_size: Annotated[
648
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
649
+ ] = 42
650
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
651
+
652
+ pq_max_backpressure_sec: Annotated[
653
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
654
+ ] = 30
655
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
656
+
553
657
  pq_max_file_size: Annotated[
554
658
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
555
659
  ] = "1 MB"
@@ -564,21 +668,23 @@ class OutputWebhook(BaseModel):
564
668
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
565
669
 
566
670
  pq_compress: Annotated[
567
- Optional[OutputWebhookCompression], pydantic.Field(alias="pqCompress")
671
+ Annotated[
672
+ Optional[OutputWebhookCompression],
673
+ PlainValidator(validate_open_enum(False)),
674
+ ],
675
+ pydantic.Field(alias="pqCompress"),
568
676
  ] = OutputWebhookCompression.NONE
569
677
  r"""Codec to use to compress the persisted data"""
570
678
 
571
679
  pq_on_backpressure: Annotated[
572
- Optional[OutputWebhookQueueFullBehavior],
680
+ Annotated[
681
+ Optional[OutputWebhookQueueFullBehavior],
682
+ PlainValidator(validate_open_enum(False)),
683
+ ],
573
684
  pydantic.Field(alias="pqOnBackpressure"),
574
685
  ] = OutputWebhookQueueFullBehavior.BLOCK
575
686
  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."""
576
687
 
577
- pq_mode: Annotated[Optional[OutputWebhookMode], pydantic.Field(alias="pqMode")] = (
578
- OutputWebhookMode.ERROR
579
- )
580
- 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."""
581
-
582
688
  pq_controls: Annotated[
583
689
  Optional[OutputWebhookPqControls], pydantic.Field(alias="pqControls")
584
690
  ] = None
@@ -651,3 +757,75 @@ class OutputWebhook(BaseModel):
651
757
  Optional[float], pydantic.Field(alias="loadBalanceStatsPeriodSec")
652
758
  ] = 300
653
759
  r"""How far back in time to keep traffic stats for load balancing purposes"""
760
+
761
+ @field_serializer("method")
762
+ def serialize_method(self, value):
763
+ if isinstance(value, str):
764
+ try:
765
+ return models.OutputWebhookMethod(value)
766
+ except ValueError:
767
+ return value
768
+ return value
769
+
770
+ @field_serializer("format_")
771
+ def serialize_format_(self, value):
772
+ if isinstance(value, str):
773
+ try:
774
+ return models.OutputWebhookFormat(value)
775
+ except ValueError:
776
+ return value
777
+ return value
778
+
779
+ @field_serializer("failed_request_logging_mode")
780
+ def serialize_failed_request_logging_mode(self, value):
781
+ if isinstance(value, str):
782
+ try:
783
+ return models.OutputWebhookFailedRequestLoggingMode(value)
784
+ except ValueError:
785
+ return value
786
+ return value
787
+
788
+ @field_serializer("on_backpressure")
789
+ def serialize_on_backpressure(self, value):
790
+ if isinstance(value, str):
791
+ try:
792
+ return models.OutputWebhookBackpressureBehavior(value)
793
+ except ValueError:
794
+ return value
795
+ return value
796
+
797
+ @field_serializer("auth_type")
798
+ def serialize_auth_type(self, value):
799
+ if isinstance(value, str):
800
+ try:
801
+ return models.OutputWebhookAuthenticationType(value)
802
+ except ValueError:
803
+ return value
804
+ return value
805
+
806
+ @field_serializer("pq_mode")
807
+ def serialize_pq_mode(self, value):
808
+ if isinstance(value, str):
809
+ try:
810
+ return models.OutputWebhookMode(value)
811
+ except ValueError:
812
+ return value
813
+ return value
814
+
815
+ @field_serializer("pq_compress")
816
+ def serialize_pq_compress(self, value):
817
+ if isinstance(value, str):
818
+ try:
819
+ return models.OutputWebhookCompression(value)
820
+ except ValueError:
821
+ return value
822
+ return value
823
+
824
+ @field_serializer("pq_on_backpressure")
825
+ def serialize_pq_on_backpressure(self, value):
826
+ if isinstance(value, str):
827
+ try:
828
+ return models.OutputWebhookQueueFullBehavior(value)
829
+ except ValueError:
830
+ return value
831
+ return value