cribl-control-plane 0.0.21__py3-none-any.whl → 0.4.0b23__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.
Files changed (436) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +113 -48
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +225 -0
  4. cribl_control_plane/auth_sdk.py +12 -176
  5. cribl_control_plane/basesdk.py +17 -1
  6. cribl_control_plane/branches.py +351 -0
  7. cribl_control_plane/commits.py +1403 -0
  8. cribl_control_plane/commits_files.py +391 -0
  9. cribl_control_plane/configs_versions.py +201 -0
  10. cribl_control_plane/cribl.py +495 -0
  11. cribl_control_plane/destinations.py +146 -805
  12. cribl_control_plane/destinations_pq.py +379 -0
  13. cribl_control_plane/errors/__init__.py +26 -10
  14. cribl_control_plane/errors/apierror.py +2 -0
  15. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  16. cribl_control_plane/errors/error.py +4 -2
  17. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  18. cribl_control_plane/errors/no_response_error.py +5 -1
  19. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  20. cribl_control_plane/functions.py +367 -0
  21. cribl_control_plane/groups_configs.py +22 -0
  22. cribl_control_plane/groups_sdk.py +333 -578
  23. cribl_control_plane/health.py +38 -18
  24. cribl_control_plane/hectokens.py +503 -0
  25. cribl_control_plane/httpclient.py +0 -1
  26. cribl_control_plane/{lake.py → lakedatasets.py} +207 -115
  27. cribl_control_plane/models/__init__.py +3644 -5986
  28. cribl_control_plane/models/addhectokenrequest.py +7 -1
  29. cribl_control_plane/models/authtoken.py +5 -1
  30. cribl_control_plane/models/backupssettings_union.py +37 -0
  31. cribl_control_plane/models/{lookupversions.py → branchinfo.py} +4 -4
  32. cribl_control_plane/models/cacheconnection.py +30 -2
  33. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  34. cribl_control_plane/models/cloudprovider.py +2 -1
  35. cribl_control_plane/models/collectorazureblob.py +130 -0
  36. cribl_control_plane/models/collectorconf.py +56 -0
  37. cribl_control_plane/models/collectorcribllake.py +27 -0
  38. cribl_control_plane/models/collectordatabase.py +92 -0
  39. cribl_control_plane/models/collectorfilesystem.py +66 -0
  40. cribl_control_plane/models/collectorgooglecloudstorage.py +131 -0
  41. cribl_control_plane/models/collectorhealthcheck.py +269 -0
  42. cribl_control_plane/models/collectorrest.py +340 -0
  43. cribl_control_plane/models/collectors3.py +239 -0
  44. cribl_control_plane/models/collectorscript.py +59 -0
  45. cribl_control_plane/models/collectorsplunk.py +253 -0
  46. cribl_control_plane/models/configgroup.py +67 -11
  47. cribl_control_plane/models/configgroupcloud.py +17 -3
  48. cribl_control_plane/models/countedbranchinfo.py +20 -0
  49. cribl_control_plane/models/countedconfiggroup.py +20 -0
  50. cribl_control_plane/models/countedcribllakedataset.py +20 -0
  51. cribl_control_plane/models/counteddistributedsummary.py +20 -0
  52. cribl_control_plane/models/countedfunctionresponse.py +20 -0
  53. cribl_control_plane/models/countedgitcommitsummary.py +20 -0
  54. cribl_control_plane/models/countedgitcountresult.py +20 -0
  55. cribl_control_plane/models/countedgitdiffresult.py +20 -0
  56. cribl_control_plane/models/countedgitfilesresponse.py +20 -0
  57. cribl_control_plane/models/{getversioninfoop.py → countedgitinfo.py} +2 -6
  58. cribl_control_plane/models/countedgitlogresult.py +20 -0
  59. cribl_control_plane/models/countedgitrevertresult.py +20 -0
  60. cribl_control_plane/models/countedgitshowresult.py +20 -0
  61. cribl_control_plane/models/countedgitstatusresult.py +20 -0
  62. cribl_control_plane/models/{listinputop.py → countedinput.py} +2 -6
  63. cribl_control_plane/models/countedinputsplunkhec.py +20 -0
  64. cribl_control_plane/models/countedjobinfo.py +20 -0
  65. cribl_control_plane/models/countedmasterworkerentry.py +20 -0
  66. cribl_control_plane/models/countednumber.py +19 -0
  67. cribl_control_plane/models/{getversionbranchop.py → countedobject.py} +2 -6
  68. cribl_control_plane/models/{listoutputop.py → countedoutput.py} +2 -6
  69. cribl_control_plane/models/countedoutputsamplesresponse.py +20 -0
  70. cribl_control_plane/models/countedoutputtestresponse.py +20 -0
  71. cribl_control_plane/models/countedpackinfo.py +20 -0
  72. cribl_control_plane/models/{createpacksop.py → countedpackinstallinfo.py} +2 -6
  73. cribl_control_plane/models/{listpipelineop.py → countedpipeline.py} +2 -6
  74. cribl_control_plane/models/{listroutesop.py → countedroutes.py} +2 -6
  75. cribl_control_plane/models/countedstring.py +19 -0
  76. cribl_control_plane/models/countedsystemsettingsconf.py +20 -0
  77. cribl_control_plane/models/countedteamaccesscontrollist.py +20 -0
  78. cribl_control_plane/models/counteduseraccesscontrollist.py +20 -0
  79. cribl_control_plane/models/createauthloginop.py +18 -0
  80. cribl_control_plane/models/createconfiggroupbyproductop.py +46 -0
  81. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +3 -21
  82. cribl_control_plane/models/createinputhectokenbyidop.py +3 -21
  83. cribl_control_plane/models/createoutputtestbyidop.py +3 -22
  84. cribl_control_plane/models/createroutesappendbyidop.py +4 -21
  85. cribl_control_plane/models/createversioncommitop.py +27 -20
  86. cribl_control_plane/models/createversionrevertop.py +7 -23
  87. cribl_control_plane/models/createversionundoop.py +7 -22
  88. cribl_control_plane/models/criblevent.py +15 -0
  89. cribl_control_plane/models/cribllakedataset.py +23 -3
  90. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  91. cribl_control_plane/models/currentbranchresult.py +13 -0
  92. cribl_control_plane/models/datasetmetadata.py +18 -2
  93. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +43 -0
  94. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +5 -24
  95. cribl_control_plane/models/deleteinputbyidop.py +3 -22
  96. cribl_control_plane/models/deleteoutputbyidop.py +3 -22
  97. cribl_control_plane/models/deleteoutputpqbyidop.py +3 -21
  98. cribl_control_plane/models/deletepacksbyidop.py +3 -22
  99. cribl_control_plane/models/deletepipelinebyidop.py +3 -22
  100. cribl_control_plane/models/difffiles.py +130 -0
  101. cribl_control_plane/models/diffline.py +26 -0
  102. cribl_control_plane/models/difflinecontext.py +28 -0
  103. cribl_control_plane/models/difflinedelete.py +25 -0
  104. cribl_control_plane/models/difflineinsert.py +25 -0
  105. cribl_control_plane/models/distributedsummary.py +6 -0
  106. cribl_control_plane/models/functionaggregatemetrics.py +206 -0
  107. cribl_control_plane/models/functionaggregation.py +172 -0
  108. cribl_control_plane/models/functionautotimestamp.py +173 -0
  109. cribl_control_plane/models/functioncef.py +111 -0
  110. cribl_control_plane/models/functionchain.py +75 -0
  111. cribl_control_plane/models/functionclone.py +75 -0
  112. cribl_control_plane/models/functioncode.py +96 -0
  113. cribl_control_plane/models/functioncomment.py +75 -0
  114. cribl_control_plane/models/functiondistinct.py +99 -0
  115. cribl_control_plane/models/functiondnslookup.py +250 -0
  116. cribl_control_plane/models/functiondrop.py +73 -0
  117. cribl_control_plane/models/functiondropdimensions.py +87 -0
  118. cribl_control_plane/models/functiondynamicsampling.py +121 -0
  119. cribl_control_plane/models/functioneval.py +103 -0
  120. cribl_control_plane/models/functioneventbreaker.py +103 -0
  121. cribl_control_plane/models/functioneventstats.py +92 -0
  122. cribl_control_plane/models/functionexternaldata.py +73 -0
  123. cribl_control_plane/models/functionflatten.py +90 -0
  124. cribl_control_plane/models/functionfoldkeys.py +89 -0
  125. cribl_control_plane/models/functiongenstats.py +73 -0
  126. cribl_control_plane/models/functiongeoip.py +120 -0
  127. cribl_control_plane/models/functiongrok.py +95 -0
  128. cribl_control_plane/models/functionhandlebar.py +112 -0
  129. cribl_control_plane/models/functionjoin.py +112 -0
  130. cribl_control_plane/models/functionjsonunroll.py +80 -0
  131. cribl_control_plane/models/functionlakeexport.py +102 -0
  132. cribl_control_plane/models/functionlimit.py +75 -0
  133. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
  134. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
  135. cribl_control_plane/models/functionlookup.py +148 -0
  136. cribl_control_plane/models/functionmask.py +121 -0
  137. cribl_control_plane/models/functionmvexpand.py +128 -0
  138. cribl_control_plane/models/functionmvpull.py +99 -0
  139. cribl_control_plane/models/functionnotificationpolicies.py +186 -0
  140. cribl_control_plane/models/functionnotifications.py +85 -0
  141. cribl_control_plane/models/functionnotify.py +196 -0
  142. cribl_control_plane/models/functionnumerify.py +119 -0
  143. cribl_control_plane/models/functionotlplogs.py +82 -0
  144. cribl_control_plane/models/functionotlpmetrics.py +118 -0
  145. cribl_control_plane/models/functionotlptraces.py +111 -0
  146. cribl_control_plane/models/functionpack.py +80 -0
  147. cribl_control_plane/models/functionpivot.py +85 -0
  148. cribl_control_plane/models/functionpublishmetrics.py +153 -0
  149. cribl_control_plane/models/functionredis.py +173 -0
  150. cribl_control_plane/models/functionregexextract.py +112 -0
  151. cribl_control_plane/models/functionregexfilter.py +95 -0
  152. cribl_control_plane/models/functionrename.py +107 -0
  153. cribl_control_plane/models/functionresponse.py +242 -0
  154. cribl_control_plane/models/functionrollupmetrics.py +114 -0
  155. cribl_control_plane/models/functionsampling.py +90 -0
  156. cribl_control_plane/models/functionsend.py +141 -0
  157. cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
  158. cribl_control_plane/models/functionserde.py +161 -0
  159. cribl_control_plane/models/functionserialize.py +134 -0
  160. cribl_control_plane/models/functionsidlookup.py +93 -0
  161. cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
  162. cribl_control_plane/models/functionsort.py +97 -0
  163. cribl_control_plane/models/functionstore.py +132 -0
  164. cribl_control_plane/models/functionsuppress.py +115 -0
  165. cribl_control_plane/models/functiontee.py +90 -0
  166. cribl_control_plane/models/functiontrimtimestamp.py +75 -0
  167. cribl_control_plane/models/functionunion.py +80 -0
  168. cribl_control_plane/models/functionunroll.py +80 -0
  169. cribl_control_plane/models/functionwindow.py +96 -0
  170. cribl_control_plane/models/functionxmlunroll.py +92 -0
  171. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +63 -0
  172. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +63 -0
  173. cribl_control_plane/models/getconfiggroupbyproductandidop.py +53 -0
  174. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +43 -0
  175. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +5 -24
  176. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +56 -16
  177. cribl_control_plane/models/getfunctionsbyidop.py +18 -0
  178. cribl_control_plane/models/getinputbyidop.py +3 -22
  179. cribl_control_plane/models/getmasterworkerentryop.py +22 -0
  180. cribl_control_plane/models/getoutputbyidop.py +3 -22
  181. cribl_control_plane/models/getoutputpqbyidop.py +3 -21
  182. cribl_control_plane/models/getoutputsamplesbyidop.py +3 -22
  183. cribl_control_plane/models/getpacksbyidop.py +18 -0
  184. cribl_control_plane/models/getpacksop.py +3 -21
  185. cribl_control_plane/models/getpipelinebyidop.py +3 -22
  186. cribl_control_plane/models/getroutesbyidop.py +3 -22
  187. cribl_control_plane/models/getsummaryop.py +23 -32
  188. cribl_control_plane/models/getversioncountop.py +10 -27
  189. cribl_control_plane/models/getversiondiffop.py +12 -28
  190. cribl_control_plane/models/getversionfilesop.py +10 -28
  191. cribl_control_plane/models/getversionop.py +30 -0
  192. cribl_control_plane/models/getversionshowop.py +12 -28
  193. cribl_control_plane/models/getversionstatusop.py +7 -23
  194. cribl_control_plane/models/gitcommitsummary.py +3 -3
  195. cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
  196. cribl_control_plane/models/gitdiffresult.py +16 -0
  197. cribl_control_plane/models/gitfilesresponse.py +7 -5
  198. cribl_control_plane/models/gitinfo.py +14 -3
  199. cribl_control_plane/models/gitlogresult.py +33 -0
  200. cribl_control_plane/models/gitrevertparams.py +3 -3
  201. cribl_control_plane/models/gitrevertresult.py +5 -5
  202. cribl_control_plane/models/gitshowresult.py +19 -0
  203. cribl_control_plane/models/gitstatusresult.py +0 -3
  204. cribl_control_plane/models/groupcreaterequest.py +172 -0
  205. cribl_control_plane/models/hbcriblinfo.py +42 -7
  206. cribl_control_plane/models/healthserverstatus.py +55 -0
  207. cribl_control_plane/models/heartbeatmetadata.py +6 -11
  208. cribl_control_plane/models/input.py +89 -81
  209. cribl_control_plane/models/inputappscope.py +131 -35
  210. cribl_control_plane/models/inputazureblob.py +62 -6
  211. cribl_control_plane/models/inputcloudflarehec.py +518 -0
  212. cribl_control_plane/models/inputcollection.py +49 -6
  213. cribl_control_plane/models/inputconfluentcloud.py +262 -22
  214. cribl_control_plane/models/inputcribl.py +52 -9
  215. cribl_control_plane/models/inputcriblhttp.py +124 -33
  216. cribl_control_plane/models/inputcribllakehttp.py +199 -29
  217. cribl_control_plane/models/inputcriblmetrics.py +53 -9
  218. cribl_control_plane/models/inputcribltcp.py +125 -27
  219. cribl_control_plane/models/inputcrowdstrike.py +99 -10
  220. cribl_control_plane/models/inputdatadogagent.py +101 -27
  221. cribl_control_plane/models/inputdatagen.py +47 -4
  222. cribl_control_plane/models/inputedgeprometheus.py +215 -58
  223. cribl_control_plane/models/inputelastic.py +170 -39
  224. cribl_control_plane/models/inputeventhub.py +212 -9
  225. cribl_control_plane/models/inputexec.py +59 -6
  226. cribl_control_plane/models/inputfile.py +83 -15
  227. cribl_control_plane/models/inputfirehose.py +100 -27
  228. cribl_control_plane/models/inputgooglepubsub.py +83 -15
  229. cribl_control_plane/models/{inputgrafana_union.py → inputgrafana.py} +261 -67
  230. cribl_control_plane/models/inputhttp.py +100 -27
  231. cribl_control_plane/models/inputhttpraw.py +100 -27
  232. cribl_control_plane/models/inputjournalfiles.py +51 -7
  233. cribl_control_plane/models/inputkafka.py +257 -19
  234. cribl_control_plane/models/inputkinesis.py +133 -17
  235. cribl_control_plane/models/inputkubeevents.py +52 -9
  236. cribl_control_plane/models/inputkubelogs.py +66 -13
  237. cribl_control_plane/models/inputkubemetrics.py +66 -13
  238. cribl_control_plane/models/inputloki.py +116 -30
  239. cribl_control_plane/models/inputmetrics.py +97 -24
  240. cribl_control_plane/models/inputmodeldriventelemetry.py +110 -29
  241. cribl_control_plane/models/inputmsk.py +148 -21
  242. cribl_control_plane/models/inputnetflow.py +50 -7
  243. cribl_control_plane/models/inputoffice365mgmt.py +115 -17
  244. cribl_control_plane/models/inputoffice365msgtrace.py +117 -19
  245. cribl_control_plane/models/inputoffice365service.py +117 -19
  246. cribl_control_plane/models/inputopentelemetry.py +146 -35
  247. cribl_control_plane/models/inputprometheus.py +196 -47
  248. cribl_control_plane/models/inputprometheusrw.py +117 -30
  249. cribl_control_plane/models/inputrawudp.py +50 -7
  250. cribl_control_plane/models/inputs3.py +85 -8
  251. cribl_control_plane/models/inputs3inventory.py +99 -10
  252. cribl_control_plane/models/inputsecuritylake.py +100 -10
  253. cribl_control_plane/models/inputsnmp.py +115 -24
  254. cribl_control_plane/models/inputsplunk.py +133 -31
  255. cribl_control_plane/models/inputsplunkhec.py +122 -32
  256. cribl_control_plane/models/inputsplunksearch.py +115 -18
  257. cribl_control_plane/models/inputsqs.py +102 -19
  258. cribl_control_plane/models/{inputsyslog_union.py → inputsyslog.py} +193 -51
  259. cribl_control_plane/models/inputsystemmetrics.py +207 -37
  260. cribl_control_plane/models/inputsystemstate.py +66 -13
  261. cribl_control_plane/models/inputtcp.py +125 -29
  262. cribl_control_plane/models/inputtcpjson.py +115 -29
  263. cribl_control_plane/models/inputwef.py +151 -22
  264. cribl_control_plane/models/inputwindowsmetrics.py +191 -38
  265. cribl_control_plane/models/inputwineventlogs.py +93 -11
  266. cribl_control_plane/models/inputwiz.py +176 -11
  267. cribl_control_plane/models/inputwizwebhook.py +466 -0
  268. cribl_control_plane/models/inputzscalerhec.py +122 -32
  269. cribl_control_plane/models/jobinfo.py +34 -0
  270. cribl_control_plane/models/jobstatus.py +48 -0
  271. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  272. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  273. cribl_control_plane/models/listconfiggroupbyproductop.py +46 -0
  274. cribl_control_plane/models/listmasterworkerentryop.py +64 -0
  275. cribl_control_plane/models/logininfo.py +3 -3
  276. cribl_control_plane/models/masterworkerentry.py +20 -13
  277. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  278. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  279. cribl_control_plane/models/nodeprovidedinfo.py +13 -11
  280. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  281. cribl_control_plane/models/nodeupgradestate.py +2 -1
  282. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  283. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  284. cribl_control_plane/models/output.py +103 -89
  285. cribl_control_plane/models/outputazureblob.py +174 -21
  286. cribl_control_plane/models/outputazuredataexplorer.py +517 -93
  287. cribl_control_plane/models/outputazureeventhub.py +318 -34
  288. cribl_control_plane/models/outputazurelogs.py +145 -26
  289. cribl_control_plane/models/outputchronicle.py +532 -0
  290. cribl_control_plane/models/outputclickhouse.py +208 -37
  291. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  292. cribl_control_plane/models/outputcloudwatch.py +132 -26
  293. cribl_control_plane/models/outputconfluentcloud.py +387 -46
  294. cribl_control_plane/models/outputcriblhttp.py +203 -36
  295. cribl_control_plane/models/outputcribllake.py +161 -21
  296. cribl_control_plane/models/outputcribltcp.py +199 -34
  297. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +176 -32
  298. cribl_control_plane/models/outputdatabricks.py +501 -0
  299. cribl_control_plane/models/outputdatadog.py +204 -36
  300. cribl_control_plane/models/outputdataset.py +186 -34
  301. cribl_control_plane/models/outputdevnull.py +5 -5
  302. cribl_control_plane/models/outputdiskspool.py +22 -7
  303. cribl_control_plane/models/outputdls3.py +238 -29
  304. cribl_control_plane/models/outputdynatracehttp.py +211 -37
  305. cribl_control_plane/models/outputdynatraceotlp.py +213 -39
  306. cribl_control_plane/models/outputelastic.py +199 -30
  307. cribl_control_plane/models/outputelasticcloud.py +174 -29
  308. cribl_control_plane/models/outputexabeam.py +99 -13
  309. cribl_control_plane/models/outputfilesystem.py +139 -14
  310. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  311. cribl_control_plane/models/outputgooglecloudlogging.py +177 -34
  312. cribl_control_plane/models/outputgooglecloudstorage.py +220 -29
  313. cribl_control_plane/models/outputgooglepubsub.py +138 -51
  314. cribl_control_plane/models/outputgrafanacloud.py +386 -70
  315. cribl_control_plane/models/outputgraphite.py +131 -28
  316. cribl_control_plane/models/outputhoneycomb.py +145 -26
  317. cribl_control_plane/models/outputhumiohec.py +165 -31
  318. cribl_control_plane/models/outputinfluxdb.py +165 -28
  319. cribl_control_plane/models/outputkafka.py +378 -41
  320. cribl_control_plane/models/outputkinesis.py +168 -30
  321. cribl_control_plane/models/outputloki.py +171 -27
  322. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  323. cribl_control_plane/models/outputminio.py +228 -28
  324. cribl_control_plane/models/outputmsk.py +270 -43
  325. cribl_control_plane/models/outputnewrelic.py +176 -34
  326. cribl_control_plane/models/outputnewrelicevents.py +166 -31
  327. cribl_control_plane/models/outputopentelemetry.py +240 -40
  328. cribl_control_plane/models/outputprometheus.py +145 -26
  329. cribl_control_plane/models/outputring.py +54 -13
  330. cribl_control_plane/models/outputs3.py +238 -31
  331. cribl_control_plane/models/outputsecuritylake.py +182 -21
  332. cribl_control_plane/models/outputsentinel.py +175 -32
  333. cribl_control_plane/models/outputsentineloneaisiem.py +184 -38
  334. cribl_control_plane/models/outputservicenow.py +226 -41
  335. cribl_control_plane/models/outputsignalfx.py +145 -26
  336. cribl_control_plane/models/outputsns.py +146 -28
  337. cribl_control_plane/models/outputsplunk.py +209 -39
  338. cribl_control_plane/models/outputsplunkhec.py +243 -31
  339. cribl_control_plane/models/outputsplunklb.py +266 -46
  340. cribl_control_plane/models/outputsqs.py +166 -36
  341. cribl_control_plane/models/outputstatsd.py +130 -28
  342. cribl_control_plane/models/outputstatsdext.py +131 -28
  343. cribl_control_plane/models/outputsumologic.py +146 -25
  344. cribl_control_plane/models/outputsyslog.py +323 -51
  345. cribl_control_plane/models/outputtcpjson.py +191 -37
  346. cribl_control_plane/models/outputwavefront.py +145 -26
  347. cribl_control_plane/models/outputwebhook.py +216 -38
  348. cribl_control_plane/models/outputxsiam.py +148 -31
  349. cribl_control_plane/models/packinfo.py +11 -8
  350. cribl_control_plane/models/packinstallinfo.py +14 -11
  351. cribl_control_plane/models/packrequestbody_union.py +140 -0
  352. cribl_control_plane/models/packupgraderequest.py +26 -0
  353. cribl_control_plane/models/piisettings_union.py +31 -0
  354. cribl_control_plane/models/productscore.py +10 -0
  355. cribl_control_plane/models/rbacresource.py +2 -1
  356. cribl_control_plane/models/resourcepolicy.py +15 -2
  357. cribl_control_plane/models/rollbacksettings_union.py +44 -0
  358. cribl_control_plane/models/routeconf.py +3 -4
  359. cribl_control_plane/models/routes.py +0 -24
  360. cribl_control_plane/models/runnablejob.py +27 -0
  361. cribl_control_plane/models/runnablejobcollection.py +628 -0
  362. cribl_control_plane/models/runnablejobexecutor.py +360 -0
  363. cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
  364. cribl_control_plane/models/schemeclientoauth.py +5 -0
  365. cribl_control_plane/models/snisettings_union.py +31 -0
  366. cribl_control_plane/models/systemsettingsconf.py +291 -0
  367. cribl_control_plane/models/tlssettings_union.py +43 -0
  368. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +56 -0
  369. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +53 -0
  370. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +14 -29
  371. cribl_control_plane/models/updatehectokenrequest.py +7 -1
  372. cribl_control_plane/models/updateinputbyidop.py +5 -23
  373. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +5 -23
  374. cribl_control_plane/models/updateoutputbyidop.py +5 -23
  375. cribl_control_plane/models/updatepacksbyidop.py +12 -50
  376. cribl_control_plane/models/updatepacksop.py +12 -24
  377. cribl_control_plane/models/updatepipelinebyidop.py +5 -23
  378. cribl_control_plane/models/updateroutesbyidop.py +8 -27
  379. cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
  380. cribl_control_plane/models/upgradepackageurls.py +20 -0
  381. cribl_control_plane/models/upgradesettings.py +38 -0
  382. cribl_control_plane/models/uploadpackresponse.py +13 -0
  383. cribl_control_plane/models/{appmode.py → workertypes.py} +2 -5
  384. cribl_control_plane/{workers_sdk.py → nodes.py} +102 -234
  385. cribl_control_plane/packs.py +385 -184
  386. cribl_control_plane/pipelines.py +116 -66
  387. cribl_control_plane/routes_sdk.py +102 -70
  388. cribl_control_plane/samples.py +407 -0
  389. cribl_control_plane/sdk.py +35 -25
  390. cribl_control_plane/settings.py +20 -0
  391. cribl_control_plane/sources.py +143 -545
  392. cribl_control_plane/statuses.py +195 -0
  393. cribl_control_plane/summaries.py +195 -0
  394. cribl_control_plane/system_sdk.py +20 -0
  395. cribl_control_plane/teams.py +36 -28
  396. cribl_control_plane/tokens.py +210 -0
  397. cribl_control_plane/utils/__init__.py +18 -5
  398. cribl_control_plane/utils/annotations.py +32 -8
  399. cribl_control_plane/utils/eventstreaming.py +10 -0
  400. cribl_control_plane/utils/forms.py +21 -10
  401. cribl_control_plane/utils/queryparams.py +14 -2
  402. cribl_control_plane/utils/retries.py +69 -5
  403. cribl_control_plane/utils/security.py +5 -0
  404. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  405. cribl_control_plane/versions.py +31 -0
  406. cribl_control_plane/{distributed.py → versions_configs.py} +29 -35
  407. cribl_control_plane-0.4.0b23.dist-info/METADATA +855 -0
  408. cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
  409. {cribl_control_plane-0.0.21.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
  410. cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
  411. cribl_control_plane/errors/healthstatus_error.py +0 -32
  412. cribl_control_plane/models/createinputop.py +0 -18238
  413. cribl_control_plane/models/createoutputop.py +0 -18437
  414. cribl_control_plane/models/createpipelineop.py +0 -24
  415. cribl_control_plane/models/createproductsgroupsbyproductop.py +0 -54
  416. cribl_control_plane/models/createversionpushop.py +0 -23
  417. cribl_control_plane/models/createversionsyncop.py +0 -23
  418. cribl_control_plane/models/deletegroupsbyidop.py +0 -37
  419. cribl_control_plane/models/getgroupsaclbyidop.py +0 -63
  420. cribl_control_plane/models/getgroupsbyidop.py +0 -49
  421. cribl_control_plane/models/getgroupsconfigversionbyidop.py +0 -36
  422. cribl_control_plane/models/getproductsgroupsaclteamsbyproductandidop.py +0 -78
  423. cribl_control_plane/models/getproductsgroupsbyproductop.py +0 -58
  424. cribl_control_plane/models/getsummaryworkersop.py +0 -39
  425. cribl_control_plane/models/getversioncurrentbranchop.py +0 -23
  426. cribl_control_plane/models/getworkersop.py +0 -82
  427. cribl_control_plane/models/healthstatus.py +0 -33
  428. cribl_control_plane/models/packrequestbody.py +0 -75
  429. cribl_control_plane/models/restartresponse.py +0 -26
  430. cribl_control_plane/models/routesroute_input.py +0 -67
  431. cribl_control_plane/models/updategroupsbyidop.py +0 -48
  432. cribl_control_plane/models/updategroupsdeploybyidop.py +0 -46
  433. cribl_control_plane/models/updateworkersrestartop.py +0 -24
  434. cribl_control_plane/versioning.py +0 -2309
  435. cribl_control_plane-0.0.21.dist-info/METADATA +0 -561
  436. cribl_control_plane-0.0.21.dist-info/RECORD +0 -301
@@ -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,14 +16,16 @@ class OutputSyslogType(str, Enum):
12
16
  SYSLOG = "syslog"
13
17
 
14
18
 
15
- class OutputSyslogProtocol(str, Enum):
19
+ class OutputSyslogProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""The network protocol to use for sending out syslog messages"""
17
21
 
22
+ # TCP
18
23
  TCP = "tcp"
24
+ # UDP
19
25
  UDP = "udp"
20
26
 
21
27
 
22
- class Facility(int, Enum):
28
+ class Facility(int, Enum, metaclass=utils.OpenEnumMeta):
23
29
  r"""Default value for message facility. Will be overwritten by value of __facility if set. Defaults to user."""
24
30
 
25
31
  ZERO = 0
@@ -46,41 +52,101 @@ class Facility(int, Enum):
46
52
  TWENTY_ONE = 21
47
53
 
48
54
 
49
- class OutputSyslogSeverity(int, Enum):
55
+ class OutputSyslogSeverity(int, Enum, metaclass=utils.OpenEnumMeta):
50
56
  r"""Default value for message severity. Will be overwritten by value of __severity if set. Defaults to notice."""
51
57
 
58
+ # emergency
52
59
  ZERO = 0
60
+ # alert
53
61
  ONE = 1
62
+ # critical
54
63
  TWO = 2
64
+ # error
55
65
  THREE = 3
66
+ # warning
56
67
  FOUR = 4
68
+ # notice
57
69
  FIVE = 5
70
+ # info
58
71
  SIX = 6
72
+ # debug
59
73
  SEVEN = 7
60
74
 
61
75
 
62
- class OutputSyslogMessageFormat(str, Enum):
76
+ class OutputSyslogMessageFormat(str, Enum, metaclass=utils.OpenEnumMeta):
63
77
  r"""The syslog message format depending on the receiver's support"""
64
78
 
79
+ # RFC3164
65
80
  RFC3164 = "rfc3164"
81
+ # RFC5424
66
82
  RFC5424 = "rfc5424"
67
83
 
68
84
 
69
- class TimestampFormat(str, Enum):
85
+ class TimestampFormat(str, Enum, metaclass=utils.OpenEnumMeta):
70
86
  r"""Timestamp format to use when serializing event's time field"""
71
87
 
88
+ # Syslog
72
89
  SYSLOG = "syslog"
90
+ # ISO8601
73
91
  ISO8601 = "iso8601"
74
92
 
75
93
 
76
- class OutputSyslogMinimumTLSVersion(str, Enum):
94
+ class OutputSyslogTLS(str, Enum, metaclass=utils.OpenEnumMeta):
95
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
96
+
97
+ INHERIT = "inherit"
98
+ OFF = "off"
99
+
100
+
101
+ class OutputSyslogHostTypedDict(TypedDict):
102
+ host: str
103
+ r"""The hostname of the receiver"""
104
+ port: float
105
+ r"""The port to connect to on the provided host"""
106
+ tls: NotRequired[OutputSyslogTLS]
107
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
108
+ servername: NotRequired[str]
109
+ r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
110
+ weight: NotRequired[float]
111
+ r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
112
+
113
+
114
+ class OutputSyslogHost(BaseModel):
115
+ host: str
116
+ r"""The hostname of the receiver"""
117
+
118
+ port: float
119
+ r"""The port to connect to on the provided host"""
120
+
121
+ tls: Annotated[
122
+ Optional[OutputSyslogTLS], PlainValidator(validate_open_enum(False))
123
+ ] = OutputSyslogTLS.INHERIT
124
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
125
+
126
+ servername: Optional[str] = None
127
+ r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
128
+
129
+ weight: Optional[float] = 1
130
+ r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
131
+
132
+ @field_serializer("tls")
133
+ def serialize_tls(self, value):
134
+ if isinstance(value, str):
135
+ try:
136
+ return models.OutputSyslogTLS(value)
137
+ except ValueError:
138
+ return value
139
+ return value
140
+
141
+
142
+ class OutputSyslogMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
77
143
  TL_SV1 = "TLSv1"
78
144
  TL_SV1_1 = "TLSv1.1"
79
145
  TL_SV1_2 = "TLSv1.2"
80
146
  TL_SV1_3 = "TLSv1.3"
81
147
 
82
148
 
83
- class OutputSyslogMaximumTLSVersion(str, Enum):
149
+ class OutputSyslogMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
84
150
  TL_SV1 = "TLSv1"
85
151
  TL_SV1_1 = "TLSv1.1"
86
152
  TL_SV1_2 = "TLSv1.2"
@@ -140,44 +206,80 @@ class OutputSyslogTLSSettingsClientSide(BaseModel):
140
206
  r"""Passphrase to use to decrypt private key"""
141
207
 
142
208
  min_version: Annotated[
143
- Optional[OutputSyslogMinimumTLSVersion], pydantic.Field(alias="minVersion")
209
+ Annotated[
210
+ Optional[OutputSyslogMinimumTLSVersion],
211
+ PlainValidator(validate_open_enum(False)),
212
+ ],
213
+ pydantic.Field(alias="minVersion"),
144
214
  ] = None
145
215
 
146
216
  max_version: Annotated[
147
- Optional[OutputSyslogMaximumTLSVersion], pydantic.Field(alias="maxVersion")
217
+ Annotated[
218
+ Optional[OutputSyslogMaximumTLSVersion],
219
+ PlainValidator(validate_open_enum(False)),
220
+ ],
221
+ pydantic.Field(alias="maxVersion"),
148
222
  ] = None
149
223
 
150
-
151
- class OutputSyslogBackpressureBehavior(str, Enum):
224
+ @field_serializer("min_version")
225
+ def serialize_min_version(self, value):
226
+ if isinstance(value, str):
227
+ try:
228
+ return models.OutputSyslogMinimumTLSVersion(value)
229
+ except ValueError:
230
+ return value
231
+ return value
232
+
233
+ @field_serializer("max_version")
234
+ def serialize_max_version(self, value):
235
+ if isinstance(value, str):
236
+ try:
237
+ return models.OutputSyslogMaximumTLSVersion(value)
238
+ except ValueError:
239
+ return value
240
+ return value
241
+
242
+
243
+ class OutputSyslogBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
152
244
  r"""How to handle events when all receivers are exerting backpressure"""
153
245
 
246
+ # Block
154
247
  BLOCK = "block"
248
+ # Drop
155
249
  DROP = "drop"
250
+ # Persistent Queue
156
251
  QUEUE = "queue"
157
252
 
158
253
 
159
- class OutputSyslogCompression(str, Enum):
254
+ class OutputSyslogMode(str, Enum, metaclass=utils.OpenEnumMeta):
255
+ 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."""
256
+
257
+ # Error
258
+ ERROR = "error"
259
+ # Backpressure
260
+ ALWAYS = "always"
261
+ # Always On
262
+ BACKPRESSURE = "backpressure"
263
+
264
+
265
+ class OutputSyslogCompression(str, Enum, metaclass=utils.OpenEnumMeta):
160
266
  r"""Codec to use to compress the persisted data"""
161
267
 
268
+ # None
162
269
  NONE = "none"
270
+ # Gzip
163
271
  GZIP = "gzip"
164
272
 
165
273
 
166
- class OutputSyslogQueueFullBehavior(str, Enum):
274
+ class OutputSyslogQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
167
275
  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."""
168
276
 
277
+ # Block
169
278
  BLOCK = "block"
279
+ # Drop new data
170
280
  DROP = "drop"
171
281
 
172
282
 
173
- class OutputSyslogMode(str, Enum):
174
- 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."""
175
-
176
- ERROR = "error"
177
- BACKPRESSURE = "backpressure"
178
- ALWAYS = "always"
179
-
180
-
181
283
  class OutputSyslogPqControlsTypedDict(TypedDict):
182
284
  pass
183
285
 
@@ -187,9 +289,9 @@ class OutputSyslogPqControls(BaseModel):
187
289
 
188
290
 
189
291
  class OutputSyslogTypedDict(TypedDict):
190
- id: str
191
- r"""Unique ID for this output"""
192
292
  type: OutputSyslogType
293
+ id: NotRequired[str]
294
+ r"""Unique ID for this output"""
193
295
  pipeline: NotRequired[str]
194
296
  r"""Pipeline to process data before sending out to this output"""
195
297
  system_fields: NotRequired[List[str]]
@@ -219,6 +321,20 @@ class OutputSyslogTypedDict(TypedDict):
219
321
  description: NotRequired[str]
220
322
  load_balanced: NotRequired[bool]
221
323
  r"""For optimal performance, enable load balancing even if you have one hostname, as it can expand to multiple IPs. If this setting is disabled, consider enabling round-robin DNS."""
324
+ host: NotRequired[str]
325
+ r"""The hostname of the receiver"""
326
+ port: NotRequired[float]
327
+ r"""The port to connect to on the provided host"""
328
+ exclude_self: NotRequired[bool]
329
+ r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
330
+ hosts: NotRequired[List[OutputSyslogHostTypedDict]]
331
+ r"""Set of hosts to load-balance data to"""
332
+ dns_resolve_period_sec: NotRequired[float]
333
+ r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
334
+ load_balance_stats_period_sec: NotRequired[float]
335
+ r"""How far back in time to keep traffic stats for load balancing purposes"""
336
+ max_concurrent_senders: NotRequired[float]
337
+ 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."""
222
338
  connection_timeout: NotRequired[float]
223
339
  r"""Amount of time (milliseconds) to wait for the connection to establish before retrying"""
224
340
  write_timeout: NotRequired[float]
@@ -226,14 +342,22 @@ class OutputSyslogTypedDict(TypedDict):
226
342
  tls: NotRequired[OutputSyslogTLSSettingsClientSideTypedDict]
227
343
  on_backpressure: NotRequired[OutputSyslogBackpressureBehavior]
228
344
  r"""How to handle events when all receivers are exerting backpressure"""
229
- host: NotRequired[str]
230
- r"""The hostname of the receiver"""
231
- port: NotRequired[float]
232
- r"""The port to connect to on the provided host"""
233
345
  max_record_size: NotRequired[float]
234
346
  r"""Maximum size of syslog messages. Make sure this value is less than or equal to the MTU to avoid UDP packet fragmentation."""
235
347
  udp_dns_resolve_period_sec: NotRequired[float]
236
348
  r"""How often to resolve the destination hostname to an IP address. Ignored if the destination is an IP address. A value of 0 means every message sent will incur a DNS lookup."""
349
+ enable_ip_spoofing: NotRequired[bool]
350
+ r"""Send Syslog traffic using the original event's Source IP and port. To enable this, you must install the external `udp-sender` helper binary at `/usr/bin/udp-sender` on all Worker Nodes and grant it the `CAP_NET_RAW` capability."""
351
+ pq_strict_ordering: NotRequired[bool]
352
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
353
+ pq_rate_per_sec: NotRequired[float]
354
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
355
+ pq_mode: NotRequired[OutputSyslogMode]
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
+ pq_max_buffer_size: NotRequired[float]
358
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
359
+ pq_max_backpressure_sec: NotRequired[float]
360
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
237
361
  pq_max_file_size: NotRequired[str]
238
362
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
239
363
  pq_max_size: NotRequired[str]
@@ -244,17 +368,15 @@ class OutputSyslogTypedDict(TypedDict):
244
368
  r"""Codec to use to compress the persisted data"""
245
369
  pq_on_backpressure: NotRequired[OutputSyslogQueueFullBehavior]
246
370
  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."""
247
- pq_mode: NotRequired[OutputSyslogMode]
248
- 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."""
249
371
  pq_controls: NotRequired[OutputSyslogPqControlsTypedDict]
250
372
 
251
373
 
252
374
  class OutputSyslog(BaseModel):
253
- id: str
254
- r"""Unique ID for this output"""
255
-
256
375
  type: OutputSyslogType
257
376
 
377
+ id: Optional[str] = None
378
+ r"""Unique ID for this output"""
379
+
258
380
  pipeline: Optional[str] = None
259
381
  r"""Pipeline to process data before sending out to this output"""
260
382
 
@@ -269,25 +391,36 @@ class OutputSyslog(BaseModel):
269
391
  streamtags: Optional[List[str]] = None
270
392
  r"""Tags for filtering and grouping in @{product}"""
271
393
 
272
- protocol: Optional[OutputSyslogProtocol] = OutputSyslogProtocol.TCP
394
+ protocol: Annotated[
395
+ Optional[OutputSyslogProtocol], PlainValidator(validate_open_enum(False))
396
+ ] = OutputSyslogProtocol.TCP
273
397
  r"""The network protocol to use for sending out syslog messages"""
274
398
 
275
- facility: Optional[Facility] = Facility.ONE
399
+ facility: Annotated[
400
+ Optional[Facility], PlainValidator(validate_open_enum(True))
401
+ ] = Facility.ONE
276
402
  r"""Default value for message facility. Will be overwritten by value of __facility if set. Defaults to user."""
277
403
 
278
- severity: Optional[OutputSyslogSeverity] = OutputSyslogSeverity.FIVE
404
+ severity: Annotated[
405
+ Optional[OutputSyslogSeverity], PlainValidator(validate_open_enum(True))
406
+ ] = OutputSyslogSeverity.FIVE
279
407
  r"""Default value for message severity. Will be overwritten by value of __severity if set. Defaults to notice."""
280
408
 
281
409
  app_name: Annotated[Optional[str], pydantic.Field(alias="appName")] = "Cribl"
282
410
  r"""Default name for device or application that originated the message. Defaults to Cribl, but will be overwritten by value of __appname if set."""
283
411
 
284
412
  message_format: Annotated[
285
- Optional[OutputSyslogMessageFormat], pydantic.Field(alias="messageFormat")
413
+ Annotated[
414
+ Optional[OutputSyslogMessageFormat],
415
+ PlainValidator(validate_open_enum(False)),
416
+ ],
417
+ pydantic.Field(alias="messageFormat"),
286
418
  ] = OutputSyslogMessageFormat.RFC3164
287
419
  r"""The syslog message format depending on the receiver's support"""
288
420
 
289
421
  timestamp_format: Annotated[
290
- Optional[TimestampFormat], pydantic.Field(alias="timestampFormat")
422
+ Annotated[Optional[TimestampFormat], PlainValidator(validate_open_enum(False))],
423
+ pydantic.Field(alias="timestampFormat"),
291
424
  ] = TimestampFormat.SYSLOG
292
425
  r"""Timestamp format to use when serializing event's time field"""
293
426
 
@@ -313,6 +446,33 @@ class OutputSyslog(BaseModel):
313
446
  )
