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
 
@@ -23,11 +27,14 @@ class OutputSentinelExtraHTTPHeader(BaseModel):
23
27
  name: Optional[str] = None
24
28
 
25
29
 
26
- class OutputSentinelFailedRequestLoggingMode(str, Enum):
30
+ class OutputSentinelFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
28
32
 
33
+ # Payload
29
34
  PAYLOAD = "payload"
35
+ # Payload + Headers
30
36
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
37
+ # None
31
38
  NONE = "none"
32
39
 
33
40
 
@@ -85,54 +92,66 @@ class OutputSentinelTimeoutRetrySettings(BaseModel):
85
92
  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)."""
86
93
 
87
94
 
88
- class OutputSentinelBackpressureBehavior(str, Enum):
95
+ class OutputSentinelBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
89
96
  r"""How to handle events when all receivers are exerting backpressure"""
90
97
 
98
+ # Block
91
99
  BLOCK = "block"
100
+ # Drop
92
101
  DROP = "drop"
102
+ # Persistent Queue
93
103
  QUEUE = "queue"
94
104
 
95
105
 
96
- class AuthType(str, Enum):
106
+ class AuthType(str, Enum, metaclass=utils.OpenEnumMeta):
97
107
  OAUTH = "oauth"
98
108
 
99
109
 
100
- class EndpointConfiguration(str, Enum):
110
+ class EndpointConfiguration(str, Enum, metaclass=utils.OpenEnumMeta):
101
111
  r"""Enter the data collection endpoint URL or the individual ID"""
102
112
 
113
+ # URL
103
114
  URL = "url"
115
+ # ID
104
116
  ID = "ID"
105
117
 
106
118
 
107
- class OutputSentinelFormat(str, Enum):
119
+ class OutputSentinelFormat(str, Enum, metaclass=utils.OpenEnumMeta):
108
120
  NDJSON = "ndjson"
109
121
  JSON_ARRAY = "json_array"
110
122
  CUSTOM = "custom"
111
123
  ADVANCED = "advanced"
112
124
 
113
125
 
114
- class OutputSentinelCompression(str, Enum):
126
+ class OutputSentinelMode(str, Enum, metaclass=utils.OpenEnumMeta):
127
+ 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."""
128
+
129
+ # Error
130
+ ERROR = "error"
131
+ # Backpressure
132
+ ALWAYS = "always"
133
+ # Always On
134
+ BACKPRESSURE = "backpressure"
135
+
136
+
137
+ class OutputSentinelCompression(str, Enum, metaclass=utils.OpenEnumMeta):
115
138
  r"""Codec to use to compress the persisted data"""
116
139
 
140
+ # None
117
141
  NONE = "none"
142
+ # Gzip
118
143
  GZIP = "gzip"
119
144
 
120
145
 
121
- class OutputSentinelQueueFullBehavior(str, Enum):
146
+ class OutputSentinelQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
122
147
  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."""
123
148
 
149
+ # Block
124
150
  BLOCK = "block"
151
+ # Drop new data
125
152
  DROP = "drop"
126
153
 
127
154
 
128
- class OutputSentinelMode(str, Enum):
129
- 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."""
130
-
131
- ERROR = "error"
132
- BACKPRESSURE = "backpressure"
133
- ALWAYS = "always"
134
-
135
-
136
155
  class OutputSentinelPqControlsTypedDict(TypedDict):
137
156
  pass
138
157
 
@@ -220,6 +239,16 @@ class OutputSentinelTypedDict(TypedDict):
220
239
  r"""Custom JavaScript code to format incoming event data accessible through the __e variable. The formatted content is added to (__e['__eventOut']) if available. Otherwise, the original event is serialized as JSON. Caution: This function is evaluated in an unprotected context, allowing you to execute almost any JavaScript code."""
221
240
  format_payload_code: NotRequired[str]
222
241
  r"""Optional JavaScript code to format the payload sent to the Destination. The payload, containing a batch of formatted events, is accessible through the __e['payload'] variable. The formatted payload is returned in the __e['__payloadOut'] variable. Caution: This function is evaluated in an unprotected context, allowing you to execute almost any JavaScript code."""
