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,14 +16,14 @@ class OutputCriblHTTPType(str, Enum):
12
16
  CRIBL_HTTP = "cribl_http"
13
17
 
14
18
 
15
- class OutputCriblHTTPMinimumTLSVersion(str, Enum):
19
+ class OutputCriblHTTPMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  TL_SV1 = "TLSv1"
17
21
  TL_SV1_1 = "TLSv1.1"
18
22
  TL_SV1_2 = "TLSv1.2"
19
23
  TL_SV1_3 = "TLSv1.3"
20
24
 
21
25
 
22
- class OutputCriblHTTPMaximumTLSVersion(str, Enum):
26
+ class OutputCriblHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
27
  TL_SV1 = "TLSv1"
24
28
  TL_SV1_1 = "TLSv1.1"
25
29
  TL_SV1_2 = "TLSv1.2"
@@ -79,18 +83,46 @@ class OutputCriblHTTPTLSSettingsClientSide(BaseModel):
79
83
  r"""Passphrase to use to decrypt private key"""
80
84
 
81
85
  min_version: Annotated[
82
- Optional[OutputCriblHTTPMinimumTLSVersion], pydantic.Field(alias="minVersion")
86
+ Annotated[
87
+ Optional[OutputCriblHTTPMinimumTLSVersion],
88
+ PlainValidator(validate_open_enum(False)),
89
+ ],
90
+ pydantic.Field(alias="minVersion"),
83
91
  ] = None
84
92
 
85
93
  max_version: Annotated[
86
- Optional[OutputCriblHTTPMaximumTLSVersion], pydantic.Field(alias="maxVersion")
94
+ Annotated[
95
+ Optional[OutputCriblHTTPMaximumTLSVersion],
96
+ PlainValidator(validate_open_enum(False)),
97
+ ],
98
+ pydantic.Field(alias="maxVersion"),
87
99
  ] = None
88
100
 