314
447
  r"""For optimal performance, enable load balancing even if you have one hostname, as it can expand to multiple IPs. If this setting is disabled, consider enabling round-robin DNS."""
315
448
 
449
+ host: Optional[str] = None
450
+ r"""The hostname of the receiver"""
451
+
452
+ port: Optional[float] = None
453
+ r"""The port to connect to on the provided host"""
454
+
455
+ exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
456
+ r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
457
+
458
+ hosts: Optional[List[OutputSyslogHost]] = None
459
+ r"""Set of hosts to load-balance data to"""
460
+
461
+ dns_resolve_period_sec: Annotated[
462
+ Optional[float], pydantic.Field(alias="dnsResolvePeriodSec")
463
+ ] = 600
464
+ r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
465
+
466
+ load_balance_stats_period_sec: Annotated[
467
+ Optional[float], pydantic.Field(alias="loadBalanceStatsPeriodSec")
468
+ ] = 300
469
+ r"""How far back in time to keep traffic stats for load balancing purposes"""
470
+
471
+ max_concurrent_senders: Annotated[
472
+ Optional[float], pydantic.Field(alias="maxConcurrentSenders")
473
+ ] = 0
474
+ 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."""
475
+
316
476
  connection_timeout: Annotated[
317
477
  Optional[float], pydantic.Field(alias="connectionTimeout")
318
478
  ] = 10000
@@ -326,17 +486,14 @@ class OutputSyslog(BaseModel):
326
486
  tls: Optional[OutputSyslogTLSSettingsClientSide] = None
327
487
 
328
488
  on_backpressure: Annotated[
329
- Optional[OutputSyslogBackpressureBehavior],
489
+ Annotated[
490
+ Optional[OutputSyslogBackpressureBehavior],
491
+ PlainValidator(validate_open_enum(False)),
492
+ ],
330
493
  pydantic.Field(alias="onBackpressure"),
331
494
  ] = OutputSyslogBackpressureBehavior.BLOCK
332
495
  r"""How to handle events when all receivers are exerting backpressure"""
333
496
 
334
- host: Optional[str] = None
335
- r"""The hostname of the receiver"""
336
-
337
- port: Optional[float] = None
338
- r"""The port to connect to on the provided host"""
339
-
340
497
  max_record_size: Annotated[
341
498
  Optional[float], pydantic.Field(alias="maxRecordSize")
342
499
  ] = 1500
@@ -347,6 +504,39 @@ class OutputSyslog(BaseModel):
347
504
  ] = 0
348
505
  r"""How often to resolve the destination hostname to an IP address. Ignored if the destination is an IP address. A value of 0 means every message sent will incur a DNS lookup."""
349
506
 
507
+ enable_ip_spoofing: Annotated[
508
+ Optional[bool], pydantic.Field(alias="enableIpSpoofing")
509
+ ] = False
510
+ r"""Send Syslog traffic using the original event's Source IP and port. To enable this, you must install the external `udp-sender` helper binary at `/usr/bin/udp-sender` on all Worker Nodes and grant it the `CAP_NET_RAW` capability."""
511
+
512
+ pq_strict_ordering: Annotated[
513
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
514
+ ] = True
515
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
516
+
517
+ pq_rate_per_sec: Annotated[
518
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
519
+ ] = 0
520
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
521
+
522
+ pq_mode: Annotated[
523
+ Annotated[
524
+ Optional[OutputSyslogMode], PlainValidator(validate_open_enum(False))
525
+ ],
526
+ pydantic.Field(alias="pqMode"),
527
+ ] = OutputSyslogMode.ERROR
528
+ 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."""
529
+
530
+ pq_max_buffer_size: Annotated[
531
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
532
+ ] = 42
533
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
534
+
535
+ pq_max_backpressure_sec: Annotated[
536
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
537
+ ] = 30
538
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
539
+
350
540
  pq_max_file_size: Annotated[
351
541
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
352
542
  ] = "1 MB"
@@ -361,21 +551,103 @@ class OutputSyslog(BaseModel):
361
551
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
362
552
 
363
553
  pq_compress: Annotated[
364
- Optional[OutputSyslogCompression], pydantic.Field(alias="pqCompress")
554
+ Annotated[
555
+ Optional[OutputSyslogCompression], PlainValidator(validate_open_enum(False))
556
+ ],
557
+ pydantic.Field(alias="pqCompress"),
365
558
  ] = OutputSyslogCompression.NONE
366
559
  r"""Codec to use to compress the persisted data"""
367
560
 
368
561
  pq_on_backpressure: Annotated[
369
- Optional[OutputSyslogQueueFullBehavior],
562
+ Annotated[
563
+ Optional[OutputSyslogQueueFullBehavior],
564
+ PlainValidator(validate_open_enum(False)),
565
+ ],
370
566
  pydantic.Field(alias="pqOnBackpressure"),
371
567
  ] = OutputSyslogQueueFullBehavior.BLOCK
372
568
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
373
569
 
374
- pq_mode: Annotated[Optional[OutputSyslogMode], pydantic.Field(alias="pqMode")] = (
375
- OutputSyslogMode.ERROR
376
- )
377
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
378
-
379
570
  pq_controls: Annotated[
380
571
  Optional[OutputSyslogPqControls], pydantic.Field(alias="pqControls")
381
572
  ] = None
573
+
574
+ @field_serializer("protocol")
575
+ def serialize_protocol(self, value):
576
+ if isinstance(value, str):
577
+ try:
578
+ return models.OutputSyslogProtocol(value)
579
+ except ValueError:
580
+ return value
581
+ return value
582
+
583
+ @field_serializer("facility")
584
+ def serialize_facility(self, value):
585
+ if isinstance(value, str):
586
+ try:
587
+ return models.Facility(value)
588
+ except ValueError:
589
+ return value
590
+ return value
591
+
592
+ @field_serializer("severity")
593
+ def serialize_severity(self, value):
594
+ if isinstance(value, str):
595
+ try:
596
+ return models.OutputSyslogSeverity(value)
597
+ except ValueError:
598
+ return value
599
+ return value
600
+
601
+ @field_serializer("message_format")
602
+ def serialize_message_format(self, value):
603
+ if isinstance(value, str):
604
+ try:
605
+ return models.OutputSyslogMessageFormat(value)
606
+ except ValueError:
607
+ return value
608
+ return value
609
+
610
+ @field_serializer("timestamp_format")
611
+ def serialize_timestamp_format(self, value):
612
+ if isinstance(value, str):
613
+ try:
614
+ return models.TimestampFormat(value)
615
+ except ValueError:
616
+ return value
617
+ return value
618
+
619
+ @field_serializer("on_backpressure")
620
+ def serialize_on_backpressure(self, value):
621
+ if isinstance(value, str):
622
+ try:
623
+ return models.OutputSyslogBackpressureBehavior(value)
624
+ except ValueError:
625
+ return value
626
+ return value
627
+
628
+ @field_serializer("pq_mode")
629
+ def serialize_pq_mode(self, value):
630
+ if isinstance(value, str):
631
+ try:
632
+ return models.OutputSyslogMode(value)
633
+ except ValueError:
634
+ return value
635
+ return value
636
+
637
+ @field_serializer("pq_compress")
638
+ def serialize_pq_compress(self, value):
639
+ if isinstance(value, str):
640
+ try:
641
+ return models.OutputSyslogCompression(value)
642
+ except ValueError:
643
+ return value
644
+ return value
645
+
646
+ @field_serializer("pq_on_backpressure")
647
+ def serialize_pq_on_backpressure(self, value):
648
+ if isinstance(value, str):
649
+ try:
650
+ return models.OutputSyslogQueueFullBehavior(value)
651
+ except ValueError:
652
+ return value
653
+ return value