242
+ pq_strict_ordering: NotRequired[bool]
243
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
244
+ pq_rate_per_sec: NotRequired[float]
245
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
246
+ pq_mode: NotRequired[OutputSentinelMode]
247
+ 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."""
248
+ pq_max_buffer_size: NotRequired[float]
249
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
250
+ pq_max_backpressure_sec: NotRequired[float]
251
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
223
252
  pq_max_file_size: NotRequired[str]
224
253
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
225
254
  pq_max_size: NotRequired[str]
@@ -230,8 +259,6 @@ class OutputSentinelTypedDict(TypedDict):
230
259
  r"""Codec to use to compress the persisted data"""
231
260
  pq_on_backpressure: NotRequired[OutputSentinelQueueFullBehavior]
232
261
  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."""
233
- pq_mode: NotRequired[OutputSentinelMode]
234
- 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."""
235
262
  pq_controls: NotRequired[OutputSentinelPqControlsTypedDict]
236
263
  url: NotRequired[str]
237
264
  r"""URL to send events to. Can be overwritten by an event's __url field."""
@@ -319,7 +346,10 @@ class OutputSentinel(BaseModel):
319
346
  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."""
320
347
 
321
348
  failed_request_logging_mode: Annotated[
322
- Optional[OutputSentinelFailedRequestLoggingMode],
349
+ Annotated[
350
+ Optional[OutputSentinelFailedRequestLoggingMode],
351
+ PlainValidator(validate_open_enum(False)),
352
+ ],
323
353
  pydantic.Field(alias="failedRequestLoggingMode"),
324
354
  ] = OutputSentinelFailedRequestLoggingMode.NONE
325
355
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -346,18 +376,26 @@ class OutputSentinel(BaseModel):
346
376
  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."""
347
377
 
348
378
  on_backpressure: Annotated[
349
- Optional[OutputSentinelBackpressureBehavior],
379
+ Annotated[
380
+ Optional[OutputSentinelBackpressureBehavior],
381
+ PlainValidator(validate_open_enum(False)),
382
+ ],
350
383
  pydantic.Field(alias="onBackpressure"),
351
384
  ] = OutputSentinelBackpressureBehavior.BLOCK
352
385
  r"""How to handle events when all receivers are exerting backpressure"""
353
386
 
354
- auth_type: Annotated[Optional[AuthType], pydantic.Field(alias="authType")] = None
387
+ auth_type: Annotated[
388
+ Annotated[Optional[AuthType], PlainValidator(validate_open_enum(False))],
389
+ pydantic.Field(alias="authType"),
390
+ ] = None
355
391
 
356
392
  scope: Optional[str] = "https://monitor.azure.com/.default"
357
393
  r"""Scope to pass in the OAuth request"""
358
394
 
359
395
  endpoint_url_configuration: Annotated[
360
- Optional[EndpointConfiguration],
396
+ Annotated[
397
+ Optional[EndpointConfiguration], PlainValidator(validate_open_enum(False))
398
+ ],
361
399
  pydantic.Field(alias="endpointURLConfiguration"),
362
400
  ] = EndpointConfiguration.URL
363
401
  r"""Enter the data collection endpoint URL or the individual ID"""
@@ -370,7 +408,10 @@ class OutputSentinel(BaseModel):
370
408
  description: Optional[str] = None
371
409
 
372
410
  format_: Annotated[
373
- Optional[OutputSentinelFormat], pydantic.Field(alias="format")
411
+ Annotated[
412
+ Optional[OutputSentinelFormat], PlainValidator(validate_open_enum(False))
413
+ ],
414
+ pydantic.Field(alias="format"),
374
415
  ] = None
375
416
 
376
417
  custom_source_expression: Annotated[
@@ -413,6 +454,34 @@ class OutputSentinel(BaseModel):
413
454
  ] = None