89
-
90
- class OutputCriblHTTPCompression(str, Enum):
101
+ @field_serializer("min_version")
102
+ def serialize_min_version(self, value):
103
+ if isinstance(value, str):
104
+ try:
105
+ return models.OutputCriblHTTPMinimumTLSVersion(value)
106
+ except ValueError:
107
+ return value
108
+ return value
109
+
110
+ @field_serializer("max_version")
111
+ def serialize_max_version(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.OutputCriblHTTPMaximumTLSVersion(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+
120
+ class OutputCriblHTTPCompression(str, Enum, metaclass=utils.OpenEnumMeta):
91
121
  r"""Codec to use to compress the data before sending"""
92
122
 
123
+ # None
93
124
  NONE = "none"
125
+ # Gzip
94
126
  GZIP = "gzip"
95
127
 
96
128
 
@@ -105,11 +137,14 @@ class OutputCriblHTTPExtraHTTPHeader(BaseModel):
105
137
  name: Optional[str] = None
106
138
 
107
139
 
108
- class OutputCriblHTTPFailedRequestLoggingMode(str, Enum):
140
+ class OutputCriblHTTPFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
109
141
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
110
142
 
143
+ # Payload
111
144
  PAYLOAD = "payload"
145
+ # Payload + Headers
112
146
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
147
+ # None
113
148
  NONE = "none"
114
149
 
115
150
 
@@ -167,11 +202,30 @@ class OutputCriblHTTPTimeoutRetrySettings(BaseModel):
167
202
  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)."""
168
203
 
169
204
 
170
- class OutputCriblHTTPBackpressureBehavior(str, Enum):
205
+ class OutputCriblHTTPAuthTokenTypedDict(TypedDict):
206
+ token_secret: str
207
+ r"""Select or create a stored text secret"""
208
+ enabled: NotRequired[bool]
209
+ description: NotRequired[str]
210
+
211
+
212
+ class OutputCriblHTTPAuthToken(BaseModel):
213
+ token_secret: Annotated[str, pydantic.Field(alias="tokenSecret")]
214
+ r"""Select or create a stored text secret"""
215
+
216
+ enabled: Optional[bool] = True
217
+
218
+ description: Optional[str] = None
219
+
220
+
221
+ class OutputCriblHTTPBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
171
222
  r"""How to handle events when all receivers are exerting backpressure"""
172
223
 
224
+ # Block
173
225
  BLOCK = "block"
226
+ # Drop
174
227
  DROP = "drop"
228
+ # Persistent Queue
175
229
  QUEUE = "queue"
176
230
 
177
231
 
@@ -190,28 +244,35 @@ class OutputCriblHTTPURL(BaseModel):
190
244
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
191
245
 
192
246
 
193
- class OutputCriblHTTPPqCompressCompression(str, Enum):
247
+ class OutputCriblHTTPMode(str, Enum, metaclass=utils.OpenEnumMeta):
248
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
249
+
250
+ # Error
251
+ ERROR = "error"
252
+ # Backpressure
253
+ ALWAYS = "always"
254
+ # Always On
255
+ BACKPRESSURE = "backpressure"
256
+
257
+
258
+ class OutputCriblHTTPPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
194
259
  r"""Codec to use to compress the persisted data"""
195
260
 
261
+ # None
196
262
  NONE = "none"
263
+ # Gzip
197
264
  GZIP = "gzip"
198
265
 
199
266
 
200
- class OutputCriblHTTPQueueFullBehavior(str, Enum):
267
+ class OutputCriblHTTPQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
201
268
  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."""
202
269
 
270
+ # Block
203
271
  BLOCK = "block"
272
+ # Drop new data
204
273
  DROP = "drop"
205
274
 
206
275
 
207
- class OutputCriblHTTPMode(str, Enum):
208
- 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."""
209
-
210
- ERROR = "error"
211
- BACKPRESSURE = "backpressure"
212
- ALWAYS = "always"
213
-
214
-
215
276
  class OutputCriblHTTPPqControlsTypedDict(TypedDict):
216
277
  pass
217
278
 
@@ -269,6 +330,8 @@ class OutputCriblHTTPTypedDict(TypedDict):
269
330
  timeout_retry_settings: NotRequired[OutputCriblHTTPTimeoutRetrySettingsTypedDict]
270
331
  response_honor_retry_after_header: NotRequired[bool]
271
332
  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."""
333
+ auth_tokens: NotRequired[List[OutputCriblHTTPAuthTokenTypedDict]]
334
+ r"""Shared secrets to be used by connected environments to authorize connections. These tokens should also be installed in Cribl HTTP Source in Cribl.Cloud."""
272
335
  on_backpressure: NotRequired[OutputCriblHTTPBackpressureBehavior]
273
336
  r"""How to handle events when all receivers are exerting backpressure"""
274
337
  description: NotRequired[str]
@@ -283,6 +346,16 @@ class OutputCriblHTTPTypedDict(TypedDict):
283
346
  r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
284
347
  load_balance_stats_period_sec: NotRequired[float]
285
348
  r"""How far back in time to keep traffic stats for load balancing purposes"""
349
+ pq_strict_ordering: NotRequired[bool]
350
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
351
+ pq_rate_per_sec: NotRequired[float]
352
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
353
+ pq_mode: NotRequired[OutputCriblHTTPMode]
354
+ 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."""
355
+ pq_max_buffer_size: NotRequired[float]
356
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
357
+ pq_max_backpressure_sec: NotRequired[float]
358
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
286
359
  pq_max_file_size: NotRequired[str]
287
360
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
288
361
  pq_max_size: NotRequired[str]
@@ -293,8 +366,6 @@ class OutputCriblHTTPTypedDict(TypedDict):
293
366
  r"""Codec to use to compress the persisted data"""
294
367
  pq_on_backpressure: NotRequired[OutputCriblHTTPQueueFullBehavior]
295
368
  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."""
296
- pq_mode: NotRequired[OutputCriblHTTPMode]
297
- 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."""
298
369
  pq_controls: NotRequired[OutputCriblHTTPPqControlsTypedDict]
299
370
 
300
371
 
@@ -335,7 +406,9 @@ class OutputCriblHTTP(BaseModel):
335
406
  ] = None
336
407
  r"""Fields to exclude from the event. By default, all internal fields except `__output` are sent. Example: `cribl_pipe`, `c*`. Wildcards supported."""
337
408
 
338
- compression: Optional[OutputCriblHTTPCompression] = OutputCriblHTTPCompression.GZIP
409
+ compression: Annotated[
410
+ Optional[OutputCriblHTTPCompression], PlainValidator(validate_open_enum(False))
411
+ ] = OutputCriblHTTPCompression.GZIP
339
412
  r"""Codec to use to compress the data before sending"""
340
413
 
341
414
  concurrency: Optional[float] = 5
@@ -374,7 +447,10 @@ class OutputCriblHTTP(BaseModel):
374
447
  r"""Headers to add to all events"""
375
448
 
376
449
  failed_request_logging_mode: Annotated[
377
- Optional[OutputCriblHTTPFailedRequestLoggingMode],
450
+ Annotated[
451
+ Optional[OutputCriblHTTPFailedRequestLoggingMode],
452
+ PlainValidator(validate_open_enum(False)),
453
+ ],
378
454
  pydantic.Field(alias="failedRequestLoggingMode"),
379
455
  ] = OutputCriblHTTPFailedRequestLoggingMode.NONE
380
456
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -397,11 +473,19 @@ class OutputCriblHTTP(BaseModel):
397
473
 
398
474
  response_honor_retry_after_header: Annotated[
399
475
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
400
- ] = False
476
+ ] = True
401
477
  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."""
402
478
 
479
+ auth_tokens: Annotated[
480
+ Optional[List[OutputCriblHTTPAuthToken]], pydantic.Field(alias="authTokens")
481
+ ] = None
482
+ r"""Shared secrets to be used by connected environments to authorize connections. These tokens should also be installed in Cribl HTTP Source in Cribl.Cloud."""
483
+
403
484
  on_backpressure: Annotated[
404
- Optional[OutputCriblHTTPBackpressureBehavior],
485
+ Annotated[
486
+ Optional[OutputCriblHTTPBackpressureBehavior],
487
+ PlainValidator(validate_open_enum(False)),
488
+ ],
405
489
  pydantic.Field(alias="onBackpressure"),
406
490
  ] = OutputCriblHTTPBackpressureBehavior.BLOCK
407
491
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -431,6 +515,34 @@ class OutputCriblHTTP(BaseModel):
431
515
  ] = 300
