cribl-control-plane 0.0.39__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 (403) 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 +21 -9
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +17 -1
  6. cribl_control_plane/branches.py +28 -8
  7. cribl_control_plane/commits.py +119 -47
  8. cribl_control_plane/commits_files.py +44 -24
  9. cribl_control_plane/configs_versions.py +16 -10
  10. cribl_control_plane/cribl.py +495 -0
  11. cribl_control_plane/destinations.py +86 -34
  12. cribl_control_plane/destinations_pq.py +34 -14
  13. cribl_control_plane/errors/__init__.py +23 -8
  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 +8 -3
  22. cribl_control_plane/groups_sdk.py +156 -94
  23. cribl_control_plane/health.py +34 -14
  24. cribl_control_plane/hectokens.py +44 -20
  25. cribl_control_plane/httpclient.py +0 -1
  26. cribl_control_plane/lakedatasets.py +156 -62
  27. cribl_control_plane/models/__init__.py +3298 -479
  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 +62 -8
  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/{createinputop.py → countedgitdiffresult.py} +5 -9
  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/{createoutputop.py → countedoutputsamplesresponse.py} +5 -9
  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 +26 -27
  81. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +1 -19
  82. cribl_control_plane/models/createinputhectokenbyidop.py +1 -19
  83. cribl_control_plane/models/createoutputtestbyidop.py +1 -20
  84. cribl_control_plane/models/createroutesappendbyidop.py +4 -22
  85. cribl_control_plane/models/createversioncommitop.py +1 -19
  86. cribl_control_plane/models/createversionrevertop.py +3 -21
  87. cribl_control_plane/models/createversionundoop.py +1 -18
  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/datasetmetadata.py +18 -2
  92. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -21
  93. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +1 -20
  94. cribl_control_plane/models/deleteinputbyidop.py +1 -20
  95. cribl_control_plane/models/deleteoutputbyidop.py +1 -20
  96. cribl_control_plane/models/deleteoutputpqbyidop.py +1 -19
  97. cribl_control_plane/models/deletepacksbyidop.py +1 -20
  98. cribl_control_plane/models/deletepipelinebyidop.py +3 -22
  99. cribl_control_plane/models/difffiles.py +130 -0
  100. cribl_control_plane/models/diffline.py +26 -0
  101. cribl_control_plane/models/difflinecontext.py +28 -0
  102. cribl_control_plane/models/difflinedelete.py +25 -0
  103. cribl_control_plane/models/difflineinsert.py +25 -0
  104. cribl_control_plane/models/distributedsummary.py +6 -0
  105. cribl_control_plane/models/functionaggregatemetrics.py +206 -0
  106. cribl_control_plane/models/functionaggregation.py +172 -0
  107. cribl_control_plane/models/functionautotimestamp.py +173 -0
  108. cribl_control_plane/models/functioncef.py +111 -0
  109. cribl_control_plane/models/functionchain.py +75 -0
  110. cribl_control_plane/models/functionclone.py +75 -0
  111. cribl_control_plane/models/functioncode.py +96 -0
  112. cribl_control_plane/models/functioncomment.py +75 -0
  113. cribl_control_plane/models/functiondistinct.py +99 -0
  114. cribl_control_plane/models/functiondnslookup.py +250 -0
  115. cribl_control_plane/models/functiondrop.py +73 -0
  116. cribl_control_plane/models/functiondropdimensions.py +87 -0
  117. cribl_control_plane/models/functiondynamicsampling.py +121 -0
  118. cribl_control_plane/models/functioneval.py +103 -0
  119. cribl_control_plane/models/functioneventbreaker.py +103 -0
  120. cribl_control_plane/models/functioneventstats.py +92 -0
  121. cribl_control_plane/models/functionexternaldata.py +73 -0
  122. cribl_control_plane/models/functionflatten.py +90 -0
  123. cribl_control_plane/models/functionfoldkeys.py +89 -0
  124. cribl_control_plane/models/functiongenstats.py +73 -0
  125. cribl_control_plane/models/functiongeoip.py +120 -0
  126. cribl_control_plane/models/functiongrok.py +95 -0
  127. cribl_control_plane/models/functionhandlebar.py +112 -0
  128. cribl_control_plane/models/functionjoin.py +112 -0
  129. cribl_control_plane/models/functionjsonunroll.py +80 -0
  130. cribl_control_plane/models/functionlakeexport.py +102 -0
  131. cribl_control_plane/models/functionlimit.py +75 -0
  132. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
  133. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
  134. cribl_control_plane/models/functionlookup.py +148 -0
  135. cribl_control_plane/models/functionmask.py +121 -0
  136. cribl_control_plane/models/functionmvexpand.py +128 -0
  137. cribl_control_plane/models/functionmvpull.py +99 -0
  138. cribl_control_plane/models/functionnotificationpolicies.py +186 -0
  139. cribl_control_plane/models/functionnotifications.py +85 -0
  140. cribl_control_plane/models/functionnotify.py +196 -0
  141. cribl_control_plane/models/functionnumerify.py +119 -0
  142. cribl_control_plane/models/functionotlplogs.py +82 -0
  143. cribl_control_plane/models/functionotlpmetrics.py +118 -0
  144. cribl_control_plane/models/functionotlptraces.py +111 -0
  145. cribl_control_plane/models/functionpack.py +80 -0
  146. cribl_control_plane/models/functionpivot.py +85 -0
  147. cribl_control_plane/models/functionpublishmetrics.py +153 -0
  148. cribl_control_plane/models/functionredis.py +173 -0
  149. cribl_control_plane/models/functionregexextract.py +112 -0
  150. cribl_control_plane/models/functionregexfilter.py +95 -0
  151. cribl_control_plane/models/functionrename.py +107 -0
  152. cribl_control_plane/models/functionresponse.py +242 -0
  153. cribl_control_plane/models/functionrollupmetrics.py +114 -0
  154. cribl_control_plane/models/functionsampling.py +90 -0
  155. cribl_control_plane/models/functionsend.py +141 -0
  156. cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
  157. cribl_control_plane/models/functionserde.py +161 -0
  158. cribl_control_plane/models/functionserialize.py +134 -0
  159. cribl_control_plane/models/functionsidlookup.py +93 -0
  160. cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
  161. cribl_control_plane/models/functionsort.py +97 -0
  162. cribl_control_plane/models/functionstore.py +132 -0
  163. cribl_control_plane/models/functionsuppress.py +115 -0
  164. cribl_control_plane/models/functiontee.py +90 -0
  165. cribl_control_plane/models/functiontrimtimestamp.py +75 -0
  166. cribl_control_plane/models/functionunion.py +80 -0
  167. cribl_control_plane/models/functionunroll.py +80 -0
  168. cribl_control_plane/models/functionwindow.py +96 -0
  169. cribl_control_plane/models/functionxmlunroll.py +92 -0
  170. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -20
  171. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -20
  172. cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -19
  173. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -20
  174. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +1 -20
  175. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +54 -14
  176. cribl_control_plane/models/getfunctionsbyidop.py +18 -0
  177. cribl_control_plane/models/getinputbyidop.py +1 -20
  178. cribl_control_plane/models/getmasterworkerentryop.py +1 -18
  179. cribl_control_plane/models/getoutputbyidop.py +1 -20
  180. cribl_control_plane/models/getoutputpqbyidop.py +1 -19
  181. cribl_control_plane/models/getoutputsamplesbyidop.py +1 -20
  182. cribl_control_plane/models/getpacksbyidop.py +1 -20
  183. cribl_control_plane/models/getpacksop.py +1 -19
  184. cribl_control_plane/models/getpipelinebyidop.py +3 -22
  185. cribl_control_plane/models/getroutesbyidop.py +3 -22
  186. cribl_control_plane/models/getsummaryop.py +18 -20
  187. cribl_control_plane/models/getversioncountop.py +3 -21
  188. cribl_control_plane/models/getversiondiffop.py +1 -18
  189. cribl_control_plane/models/getversionfilesop.py +3 -22
  190. cribl_control_plane/models/getversionop.py +1 -19
  191. cribl_control_plane/models/getversionshowop.py +1 -18
  192. cribl_control_plane/models/getversionstatusop.py +1 -19
  193. cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
  194. cribl_control_plane/models/gitdiffresult.py +16 -0
  195. cribl_control_plane/models/gitinfo.py +14 -3
  196. cribl_control_plane/models/gitshowresult.py +19 -0
  197. cribl_control_plane/models/groupcreaterequest.py +172 -0
  198. cribl_control_plane/models/hbcriblinfo.py +42 -7
  199. cribl_control_plane/models/healthserverstatus.py +55 -0
  200. cribl_control_plane/models/heartbeatmetadata.py +6 -11
  201. cribl_control_plane/models/input.py +83 -78
  202. cribl_control_plane/models/inputappscope.py +126 -30
  203. cribl_control_plane/models/inputazureblob.py +62 -6
  204. cribl_control_plane/models/inputcloudflarehec.py +518 -0
  205. cribl_control_plane/models/inputcollection.py +47 -4
  206. cribl_control_plane/models/inputconfluentcloud.py +258 -32
  207. cribl_control_plane/models/inputcribl.py +47 -4
  208. cribl_control_plane/models/inputcriblhttp.py +121 -30
  209. cribl_control_plane/models/inputcribllakehttp.py +136 -30
  210. cribl_control_plane/models/inputcriblmetrics.py +48 -4
  211. cribl_control_plane/models/inputcribltcp.py +122 -24
  212. cribl_control_plane/models/inputcrowdstrike.py +92 -10
  213. cribl_control_plane/models/inputdatadogagent.py +98 -24
  214. cribl_control_plane/models/inputdatagen.py +47 -4
  215. cribl_control_plane/models/inputedgeprometheus.py +210 -50
  216. cribl_control_plane/models/inputelastic.py +167 -36
  217. cribl_control_plane/models/inputeventhub.py +209 -6
  218. cribl_control_plane/models/inputexec.py +59 -6
  219. cribl_control_plane/models/inputfile.py +78 -10
  220. cribl_control_plane/models/inputfirehose.py +97 -24
  221. cribl_control_plane/models/inputgooglepubsub.py +67 -6
  222. cribl_control_plane/models/inputgrafana.py +251 -71
  223. cribl_control_plane/models/inputhttp.py +97 -24
  224. cribl_control_plane/models/inputhttpraw.py +97 -24
  225. cribl_control_plane/models/inputjournalfiles.py +48 -4
  226. cribl_control_plane/models/inputkafka.py +252 -28
  227. cribl_control_plane/models/inputkinesis.py +130 -14
  228. cribl_control_plane/models/inputkubeevents.py +47 -4
  229. cribl_control_plane/models/inputkubelogs.py +61 -8
  230. cribl_control_plane/models/inputkubemetrics.py +61 -8
  231. cribl_control_plane/models/inputloki.py +113 -34
  232. cribl_control_plane/models/inputmetrics.py +97 -24
  233. cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
  234. cribl_control_plane/models/inputmsk.py +145 -32
  235. cribl_control_plane/models/inputnetflow.py +47 -4
  236. cribl_control_plane/models/inputoffice365mgmt.py +112 -14
  237. cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
  238. cribl_control_plane/models/inputoffice365service.py +114 -16
  239. cribl_control_plane/models/inputopentelemetry.py +143 -32
  240. cribl_control_plane/models/inputprometheus.py +193 -44
  241. cribl_control_plane/models/inputprometheusrw.py +114 -27
  242. cribl_control_plane/models/inputrawudp.py +47 -4
  243. cribl_control_plane/models/inputs3.py +78 -8
  244. cribl_control_plane/models/inputs3inventory.py +92 -10
  245. cribl_control_plane/models/inputsecuritylake.py +93 -10
  246. cribl_control_plane/models/inputsnmp.py +112 -21
  247. cribl_control_plane/models/inputsplunk.py +130 -28
  248. cribl_control_plane/models/inputsplunkhec.py +119 -29
  249. cribl_control_plane/models/inputsplunksearch.py +112 -15
  250. cribl_control_plane/models/inputsqs.py +99 -16
  251. cribl_control_plane/models/inputsyslog.py +189 -47
  252. cribl_control_plane/models/inputsystemmetrics.py +202 -32
  253. cribl_control_plane/models/inputsystemstate.py +61 -8
  254. cribl_control_plane/models/inputtcp.py +122 -26
  255. cribl_control_plane/models/inputtcpjson.py +112 -26
  256. cribl_control_plane/models/inputwef.py +144 -15
  257. cribl_control_plane/models/inputwindowsmetrics.py +186 -33
  258. cribl_control_plane/models/inputwineventlogs.py +93 -11
  259. cribl_control_plane/models/inputwiz.py +173 -8
  260. cribl_control_plane/models/inputwizwebhook.py +97 -24
  261. cribl_control_plane/models/inputzscalerhec.py +119 -29
  262. cribl_control_plane/models/jobinfo.py +34 -0
  263. cribl_control_plane/models/jobstatus.py +48 -0
  264. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  265. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  266. cribl_control_plane/models/listconfiggroupbyproductop.py +14 -19
  267. cribl_control_plane/models/listmasterworkerentryop.py +1 -19
  268. cribl_control_plane/models/logininfo.py +3 -3
  269. cribl_control_plane/models/masterworkerentry.py +20 -13
  270. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  271. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  272. cribl_control_plane/models/nodeprovidedinfo.py +13 -11
  273. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  274. cribl_control_plane/models/nodeupgradestate.py +2 -1
  275. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  276. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  277. cribl_control_plane/models/output.py +104 -90
  278. cribl_control_plane/models/outputazureblob.py +171 -18
  279. cribl_control_plane/models/outputazuredataexplorer.py +514 -90
  280. cribl_control_plane/models/outputazureeventhub.py +315 -31
  281. cribl_control_plane/models/outputazurelogs.py +145 -26
  282. cribl_control_plane/models/outputchronicle.py +532 -0
  283. cribl_control_plane/models/outputclickhouse.py +205 -34
  284. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  285. cribl_control_plane/models/outputcloudwatch.py +129 -23
  286. cribl_control_plane/models/outputconfluentcloud.py +384 -57
  287. cribl_control_plane/models/outputcriblhttp.py +198 -31
  288. cribl_control_plane/models/outputcribllake.py +156 -16
  289. cribl_control_plane/models/outputcribltcp.py +194 -29
  290. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
  291. cribl_control_plane/models/outputdatabricks.py +501 -0
  292. cribl_control_plane/models/outputdatadog.py +199 -31
  293. cribl_control_plane/models/outputdataset.py +181 -29
  294. cribl_control_plane/models/outputdiskspool.py +17 -2
  295. cribl_control_plane/models/outputdls3.py +233 -24
  296. cribl_control_plane/models/outputdynatracehttp.py +208 -34
  297. cribl_control_plane/models/outputdynatraceotlp.py +210 -36
  298. cribl_control_plane/models/outputelastic.py +199 -30
  299. cribl_control_plane/models/outputelasticcloud.py +171 -26
  300. cribl_control_plane/models/outputexabeam.py +96 -10
  301. cribl_control_plane/models/outputfilesystem.py +139 -14
  302. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  303. cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
  304. cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
  305. cribl_control_plane/models/outputgooglepubsub.py +131 -23
  306. cribl_control_plane/models/outputgrafanacloud.py +376 -74
  307. cribl_control_plane/models/outputgraphite.py +128 -25
  308. cribl_control_plane/models/outputhoneycomb.py +145 -26
  309. cribl_control_plane/models/outputhumiohec.py +162 -28
  310. cribl_control_plane/models/outputinfluxdb.py +165 -28
  311. cribl_control_plane/models/outputkafka.py +375 -52
  312. cribl_control_plane/models/outputkinesis.py +165 -27
  313. cribl_control_plane/models/outputloki.py +164 -34
  314. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  315. cribl_control_plane/models/outputminio.py +225 -25
  316. cribl_control_plane/models/outputmsk.py +267 -54
  317. cribl_control_plane/models/outputnewrelic.py +171 -29
  318. cribl_control_plane/models/outputnewrelicevents.py +163 -28
  319. cribl_control_plane/models/outputopentelemetry.py +240 -40
  320. cribl_control_plane/models/outputprometheus.py +145 -26
  321. cribl_control_plane/models/outputring.py +49 -8
  322. cribl_control_plane/models/outputs3.py +233 -26
  323. cribl_control_plane/models/outputsecuritylake.py +179 -18
  324. cribl_control_plane/models/outputsentinel.py +172 -29
  325. cribl_control_plane/models/outputsentineloneaisiem.py +178 -32
  326. cribl_control_plane/models/outputservicenow.py +223 -38
  327. cribl_control_plane/models/outputsignalfx.py +145 -26
  328. cribl_control_plane/models/outputsns.py +143 -25
  329. cribl_control_plane/models/outputsplunk.py +206 -36
  330. cribl_control_plane/models/outputsplunkhec.py +238 -26
  331. cribl_control_plane/models/outputsplunklb.py +262 -42
  332. cribl_control_plane/models/outputsqs.py +163 -33
  333. cribl_control_plane/models/outputstatsd.py +127 -25
  334. cribl_control_plane/models/outputstatsdext.py +128 -25
  335. cribl_control_plane/models/outputsumologic.py +146 -25
  336. cribl_control_plane/models/outputsyslog.py +318 -46
  337. cribl_control_plane/models/outputtcpjson.py +186 -32
  338. cribl_control_plane/models/outputwavefront.py +145 -26
  339. cribl_control_plane/models/outputwebhook.py +211 -33
  340. cribl_control_plane/models/outputxsiam.py +143 -26
  341. cribl_control_plane/models/packinfo.py +8 -5
  342. cribl_control_plane/models/packinstallinfo.py +11 -8
  343. cribl_control_plane/models/piisettings_union.py +31 -0
  344. cribl_control_plane/models/productscore.py +2 -1
  345. cribl_control_plane/models/rbacresource.py +2 -1
  346. cribl_control_plane/models/resourcepolicy.py +15 -2
  347. cribl_control_plane/models/rollbacksettings_union.py +44 -0
  348. cribl_control_plane/models/routeconf.py +3 -4
  349. cribl_control_plane/models/runnablejob.py +27 -0
  350. cribl_control_plane/models/runnablejobcollection.py +628 -0
  351. cribl_control_plane/models/runnablejobexecutor.py +360 -0
  352. cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
  353. cribl_control_plane/models/snisettings_union.py +31 -0
  354. cribl_control_plane/models/systemsettingsconf.py +291 -0
  355. cribl_control_plane/models/tlssettings_union.py +43 -0
  356. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -20
  357. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -21
  358. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +10 -25
  359. cribl_control_plane/models/updatehectokenrequest.py +7 -1
  360. cribl_control_plane/models/updateinputbyidop.py +1 -19
  361. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +1 -19
  362. cribl_control_plane/models/updateoutputbyidop.py +1 -19
  363. cribl_control_plane/models/updatepacksbyidop.py +1 -20
  364. cribl_control_plane/models/updatepacksop.py +25 -0
  365. cribl_control_plane/models/updatepipelinebyidop.py +5 -23
  366. cribl_control_plane/models/updateroutesbyidop.py +3 -21
  367. cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
  368. cribl_control_plane/models/upgradepackageurls.py +20 -0
  369. cribl_control_plane/models/upgradesettings.py +38 -0
  370. cribl_control_plane/models/uploadpackresponse.py +13 -0
  371. cribl_control_plane/models/workertypes.py +2 -1
  372. cribl_control_plane/nodes.py +37 -23
  373. cribl_control_plane/packs.py +292 -37
  374. cribl_control_plane/pipelines.py +98 -48
  375. cribl_control_plane/routes_sdk.py +86 -50
  376. cribl_control_plane/samples.py +32 -16
  377. cribl_control_plane/sdk.py +26 -6
  378. cribl_control_plane/settings.py +20 -0
  379. cribl_control_plane/sources.py +85 -33
  380. cribl_control_plane/statuses.py +16 -6
  381. cribl_control_plane/summaries.py +16 -6
  382. cribl_control_plane/system_sdk.py +20 -0
  383. cribl_control_plane/teams.py +16 -6
  384. cribl_control_plane/tokens.py +49 -21
  385. cribl_control_plane/utils/__init__.py +15 -3
  386. cribl_control_plane/utils/annotations.py +32 -8
  387. cribl_control_plane/utils/eventstreaming.py +10 -0
  388. cribl_control_plane/utils/forms.py +21 -10
  389. cribl_control_plane/utils/queryparams.py +14 -2
  390. cribl_control_plane/utils/retries.py +69 -5
  391. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  392. cribl_control_plane/versions.py +11 -6
  393. cribl_control_plane/versions_configs.py +16 -6
  394. {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/METADATA +99 -43
  395. cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
  396. {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
  397. cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
  398. cribl_control_plane/errors/healthstatus_error.py +0 -32
  399. cribl_control_plane/models/appmode.py +0 -13
  400. cribl_control_plane/models/createpipelineop.py +0 -24
  401. cribl_control_plane/models/createversionpushop.py +0 -23
  402. cribl_control_plane/models/healthstatus.py +0 -33
  403. cribl_control_plane-0.0.39.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,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
@@ -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
 
@@ -23,22 +27,33 @@ class OutputCrowdstrikeNextGenSiemExtraHTTPHeader(BaseModel):
23
27
  name: Optional[str] = None
24
28
 
25
29
 
26
- class OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode(str, Enum):
30
+ class OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode(
31
+ str, Enum, metaclass=utils.OpenEnumMeta
32
+ ):
27
33
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
28
34
 
35
+ # Payload
29
36
  PAYLOAD = "payload"
37
+ # Payload + Headers
30
38
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
39
+ # None
31
40
  NONE = "none"
32
41
 
33
42
 
34
- class OutputCrowdstrikeNextGenSiemRequestFormat(str, Enum):
43
+ class OutputCrowdstrikeNextGenSiemRequestFormat(
44
+ str, Enum, metaclass=utils.OpenEnumMeta
45
+ ):
35
46
  r"""When set to JSON, the event is automatically formatted with required fields before sending. When set to Raw, only the event's `_raw` value is sent."""
36
47
 
48
+ # JSON
37
49
  JSON = "JSON"
50
+ # Raw
38
51
  RAW = "raw"
39
52
 
40
53
 
41
- class OutputCrowdstrikeNextGenSiemAuthenticationMethod(str, Enum):
54
+ class OutputCrowdstrikeNextGenSiemAuthenticationMethod(
55
+ str, Enum, metaclass=utils.OpenEnumMeta
56
+ ):
42
57
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
43
58
 
44
59
  MANUAL = "manual"
@@ -99,36 +114,50 @@ class OutputCrowdstrikeNextGenSiemTimeoutRetrySettings(BaseModel):
99
114
  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)."""
100
115
 
101
116
 
102
- class OutputCrowdstrikeNextGenSiemBackpressureBehavior(str, Enum):
117
+ class OutputCrowdstrikeNextGenSiemBackpressureBehavior(
118
+ str, Enum, metaclass=utils.OpenEnumMeta
119
+ ):
103
120
  r"""How to handle events when all receivers are exerting backpressure"""
104
121
 
122
+ # Block
105
123
  BLOCK = "block"
124
+ # Drop
106
125
  DROP = "drop"
126
+ # Persistent Queue
107
127
  QUEUE = "queue"
108
128
 
109
129
 
110
- class OutputCrowdstrikeNextGenSiemCompression(str, Enum):
130
+ class OutputCrowdstrikeNextGenSiemMode(str, Enum, metaclass=utils.OpenEnumMeta):
131
+ 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."""
132
+
133
+ # Error
134
+ ERROR = "error"
135
+ # Backpressure
136
+ ALWAYS = "always"
137
+ # Always On
138
+ BACKPRESSURE = "backpressure"
139
+
140
+
141
+ class OutputCrowdstrikeNextGenSiemCompression(str, Enum, metaclass=utils.OpenEnumMeta):
111
142
  r"""Codec to use to compress the persisted data"""
112
143
 
144
+ # None
113
145
  NONE = "none"
146
+ # Gzip
114
147
  GZIP = "gzip"
115
148
 
116
149
 
117
- class OutputCrowdstrikeNextGenSiemQueueFullBehavior(str, Enum):
150
+ class OutputCrowdstrikeNextGenSiemQueueFullBehavior(
151
+ str, Enum, metaclass=utils.OpenEnumMeta
152
+ ):
118
153
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
119
154
 
155
+ # Block
120
156
  BLOCK = "block"
157
+ # Drop new data
121
158
  DROP = "drop"
122
159
 
123
160
 
124
- class OutputCrowdstrikeNextGenSiemMode(str, Enum):
125
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
126
-
127
- ERROR = "error"
128
- BACKPRESSURE = "backpressure"
129
- ALWAYS = "always"
130
-
131
-
132
161
  class OutputCrowdstrikeNextGenSiemPqControlsTypedDict(TypedDict):
133
162
  pass
134
163
 
@@ -201,6 +230,16 @@ class OutputCrowdstrikeNextGenSiemTypedDict(TypedDict):
201
230
  token: NotRequired[str]
202
231
  text_secret: NotRequired[str]
203
232
  r"""Select or create a stored text secret"""
233
+ pq_strict_ordering: NotRequired[bool]
234
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
235
+ pq_rate_per_sec: NotRequired[float]
236
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
237
+ pq_mode: NotRequired[OutputCrowdstrikeNextGenSiemMode]
238
+ 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."""
239
+ pq_max_buffer_size: NotRequired[float]
240
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
241
+ pq_max_backpressure_sec: NotRequired[float]
242
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
204
243
  pq_max_file_size: NotRequired[str]
205
244
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
206
245
  pq_max_size: NotRequired[str]
@@ -211,8 +250,6 @@ class OutputCrowdstrikeNextGenSiemTypedDict(TypedDict):
211
250
  r"""Codec to use to compress the persisted data"""
212
251
  pq_on_backpressure: NotRequired[OutputCrowdstrikeNextGenSiemQueueFullBehavior]
213
252
  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."""
214
- pq_mode: NotRequired[OutputCrowdstrikeNextGenSiemMode]
215
- 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."""
216
253
  pq_controls: NotRequired[OutputCrowdstrikeNextGenSiemPqControlsTypedDict]
217
254
 
218
255
 
@@ -285,7 +322,10 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
285
322
  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."""
286
323
 
287
324
  failed_request_logging_mode: Annotated[
288
- Optional[OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode],
325
+ Annotated[
326
+ Optional[OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode],
327
+ PlainValidator(validate_open_enum(False)),
328
+ ],
289
329
  pydantic.Field(alias="failedRequestLoggingMode"),
290
330
  ] = OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode.NONE
291
331
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -296,13 +336,19 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
296
336
  r"""List of headers that are safe to log in plain text"""
297
337
 
298
338
  format_: Annotated[
299
- Optional[OutputCrowdstrikeNextGenSiemRequestFormat],
339
+ Annotated[
340
+ Optional[OutputCrowdstrikeNextGenSiemRequestFormat],
341
+ PlainValidator(validate_open_enum(False)),
342
+ ],
300
343
  pydantic.Field(alias="format"),
301
344
  ] = OutputCrowdstrikeNextGenSiemRequestFormat.JSON
302
345
  r"""When set to JSON, the event is automatically formatted with required fields before sending. When set to Raw, only the event's `_raw` value is sent."""
303
346
 
304
347
  auth_type: Annotated[
305
- Optional[OutputCrowdstrikeNextGenSiemAuthenticationMethod],
348
+ Annotated[
349
+ Optional[OutputCrowdstrikeNextGenSiemAuthenticationMethod],
350
+ PlainValidator(validate_open_enum(False)),
351
+ ],
306
352
  pydantic.Field(alias="authType"),
307
353
  ] = OutputCrowdstrikeNextGenSiemAuthenticationMethod.MANUAL
308
354
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
@@ -320,11 +366,14 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
320
366
 
321
367
  response_honor_retry_after_header: Annotated[
322
368
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
323
- ] = False
369
+ ] = True
324
370
  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."""
325
371
 
326
372
  on_backpressure: Annotated[
327
- Optional[OutputCrowdstrikeNextGenSiemBackpressureBehavior],
373
+ Annotated[
374
+ Optional[OutputCrowdstrikeNextGenSiemBackpressureBehavior],
375
+ PlainValidator(validate_open_enum(False)),
376
+ ],
328
377
  pydantic.Field(alias="onBackpressure"),
329
378
  ] = OutputCrowdstrikeNextGenSiemBackpressureBehavior.BLOCK
330
379
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -336,6 +385,35 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
336
385
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
337
386
  r"""Select or create a stored text secret"""
338
387
 
388
+ pq_strict_ordering: Annotated[
389
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
390
+ ] = True
391
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
392
+
393
+ pq_rate_per_sec: Annotated[
394
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
395
+ ] = 0
396
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
397
+
398
+ pq_mode: Annotated[
399
+ Annotated[
400
+ Optional[OutputCrowdstrikeNextGenSiemMode],
401
+ PlainValidator(validate_open_enum(False)),
402
+ ],
403
+ pydantic.Field(alias="pqMode"),
404
+ ] = OutputCrowdstrikeNextGenSiemMode.ERROR
405
+ 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."""
406
+
407
+ pq_max_buffer_size: Annotated[
408
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
409
+ ] = 42
410
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
411
+
412
+ pq_max_backpressure_sec: Annotated[
413
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
414
+ ] = 30
415
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
416
+
339
417
  pq_max_file_size: Annotated[
340
418
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
341
419
  ] = "1 MB"