414
455
  r"""Optional JavaScript code to format the payload sent to the Destination. The payload, containing a batch of formatted events, is accessible through the __e['payload'] variable. The formatted payload is returned in the __e['__payloadOut'] variable. Caution: This function is evaluated in an unprotected context, allowing you to execute almost any JavaScript code."""
415
456
 
457
+ pq_strict_ordering: Annotated[
458
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
459
+ ] = True
460
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
461
+
462
+ pq_rate_per_sec: Annotated[
463
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
464
+ ] = 0
465
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
466
+
467
+ pq_mode: Annotated[
468
+ Annotated[
469
+ Optional[OutputSentinelMode], PlainValidator(validate_open_enum(False))
470
+ ],
471
+ pydantic.Field(alias="pqMode"),
472
+ ] = OutputSentinelMode.ERROR
473
+ 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."""
474
+
475
+ pq_max_buffer_size: Annotated[
476
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
477
+ ] = 42
478
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
479
+
480
+ pq_max_backpressure_sec: Annotated[
481
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
482
+ ] = 30
483
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
484
+
416
485
  pq_max_file_size: Annotated[
417
486
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
418
487
  ] = "1 MB"
@@ -427,21 +496,23 @@ class OutputSentinel(BaseModel):
427
496
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
428
497
 
429
498
  pq_compress: Annotated[
430
- Optional[OutputSentinelCompression], pydantic.Field(alias="pqCompress")
499
+ Annotated[
500
+ Optional[OutputSentinelCompression],
501
+ PlainValidator(validate_open_enum(False)),
502
+ ],
503
+ pydantic.Field(alias="pqCompress"),
431
504
  ] = OutputSentinelCompression.NONE
432
505
  r"""Codec to use to compress the persisted data"""
433
506
 
434
507
  pq_on_backpressure: Annotated[
435
- Optional[OutputSentinelQueueFullBehavior],
508
+ Annotated[
509
+ Optional[OutputSentinelQueueFullBehavior],
510
+ PlainValidator(validate_open_enum(False)),
511
+ ],
436
512
  pydantic.Field(alias="pqOnBackpressure"),
437
513
  ] = OutputSentinelQueueFullBehavior.BLOCK
438
514
  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."""
439
515
 
440
- pq_mode: Annotated[Optional[OutputSentinelMode], pydantic.Field(alias="pqMode")] = (
441
- OutputSentinelMode.ERROR
442
- )
443
- 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."""
444
-
445
516
  pq_controls: Annotated[
446
517
  Optional[OutputSentinelPqControls], pydantic.Field(alias="pqControls")
447
518
  ] = None
@@ -457,3 +528,75 @@ class OutputSentinel(BaseModel):
457
528
 
458
529
  stream_name: Annotated[Optional[str], pydantic.Field(alias="streamName")] = None
459
530
  r"""The name of the stream (Sentinel table) in which to store the events"""
531
+
532
+ @field_serializer("failed_request_logging_mode")
533
+ def serialize_failed_request_logging_mode(self, value):
534
+ if isinstance(value, str):
535
+ try:
536
+ return models.OutputSentinelFailedRequestLoggingMode(value)
537
+ except ValueError:
538
+ return value
539
+ return value
540
+
541
+ @field_serializer("on_backpressure")
542
+ def serialize_on_backpressure(self, value):
543
+ if isinstance(value, str):
544
+ try:
545
+ return models.OutputSentinelBackpressureBehavior(value)
546
+ except ValueError:
547
+ return value
548
+ return value
549
+
550
+ @field_serializer("auth_type")
551
+ def serialize_auth_type(self, value):
552
+ if isinstance(value, str):
553
+ try:
554
+ return models.AuthType(value)
555
+ except ValueError:
556
+ return value
557
+ return value
558
+
559
+ @field_serializer("endpoint_url_configuration")
560
+ def serialize_endpoint_url_configuration(self, value):
561
+ if isinstance(value, str):
562
+ try:
563
+ return models.EndpointConfiguration(value)
564
+ except ValueError:
565
+ return value
566
+ return value
567
+
568
+ @field_serializer("format_")
569
+ def serialize_format_(self, value):
570
+ if isinstance(value, str):
571
+ try:
572
+ return models.OutputSentinelFormat(value)
573
+ except ValueError:
574
+ return value
575
+ return value
576
+
577
+ @field_serializer("pq_mode")
578
+ def serialize_pq_mode(self, value):
579
+ if isinstance(value, str):
580
+ try:
581
+ return models.OutputSentinelMode(value)
582
+ except ValueError:
583
+ return value
584
+ return value
585
+
586
+ @field_serializer("pq_compress")
587
+ def serialize_pq_compress(self, value):
588
+ if isinstance(value, str):
589
+ try:
590
+ return models.OutputSentinelCompression(value)
591
+ except ValueError:
592
+ return value
593
+ return value
594
+
595
+ @field_serializer("pq_on_backpressure")
596
+ def serialize_pq_on_backpressure(self, value):
597
+ if isinstance(value, str):
598
+ try:
599
+ return models.OutputSentinelQueueFullBehavior(value)
600
+ except ValueError:
601
+ return value
602
+ return value
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,7 +16,7 @@ class OutputSentinelOneAiSiemType(str, Enum):
12
16
  SENTINEL_ONE_AI_SIEM = "sentinel_one_ai_siem"
13
17
 
14
18
 
15
- class OutputSentinelOneAiSiemRegion(str, Enum):
19
+ class OutputSentinelOneAiSiemRegion(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""The SentinelOne region to send events to. In most cases you can find the region by either looking at your SentinelOne URL or knowing what geographic region your SentinelOne instance is contained in."""
17
21
 