432
516
  r"""How far back in time to keep traffic stats for load balancing purposes"""
433
517
 
518
+ pq_strict_ordering: Annotated[
519
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
520
+ ] = True
521
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
522
+
523
+ pq_rate_per_sec: Annotated[
524
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
525
+ ] = 0
526
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
527
+
528
+ pq_mode: Annotated[
529
+ Annotated[
530
+ Optional[OutputCriblHTTPMode], PlainValidator(validate_open_enum(False))
531
+ ],
532
+ pydantic.Field(alias="pqMode"),
533
+ ] = OutputCriblHTTPMode.ERROR
534
+ 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."""
535
+
536
+ pq_max_buffer_size: Annotated[
537
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
538
+ ] = 42
539
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
540
+
541
+ pq_max_backpressure_sec: Annotated[
542
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
543
+ ] = 30
544
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
545
+
434
546
  pq_max_file_size: Annotated[
435
547
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
436
548
  ] = "1 MB"
@@ -445,22 +557,77 @@ class OutputCriblHTTP(BaseModel):
445
557
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
446
558
 
447
559
  pq_compress: Annotated[
448
- Optional[OutputCriblHTTPPqCompressCompression],
560
+ Annotated[
561
+ Optional[OutputCriblHTTPPqCompressCompression],
562
+ PlainValidator(validate_open_enum(False)),
563
+ ],
449
564
  pydantic.Field(alias="pqCompress"),
450
565
  ] = OutputCriblHTTPPqCompressCompression.NONE
451
566
  r"""Codec to use to compress the persisted data"""
452
567
 
453
568
  pq_on_backpressure: Annotated[
454
- Optional[OutputCriblHTTPQueueFullBehavior],
569
+ Annotated[
570
+ Optional[OutputCriblHTTPQueueFullBehavior],
571
+ PlainValidator(validate_open_enum(False)),
572
+ ],
455
573
  pydantic.Field(alias="pqOnBackpressure"),
456
574
  ] = OutputCriblHTTPQueueFullBehavior.BLOCK
457
575
  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."""