@@ -350,23 +428,89 @@ class OutputCrowdstrikeNextGenSiem(BaseModel):
350
428
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
351
429
 
352
430
  pq_compress: Annotated[
353
- Optional[OutputCrowdstrikeNextGenSiemCompression],
431
+ Annotated[
432
+ Optional[OutputCrowdstrikeNextGenSiemCompression],
433
+ PlainValidator(validate_open_enum(False)),
434
+ ],
354
435
  pydantic.Field(alias="pqCompress"),
355
436
  ] = OutputCrowdstrikeNextGenSiemCompression.NONE
356
437
  r"""Codec to use to compress the persisted data"""
357
438
 
358
439
  pq_on_backpressure: Annotated[
359
- Optional[OutputCrowdstrikeNextGenSiemQueueFullBehavior],
440
+ Annotated[
441
+ Optional[OutputCrowdstrikeNextGenSiemQueueFullBehavior],
442
+ PlainValidator(validate_open_enum(False)),
443
+ ],
360
444
  pydantic.Field(alias="pqOnBackpressure"),
361
445
  ] = OutputCrowdstrikeNextGenSiemQueueFullBehavior.BLOCK
362
446
  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."""
363
447
 
364
- pq_mode: Annotated[
365
- Optional[OutputCrowdstrikeNextGenSiemMode], pydantic.Field(alias="pqMode")
366
- ] = OutputCrowdstrikeNextGenSiemMode.ERROR
367
- 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."""
368
-
369
448
  pq_controls: Annotated[
370
449
  Optional[OutputCrowdstrikeNextGenSiemPqControls],
371
450
  pydantic.Field(alias="pqControls"),
372
451
  ] = None