18
22
  US = "US"
@@ -24,7 +28,7 @@ class OutputSentinelOneAiSiemRegion(str, Enum):
24
28
  CUSTOM = "Custom"
25
29
 
26
30
 
27
- class AISIEMEndpointPath(str, Enum):
31
+ class AISIEMEndpointPath(str, Enum, metaclass=utils.OpenEnumMeta):
28
32
  r"""Endpoint to send events to. Use /services/collector/event for structured JSON payloads with standard HEC top-level fields. Use /services/collector/raw for unstructured log lines (plain text)."""
29
33
 
30
34
  ROOT_SERVICES_COLLECTOR_EVENT = "/services/collector/event"
@@ -42,15 +46,22 @@ class OutputSentinelOneAiSiemExtraHTTPHeader(BaseModel):
42
46
  name: Optional[str] = None
43
47
 
44
48
 
45
- class OutputSentinelOneAiSiemFailedRequestLoggingMode(str, Enum):
49
+ class OutputSentinelOneAiSiemFailedRequestLoggingMode(
50
+ str, Enum, metaclass=utils.OpenEnumMeta
51
+ ):
46
52
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
47
53
 
54
+ # Payload
48
55
  PAYLOAD = "payload"
56
+ # Payload + Headers
49
57
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
58
+ # None
50
59
  NONE = "none"
51
60
 
52
61
 
53
- class OutputSentinelOneAiSiemAuthenticationMethod(str, Enum):
62
+ class OutputSentinelOneAiSiemAuthenticationMethod(
63
+ str, Enum, metaclass=utils.OpenEnumMeta
64
+ ):
54
65
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
55
66
 
56
67
  MANUAL = "manual"
@@ -111,36 +122,48 @@ class OutputSentinelOneAiSiemTimeoutRetrySettings(BaseModel):
111
122
  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)."""
112
123
 
113
124
 
114
- class OutputSentinelOneAiSiemBackpressureBehavior(str, Enum):
125
+ class OutputSentinelOneAiSiemBackpressureBehavior(
126
+ str, Enum, metaclass=utils.OpenEnumMeta
127
+ ):
115
128
  r"""How to handle events when all receivers are exerting backpressure"""
116
129
 
130
+ # Block
117
131
  BLOCK = "block"
132
+ # Drop
118
133
  DROP = "drop"
134
+ # Persistent Queue
119
135
  QUEUE = "queue"
120
136
 
121
137
 
122
- class OutputSentinelOneAiSiemCompression(str, Enum):
138
+ class OutputSentinelOneAiSiemMode(str, Enum, metaclass=utils.OpenEnumMeta):
139
+ 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."""
140
+
141
+ # Error
142
+ ERROR = "error"
143
+ # Backpressure
144
+ ALWAYS = "always"
145
+ # Always On
146
+ BACKPRESSURE = "backpressure"
147
+
148
+
149
+ class OutputSentinelOneAiSiemCompression(str, Enum, metaclass=utils.OpenEnumMeta):
123
150
  r"""Codec to use to compress the persisted data"""