458
576
 
459
- pq_mode: Annotated[
460
- Optional[OutputCriblHTTPMode], pydantic.Field(alias="pqMode")
461
- ] = OutputCriblHTTPMode.ERROR
462
- 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."""
463
-
464
577
  pq_controls: Annotated[
465
578
  Optional[OutputCriblHTTPPqControls], pydantic.Field(alias="pqControls")
466
579
  ] = None
580
+
581
+ @field_serializer("compression")
582
+ def serialize_compression(self, value):
583
+ if isinstance(value, str):
584
+ try:
585
+ return models.OutputCriblHTTPCompression(value)
586
+ except ValueError:
587
+ return value
588
+ return value
589
+
590
+ @field_serializer("failed_request_logging_mode")
591
+ def serialize_failed_request_logging_mode(self, value):
592
+ if isinstance(value, str):
593
+ try:
594
+ return models.OutputCriblHTTPFailedRequestLoggingMode(value)
595
+ except ValueError:
596
+ return value
597
+ return value
598
+
599
+ @field_serializer("on_backpressure")
600
+ def serialize_on_backpressure(self, value):
601
+ if isinstance(value, str):
602
+ try:
603
+ return models.OutputCriblHTTPBackpressureBehavior(value)
604
+ except ValueError:
605
+ return value
606
+ return value
607
+
608
+ @field_serializer("pq_mode")
609
+ def serialize_pq_mode(self, value):
610
+ if isinstance(value, str):
611
+ try:
612
+ return models.OutputCriblHTTPMode(value)
613
+ except ValueError:
614
+ return value
615
+ return value
616
+
617
+ @field_serializer("pq_compress")
618
+ def serialize_pq_compress(self, value):
619
+ if isinstance(value, str):
620
+ try:
621
+ return models.OutputCriblHTTPPqCompressCompression(value)
622
+ except ValueError:
623
+ return value
624
+ return value
625
+
626
+ @field_serializer("pq_on_backpressure")
627
+ def serialize_pq_on_backpressure(self, value):
628
+ if isinstance(value, str):
629
+ try:
630
+ return models.OutputCriblHTTPQueueFullBehavior(value)
631
+ except ValueError:
632
+ return value
633
+ 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,64 +16,87 @@ class OutputCriblLakeType(str, Enum):
12
16
  CRIBL_LAKE = "cribl_lake"
13
17
 
14
18
 
15
- class OutputCriblLakeSignatureVersion(str, Enum):
19
+ class OutputCriblLakeSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Signature version to use for signing S3 requests"""
17
21
 
18
22
  V2 = "v2"
19
23
  V4 = "v4"
20
24
 
21
25
 
22
- class OutputCriblLakeObjectACL(str, Enum):
26
+ class OutputCriblLakeObjectACL(str, Enum, metaclass=utils.OpenEnumMeta):
23
27
  r"""Object ACL to assign to uploaded objects"""
24
28
 
29
+ # Private
25
30
  PRIVATE = "private"
31
+ # Public Read Only
26
32
  PUBLIC_READ = "public-read"
33
+ # Public Read/Write
27
34
  PUBLIC_READ_WRITE = "public-read-write"
35
+ # Authenticated Read Only
28
36
  AUTHENTICATED_READ = "authenticated-read"
37
+ # AWS EC2 AMI Read Only
29
38
  AWS_EXEC_READ = "aws-exec-read"
39
+ # Bucket Owner Read Only
30
40
  BUCKET_OWNER_READ = "bucket-owner-read"
41
+ # Bucket Owner Full Control
31
42
  BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control"
32
43
 
33
44
 
34
- class OutputCriblLakeStorageClass(str, Enum):
45
+ class OutputCriblLakeStorageClass(str, Enum, metaclass=utils.OpenEnumMeta):
35
46
  r"""Storage class to select for uploaded objects"""
36
47
 
48
+ # Standard
37
49
  STANDARD = "STANDARD"
50
+ # Reduced Redundancy Storage
38
51
  REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY"