452
+
453
+ @field_serializer("failed_request_logging_mode")
454
+ def serialize_failed_request_logging_mode(self, value):
455
+ if isinstance(value, str):
456
+ try:
457
+ return models.OutputCrowdstrikeNextGenSiemFailedRequestLoggingMode(
458
+ value
459
+ )
460
+ except ValueError:
461
+ return value
462
+ return value
463
+
464
+ @field_serializer("format_")
465
+ def serialize_format_(self, value):
466
+ if isinstance(value, str):
467
+ try:
468
+ return models.OutputCrowdstrikeNextGenSiemRequestFormat(value)
469
+ except ValueError:
470
+ return value
471
+ return value
472
+
473
+ @field_serializer("auth_type")
474
+ def serialize_auth_type(self, value):
475
+ if isinstance(value, str):
476
+ try:
477
+ return models.OutputCrowdstrikeNextGenSiemAuthenticationMethod(value)
478
+ except ValueError:
479
+ return value
480
+ return value
481
+
482
+ @field_serializer("on_backpressure")
483
+ def serialize_on_backpressure(self, value):
484
+ if isinstance(value, str):
485
+ try:
486
+ return models.OutputCrowdstrikeNextGenSiemBackpressureBehavior(value)
487
+ except ValueError:
488
+ return value
489
+ return value
490
+
491
+ @field_serializer("pq_mode")
492
+ def serialize_pq_mode(self, value):
493
+ if isinstance(value, str):
494
+ try:
495
+ return models.OutputCrowdstrikeNextGenSiemMode(value)
496
+ except ValueError:
497
+ return value
498
+ return value
499
+
500
+ @field_serializer("pq_compress")
501
+ def serialize_pq_compress(self, value):
502
+ if isinstance(value, str):
503
+ try:
504
+ return models.OutputCrowdstrikeNextGenSiemCompression(value)
505
+ except ValueError:
506
+ return value
507
+ return value
508
+
509
+ @field_serializer("pq_on_backpressure")
510
+ def serialize_pq_on_backpressure(self, value):
511
+ if isinstance(value, str):
512
+ try:
513
+ return models.OutputCrowdstrikeNextGenSiemQueueFullBehavior(value)
514
+ except ValueError:
515
+ return value
516
+ return value