124
151
 
152
+ # None
125
153
  NONE = "none"
154
+ # Gzip
126
155
  GZIP = "gzip"
127
156
 
128
157
 
129
- class OutputSentinelOneAiSiemQueueFullBehavior(str, Enum):
158
+ class OutputSentinelOneAiSiemQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
130
159
  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."""
131
160
 
161
+ # Block
132
162
  BLOCK = "block"
163
+ # Drop new data
133
164
  DROP = "drop"
134
165
 
135
166
 
136
- class OutputSentinelOneAiSiemMode(str, Enum):
137
- 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."""
138
-
139
- ERROR = "error"
140
- BACKPRESSURE = "backpressure"
141
- ALWAYS = "always"
142
-
143
-
144
167
  class OutputSentinelOneAiSiemPqControlsTypedDict(TypedDict):
145
168
  pass
146
169
 
@@ -240,6 +263,16 @@ class OutputSentinelOneAiSiemTypedDict(TypedDict):
240
263
  r"""Specify the dataSource.vendorvalue to pass as a parameter to AI SIEM. This value should reflect the vendor of the data being inserted. Don't quote this value. The default is cribl."""
241
264
  event_type: NotRequired[str]
242
265
  r"""Specify the event.type value to pass as an optional parameter to AI SIEM. This value acts as a label, grouping events into meaningful categories like Process Creation, File Modification, or Network Connection. Don't quote this value. By default, this field is empty."""
266
+ pq_strict_ordering: NotRequired[bool]
267
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
268
+ pq_rate_per_sec: NotRequired[float]
269
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
270
+ pq_mode: NotRequired[OutputSentinelOneAiSiemMode]
271
+ 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."""
272
+ pq_max_buffer_size: NotRequired[float]
273
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
274
+ pq_max_backpressure_sec: NotRequired[float]
275
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
243
276
  pq_max_file_size: NotRequired[str]
244
277
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
245
278
  pq_max_size: NotRequired[str]
@@ -250,8 +283,6 @@ class OutputSentinelOneAiSiemTypedDict(TypedDict):
250
283
  r"""Codec to use to compress the persisted data"""
251
284
  pq_on_backpressure: NotRequired[OutputSentinelOneAiSiemQueueFullBehavior]
252
285
  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."""