52
+ # Standard, Infrequent Access
39
53
  STANDARD_IA = "STANDARD_IA"
54
+ # One Zone, Infrequent Access
40
55
  ONEZONE_IA = "ONEZONE_IA"
56
+ # Intelligent Tiering
41
57
  INTELLIGENT_TIERING = "INTELLIGENT_TIERING"
58
+ # Glacier Flexible Retrieval
42
59
  GLACIER = "GLACIER"
60
+ # Glacier Instant Retrieval
43
61
  GLACIER_IR = "GLACIER_IR"
62
+ # Glacier Deep Archive
44
63
  DEEP_ARCHIVE = "DEEP_ARCHIVE"
45
64
 
46
65
 
47
- class OutputCriblLakeServerSideEncryptionForUploadedObjects(str, Enum):
66
+ class OutputCriblLakeServerSideEncryptionForUploadedObjects(
67
+ str, Enum, metaclass=utils.OpenEnumMeta
68
+ ):
69
+ # Amazon S3 Managed Key
48
70
  AES256 = "AES256"
71
+ # AWS KMS Managed Key
49
72
  AWS_KMS = "aws:kms"
50
73
 
51
74
 
52
- class OutputCriblLakeBackpressureBehavior(str, Enum):
75
+ class OutputCriblLakeBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
76
  r"""How to handle events when all receivers are exerting backpressure"""
54
77
 
78
+ # Block
55
79
  BLOCK = "block"
80
+ # Drop
56
81
  DROP = "drop"
57
82
 
58
83
 
59
- class OutputCriblLakeDiskSpaceProtection(str, Enum):
84
+ class OutputCriblLakeDiskSpaceProtection(str, Enum, metaclass=utils.OpenEnumMeta):
60
85
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
61
86
 
87
+ # Block
62
88
  BLOCK = "block"
89
+ # Drop
63
90
  DROP = "drop"
64
91
 
65
92
 
66
- class AwsAuthenticationMethod(str, Enum):
93
+ class AwsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
67
94
  AUTO = "auto"
68
95
  AUTO_RPC = "auto_rpc"
69
96
  MANUAL = "manual"
70
97
 
71
98
 
72
- class OutputCriblLakeFormat(str, Enum):
99
+ class OutputCriblLakeFormat(str, Enum, metaclass=utils.OpenEnumMeta):
73
100
  JSON = "json"
74
101
  PARQUET = "parquet"
75
102
  DDSS = "ddss"
@@ -144,6 +171,8 @@ class OutputCriblLakeTypedDict(TypedDict):
144
171
  r"""If a file fails to move to its final destination after the maximum number of retries, move it to a designated directory to prevent further errors"""
145
172
  on_disk_full_backpressure: NotRequired[OutputCriblLakeDiskSpaceProtection]
146
173
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
174
+ force_close_on_shutdown: NotRequired[bool]
175
+ r"""Force all staged files to close during an orderly Node shutdown. This triggers immediate upload of in-progress data — regardless of idle time, file age, or size thresholds — to minimize data loss."""
147
176
  max_file_open_time_sec: NotRequired[float]
148
177
  r"""Maximum amount of time to write to a file. Files open for longer than this will be closed and moved to final output location."""
149
178
  max_file_idle_time_sec: NotRequired[float]
@@ -159,6 +188,8 @@ class OutputCriblLakeTypedDict(TypedDict):
159
188
  description: NotRequired[str]
160
189
  empty_dir_cleanup_sec: NotRequired[float]
161
190
  r"""How frequently, in seconds, to clean up empty directories"""
191
+ directory_batch_size: NotRequired[float]
192
+ r"""Number of directories to process in each batch during cleanup of empty directories. Minimum is 10, maximum is 10000. Higher values may require more memory."""
162
193
  deadletter_path: NotRequired[str]
163
194
  r"""Storage location for files that fail to reach their final destination after maximum retries are exceeded"""
164
195
  max_retry_num: NotRequired[float]
@@ -200,7 +231,10 @@ class OutputCriblLake(BaseModel):
200
231
  r"""S3 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to S3-compatible endpoint."""
201
232
 
202
233
  signature_version: Annotated[
203
- Optional[OutputCriblLakeSignatureVersion],
234
+ Annotated[
235
+ Optional[OutputCriblLakeSignatureVersion],
236
+ PlainValidator(validate_open_enum(False)),
237
+ ],
204
238
  pydantic.Field(alias="signatureVersion"),
205
239
  ] = OutputCriblLakeSignatureVersion.V4
206
240
  r"""Signature version to use for signing S3 requests"""
@@ -249,17 +283,28 @@ class OutputCriblLake(BaseModel):
249
283
  r"""Lake dataset to send the data to."""
250
284
 
251
285
  object_acl: Annotated[
252
- Optional[OutputCriblLakeObjectACL], pydantic.Field(alias="objectACL")
286
+ Annotated[
287
+ Optional[OutputCriblLakeObjectACL],
288
+ PlainValidator(validate_open_enum(False)),
289
+ ],
290
+ pydantic.Field(alias="objectACL"),
253
291
  ] = OutputCriblLakeObjectACL.PRIVATE
254
292
  r"""Object ACL to assign to uploaded objects"""
255
293
 
256
294
  storage_class: Annotated[
257
- Optional[OutputCriblLakeStorageClass], pydantic.Field(alias="storageClass")
295
+ Annotated[
296
+ Optional[OutputCriblLakeStorageClass],
297
+ PlainValidator(validate_open_enum(False)),
298
+ ],
299
+ pydantic.Field(alias="storageClass"),
258
300
  ] = None
259
301
  r"""Storage class to select for uploaded objects"""
260
302
 
261
303
  server_side_encryption: Annotated[
262
- Optional[OutputCriblLakeServerSideEncryptionForUploadedObjects],
304
+ Annotated[
305
+ Optional[OutputCriblLakeServerSideEncryptionForUploadedObjects],
306
+ PlainValidator(validate_open_enum(False)),
307
+ ],
263
308
  pydantic.Field(alias="serverSideEncryption"),
264
309
  ] = None
265
310
 
@@ -300,7 +345,10 @@ class OutputCriblLake(BaseModel):
300
345
  r"""Buffer size used to write to a file"""
301
346
 
302
347
  on_backpressure: Annotated[
303
- Optional[OutputCriblLakeBackpressureBehavior],
348
+ Annotated[
349
+ Optional[OutputCriblLakeBackpressureBehavior],
350
+ PlainValidator(validate_open_enum(False)),
351
+ ],
304
352
  pydantic.Field(alias="onBackpressure"),
305
353
  ] = OutputCriblLakeBackpressureBehavior.BLOCK
306
354
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -311,11 +359,19 @@ class OutputCriblLake(BaseModel):
311
359
  r"""If a file fails to move to its final destination after the maximum number of retries, move it to a designated directory to prevent further errors"""
312
360
 
313
361
  on_disk_full_backpressure: Annotated[
314
- Optional[OutputCriblLakeDiskSpaceProtection],
362
+ Annotated[
363
+ Optional[OutputCriblLakeDiskSpaceProtection],
364
+ PlainValidator(validate_open_enum(False)),
365
+ ],
315
366
  pydantic.Field(alias="onDiskFullBackpressure"),
316
367
  ] = OutputCriblLakeDiskSpaceProtection.BLOCK
317
368
  r"""How to handle events when disk space is below the global 'Min free disk space' limit"""
318
369
 
370
+ force_close_on_shutdown: Annotated[
371
+ Optional[bool], pydantic.Field(alias="forceCloseOnShutdown")
372
+ ] = False
373
+ r"""Force all staged files to close during an orderly Node shutdown. This triggers immediate upload of in-progress data — regardless of idle time, file age, or size thresholds — to minimize data loss."""
374
+
319
375
  max_file_open_time_sec: Annotated[
320
376
  Optional[float], pydantic.Field(alias="maxFileOpenTimeSec")
321
377
  ] = 300
@@ -337,12 +393,17 @@ class OutputCriblLake(BaseModel):
337
393
  r"""Maximum number of files that can be waiting for upload before backpressure is applied"""
338
394
 