253
- pq_mode: NotRequired[OutputSentinelOneAiSiemMode]
254
- 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."""
255
286
  pq_controls: NotRequired[OutputSentinelOneAiSiemPqControlsTypedDict]
256
287
 
257
288
 
@@ -275,12 +306,15 @@ class OutputSentinelOneAiSiem(BaseModel):
275
306
  streamtags: Optional[List[str]] = None
276
307
  r"""Tags for filtering and grouping in @{product}"""
277
308
 
278
- region: Optional[OutputSentinelOneAiSiemRegion] = OutputSentinelOneAiSiemRegion.US
309
+ region: Annotated[
310
+ Optional[OutputSentinelOneAiSiemRegion],
311
+ PlainValidator(validate_open_enum(False)),
312
+ ] = OutputSentinelOneAiSiemRegion.US
279
313
  r"""The SentinelOne region to send events to. In most cases you can find the region by either looking at your SentinelOne URL or knowing what geographic region your SentinelOne instance is contained in."""
280
314
 
281
- endpoint: Optional[AISIEMEndpointPath] = (
282
- AISIEMEndpointPath.ROOT_SERVICES_COLLECTOR_EVENT
283
- )
315
+ endpoint: Annotated[
316
+ Optional[AISIEMEndpointPath], PlainValidator(validate_open_enum(False))
317
+ ] = AISIEMEndpointPath.ROOT_SERVICES_COLLECTOR_EVENT
284
318
  r"""Endpoint to send events to. Use /services/collector/event for structured JSON payloads with standard HEC top-level fields. Use /services/collector/raw for unstructured log lines (plain text)."""
285
319
 
286
320
  concurrency: Optional[float] = 5
@@ -322,7 +356,10 @@ class OutputSentinelOneAiSiem(BaseModel):
322
356
  r"""Headers to add to all events"""
323
357
 
324
358
  failed_request_logging_mode: Annotated[
325
- Optional[OutputSentinelOneAiSiemFailedRequestLoggingMode],
359
+ Annotated[
360
+ Optional[OutputSentinelOneAiSiemFailedRequestLoggingMode],
361
+ PlainValidator(validate_open_enum(False)),
362
+ ],
326
363
  pydantic.Field(alias="failedRequestLoggingMode"),
327
364
  ] = OutputSentinelOneAiSiemFailedRequestLoggingMode.NONE
328
365
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -333,7 +370,10 @@ class OutputSentinelOneAiSiem(BaseModel):
333
370
  r"""List of headers that are safe to log in plain text"""
334
371
 
335
372
  auth_type: Annotated[
336
- Optional[OutputSentinelOneAiSiemAuthenticationMethod],
373
+ Annotated[
374
+ Optional[OutputSentinelOneAiSiemAuthenticationMethod],
375
+ PlainValidator(validate_open_enum(False)),
376
+ ],
337
377
  pydantic.Field(alias="authType"),
338
378
  ] = OutputSentinelOneAiSiemAuthenticationMethod.MANUAL
339
379
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
@@ -351,11 +391,14 @@ class OutputSentinelOneAiSiem(BaseModel):
351
391
 
352
392
  response_honor_retry_after_header: Annotated[
353
393
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
354
- ] = False
394
+ ] = True
355
395
  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."""
356
396
 
357
397
  on_backpressure: Annotated[
358
- Optional[OutputSentinelOneAiSiemBackpressureBehavior],
398
+ Annotated[
399
+ Optional[OutputSentinelOneAiSiemBackpressureBehavior],
400
+ PlainValidator(validate_open_enum(False)),
401
+ ],
359
402
  pydantic.Field(alias="onBackpressure"),
360
403
  ] = OutputSentinelOneAiSiemBackpressureBehavior.BLOCK
361
404
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -437,6 +480,35 @@ class OutputSentinelOneAiSiem(BaseModel):
437
480
  event_type: Annotated[Optional[str], pydantic.Field(alias="eventType")] = ""
438
481
  r"""Specify the event.type value to pass as an optional parameter to AI SIEM. This value acts as a label, grouping events into meaningful categories like Process Creation, File Modification, or Network Connection. Don't quote this value. By default, this field is empty."""
439
482
 
483
+ pq_strict_ordering: Annotated[
484
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
485
+ ] = True
486
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
487
+
488
+ pq_rate_per_sec: Annotated[
489
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
490
+ ] = 0
491
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
492
+
493
+ pq_mode: Annotated[
494
+ Annotated[
495
+ Optional[OutputSentinelOneAiSiemMode],
496
+ PlainValidator(validate_open_enum(False)),
497
+ ],
498
+ pydantic.Field(alias="pqMode"),
499
+ ] = OutputSentinelOneAiSiemMode.ERROR
500
+ 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."""
501
+
502
+ pq_max_buffer_size: Annotated[
503
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
504
+ ] = 42
505
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
506
+
507
+ pq_max_backpressure_sec: Annotated[
508
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
509
+ ] = 30
510
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
511
+
440
512
  pq_max_file_size: Annotated[
441
513
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
442
514
  ] = "1 MB"
@@ -451,21 +523,95 @@ class OutputSentinelOneAiSiem(BaseModel):
451
523
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
452
524
 
453
525
  pq_compress: Annotated[
454
- Optional[OutputSentinelOneAiSiemCompression], pydantic.Field(alias="pqCompress")
526
+ Annotated[
527
+ Optional[OutputSentinelOneAiSiemCompression],
528
+ PlainValidator(validate_open_enum(False)),
529
+ ],
530
+ pydantic.Field(alias="pqCompress"),
455
531
  ] = OutputSentinelOneAiSiemCompression.NONE
456
532
  r"""Codec to use to compress the persisted data"""
457
533
 
458
534
  pq_on_backpressure: Annotated[
459
- Optional[OutputSentinelOneAiSiemQueueFullBehavior],
535
+ Annotated[
536
+ Optional[OutputSentinelOneAiSiemQueueFullBehavior],
537
+ PlainValidator(validate_open_enum(False)),
538
+ ],
460
539
  pydantic.Field(alias="pqOnBackpressure"),
461
540
  ] = OutputSentinelOneAiSiemQueueFullBehavior.BLOCK
462
541
  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."""
463
542
 
464
- pq_mode: Annotated[
465
- Optional[OutputSentinelOneAiSiemMode], pydantic.Field(alias="pqMode")
466
- ] = OutputSentinelOneAiSiemMode.ERROR
467
- 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."""
468
-
469
543
  pq_controls: Annotated[
470
544
  Optional[OutputSentinelOneAiSiemPqControls], pydantic.Field(alias="pqControls")
471
545
  ] = None
546
+
547
+ @field_serializer("region")
548
+ def serialize_region(self, value):
549
+ if isinstance(value, str):
550
+ try:
551
+ return models.OutputSentinelOneAiSiemRegion(value)
552
+ except ValueError:
553
+ return value
554
+ return value
555
+
556
+ @field_serializer("endpoint")
557
+ def serialize_endpoint(self, value):
558
+ if isinstance(value, str):
559
+ try:
560
+ return models.AISIEMEndpointPath(value)
561
+ except ValueError:
562
+ return value
563
+ return value
564
+
565
+ @field_serializer("failed_request_logging_mode")
566
+ def serialize_failed_request_logging_mode(self, value):
567
+ if isinstance(value, str):
568
+ try:
569
+ return models.OutputSentinelOneAiSiemFailedRequestLoggingMode(value)
570
+ except ValueError:
571
+ return value
572
+ return value
573
+
574
+ @field_serializer("auth_type")
575
+ def serialize_auth_type(self, value):
576
+ if isinstance(value, str):
577
+ try:
578
+ return models.OutputSentinelOneAiSiemAuthenticationMethod(value)
579
+ except ValueError:
580
+ return value
581
+ return value
582
+
583
+ @field_serializer("on_backpressure")
584
+ def serialize_on_backpressure(self, value):
585
+ if isinstance(value, str):
586
+ try:
587
+ return models.OutputSentinelOneAiSiemBackpressureBehavior(value)
588
+ except ValueError:
589
+ return value
590
+ return value
591
+
592
+ @field_serializer("pq_mode")
593
+ def serialize_pq_mode(self, value):
594
+ if isinstance(value, str):
595
+ try:
596
+ return models.OutputSentinelOneAiSiemMode(value)
597
+ except ValueError:
598
+ return value
599
+ return value
600
+
601
+ @field_serializer("pq_compress")
602
+ def serialize_pq_compress(self, value):
603
+ if isinstance(value, str):
604
+ try:
605
+ return models.OutputSentinelOneAiSiemCompression(value)
606
+ except ValueError:
607
+ return value
608
+ return value
609
+
610
+ @field_serializer("pq_on_backpressure")
611
+ def serialize_pq_on_backpressure(self, value):
612
+ if isinstance(value, str):
613
+ try:
614
+ return models.OutputSentinelOneAiSiemQueueFullBehavior(value)
615
+ except ValueError:
616
+ return value
617
+ return value