339
395
  aws_authentication_method: Annotated[
340
- Optional[AwsAuthenticationMethod],
396
+ Annotated[
397
+ Optional[AwsAuthenticationMethod], PlainValidator(validate_open_enum(False))
398
+ ],
341
399
  pydantic.Field(alias="awsAuthenticationMethod"),
342
400
  ] = AwsAuthenticationMethod.AUTO
343
401
 
344
402
  format_: Annotated[
345
- Optional[OutputCriblLakeFormat], pydantic.Field(alias="format")
403
+ Annotated[
404
+ Optional[OutputCriblLakeFormat], PlainValidator(validate_open_enum(False))
405
+ ],
406
+ pydantic.Field(alias="format"),
346
407
  ] = None
347
408
 
348
409
  max_concurrent_file_parts: Annotated[
@@ -357,6 +418,11 @@ class OutputCriblLake(BaseModel):
357
418
  ] = 300
358
419
  r"""How frequently, in seconds, to clean up empty directories"""
359
420
 
421
+ directory_batch_size: Annotated[
422
+ Optional[float], pydantic.Field(alias="directoryBatchSize")
423
+ ] = 1000
424
+ r"""Number of directories to process in each batch during cleanup of empty directories. Minimum is 10, maximum is 10000. Higher values may require more memory."""
425
+
360
426
  deadletter_path: Annotated[
361
427
  Optional[str], pydantic.Field(alias="deadletterPath")
362
428
  ] = "$CRIBL_HOME/state/outputs/dead-letter"
@@ -364,3 +430,77 @@ class OutputCriblLake(BaseModel):
364
430
 
365
431
  max_retry_num: Annotated[Optional[float], pydantic.Field(alias="maxRetryNum")] = 20
366
432
  r"""The maximum number of times a file will attempt to move to its final destination before being dead-lettered"""
433
+
434
+ @field_serializer("signature_version")
435
+ def serialize_signature_version(self, value):
436
+ if isinstance(value, str):
437
+ try:
438
+ return models.OutputCriblLakeSignatureVersion(value)
439
+ except ValueError:
440
+ return value
441
+ return value
442
+
443
+ @field_serializer("object_acl")
444
+ def serialize_object_acl(self, value):
445
+ if isinstance(value, str):
446
+ try:
447
+ return models.OutputCriblLakeObjectACL(value)
448
+ except ValueError:
449
+ return value
450
+ return value
451
+
452
+ @field_serializer("storage_class")
453
+ def serialize_storage_class(self, value):
454
+ if isinstance(value, str):
455
+ try:
456
+ return models.OutputCriblLakeStorageClass(value)
457
+ except ValueError:
458
+ return value
459
+ return value
460
+
461
+ @field_serializer("server_side_encryption")
462
+ def serialize_server_side_encryption(self, value):
463
+ if isinstance(value, str):
464
+ try:
465
+ return models.OutputCriblLakeServerSideEncryptionForUploadedObjects(
466
+ value
467
+ )
468
+ except ValueError:
469
+ return value
470
+ return value
471
+
472
+ @field_serializer("on_backpressure")
473
+ def serialize_on_backpressure(self, value):
474
+ if isinstance(value, str):
475
+ try:
476
+ return models.OutputCriblLakeBackpressureBehavior(value)
477
+ except ValueError:
478
+ return value
479
+ return value
480
+
481
+ @field_serializer("on_disk_full_backpressure")
482
+ def serialize_on_disk_full_backpressure(self, value):
483
+ if isinstance(value, str):
484
+ try:
485
+ return models.OutputCriblLakeDiskSpaceProtection(value)
486
+ except ValueError:
487
+ return value
488
+ return value
489
+
490
+ @field_serializer("aws_authentication_method")
491
+ def serialize_aws_authentication_method(self, value):
492
+ if isinstance(value, str):
493
+ try:
494
+ return models.AwsAuthenticationMethod(value)
495
+ except ValueError:
496
+ return value
497
+ return value
498
+
499
+ @field_serializer("format_")
500
+ def serialize_format_(self, value):
501
+ if isinstance(value, str):
502
+ try:
503
+ return models.OutputCriblLakeFormat(value)
504
+ except ValueError:
505
+ return value
506
+ return value