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,20 +27,32 @@ class InputConfluentCloudConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputConfluentCloudMode(str, Enum):
30
+ class InputConfluentCloudMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
32
 
33
+ # Smart
29
34
  SMART = "smart"
35
+ # Always On
30
36
  ALWAYS = "always"
31
37
 
32
38
 
33
- class InputConfluentCloudCompression(str, Enum):
39
+ class InputConfluentCloudCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
40
  r"""Codec to use to compress the persisted data"""
35
41
 
42
+ # None
36
43
  NONE = "none"
44
+ # Gzip
37
45
  GZIP = "gzip"
38
46
 
39
47
 
48
+ class InputConfluentCloudPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputConfluentCloudPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputConfluentCloudPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputConfluentCloudMode]
42
58
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
@@ -52,10 +68,13 @@ class InputConfluentCloudPqTypedDict(TypedDict):
52
68
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
53
69
  compress: NotRequired[InputConfluentCloudCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputConfluentCloudPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputConfluentCloudPq(BaseModel):
58
- mode: Optional[InputConfluentCloudMode] = InputConfluentCloudMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputConfluentCloudMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputConfluentCloudMode.ALWAYS
59
78
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
60
79
 
61
80
  max_buffer_size: Annotated[
@@ -79,20 +98,43 @@ class InputConfluentCloudPq(BaseModel):
79
98
  path: Optional[str] = "$CRIBL_HOME/state/queues"
80
99
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
81
100
 
82
- compress: Optional[InputConfluentCloudCompression] = (
83
- InputConfluentCloudCompression.NONE
84
- )
101
+ compress: Annotated[
102
+ Optional[InputConfluentCloudCompression],
103
+ PlainValidator(validate_open_enum(False)),
104
+ ] = InputConfluentCloudCompression.NONE
85
105
  r"""Codec to use to compress the persisted data"""
86
106
 
107
+ pq_controls: Annotated[
108
+ Optional[InputConfluentCloudPqControls], pydantic.Field(alias="pqControls")
109
+ ] = None
87
110
 
88
- class InputConfluentCloudMinimumTLSVersion(str, Enum):
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputConfluentCloudMode(value)
116
+ except ValueError:
117
+ return value
118
+ return value
119
+
120
+ @field_serializer("compress")
121
+ def serialize_compress(self, value):
122
+ if isinstance(value, str):
123
+ try:
124
+ return models.InputConfluentCloudCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
129
+
130
+ class InputConfluentCloudMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
89
131
  TL_SV1 = "TLSv1"
90
132
  TL_SV1_1 = "TLSv1.1"
91
133
  TL_SV1_2 = "TLSv1.2"
92
134
  TL_SV1_3 = "TLSv1.3"
93
135
 
94
136
 
95
- class InputConfluentCloudMaximumTLSVersion(str, Enum):
137
+ class InputConfluentCloudMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
96
138
  TL_SV1 = "TLSv1"
97
139
  TL_SV1_1 = "TLSv1.1"
98
140
  TL_SV1_2 = "TLSv1.2"
@@ -152,21 +194,38 @@ class InputConfluentCloudTLSSettingsClientSide(BaseModel):
152
194
  r"""Passphrase to use to decrypt private key"""
153
195
 
154
196
  min_version: Annotated[
155
- Optional[InputConfluentCloudMinimumTLSVersion],
197
+ Annotated[
198
+ Optional[InputConfluentCloudMinimumTLSVersion],
199
+ PlainValidator(validate_open_enum(False)),
200
+ ],
156
201
  pydantic.Field(alias="minVersion"),
157
202
  ] = None
158
203
 
159
204
  max_version: Annotated[
160
- Optional[InputConfluentCloudMaximumTLSVersion],
205
+ Annotated[
206
+ Optional[InputConfluentCloudMaximumTLSVersion],
207
+ PlainValidator(validate_open_enum(False)),
208
+ ],
161
209
  pydantic.Field(alias="maxVersion"),
162
210
  ] = None
163
211
 
164
-
165
- class InputConfluentCloudSchemaType(str, Enum):
166
- r"""The schema format used to encode and decode event data"""
167
-
168
- AVRO = "avro"
169
- JSON = "json"
212
+ @field_serializer("min_version")
213
+ def serialize_min_version(self, value):
214
+ if isinstance(value, str):
215
+ try:
216
+ return models.InputConfluentCloudMinimumTLSVersion(value)
217
+ except ValueError:
218
+ return value
219
+ return value
220
+
221
+ @field_serializer("max_version")
222
+ def serialize_max_version(self, value):
223
+ if isinstance(value, str):
224
+ try:
225
+ return models.InputConfluentCloudMaximumTLSVersion(value)
226
+ except ValueError:
227
+ return value
228
+ return value
170
229
 
171
230
 
172
231
  class InputConfluentCloudAuthTypedDict(TypedDict):
@@ -188,14 +247,18 @@ class InputConfluentCloudAuth(BaseModel):
188
247
  r"""Select or create a secret that references your credentials"""
189
248
 
190
249
 
191
- class InputConfluentCloudKafkaSchemaRegistryMinimumTLSVersion(str, Enum):
250
+ class InputConfluentCloudKafkaSchemaRegistryMinimumTLSVersion(
251
+ str, Enum, metaclass=utils.OpenEnumMeta
252
+ ):
192
253
  TL_SV1 = "TLSv1"
193
254
  TL_SV1_1 = "TLSv1.1"
194
255
  TL_SV1_2 = "TLSv1.2"
195
256
  TL_SV1_3 = "TLSv1.3"
196
257
 
197
258
 
198
- class InputConfluentCloudKafkaSchemaRegistryMaximumTLSVersion(str, Enum):
259
+ class InputConfluentCloudKafkaSchemaRegistryMaximumTLSVersion(
260
+ str, Enum, metaclass=utils.OpenEnumMeta
261
+ ):
199
262
  TL_SV1 = "TLSv1"
200
263
  TL_SV1_1 = "TLSv1.1"
201
264
  TL_SV1_2 = "TLSv1.2"
@@ -255,22 +318,48 @@ class InputConfluentCloudKafkaSchemaRegistryTLSSettingsClientSide(BaseModel):
255
318
  r"""Passphrase to use to decrypt private key"""
256
319
 
257
320
  min_version: Annotated[
258
- Optional[InputConfluentCloudKafkaSchemaRegistryMinimumTLSVersion],
321
+ Annotated[
322
+ Optional[InputConfluentCloudKafkaSchemaRegistryMinimumTLSVersion],
323
+ PlainValidator(validate_open_enum(False)),
324
+ ],
259
325
  pydantic.Field(alias="minVersion"),
260
326
  ] = None
261
327
 
262
328
  max_version: Annotated[
263
- Optional[InputConfluentCloudKafkaSchemaRegistryMaximumTLSVersion],
329
+ Annotated[
330
+ Optional[InputConfluentCloudKafkaSchemaRegistryMaximumTLSVersion],
331
+ PlainValidator(validate_open_enum(False)),
332
+ ],
264
333
  pydantic.Field(alias="maxVersion"),
265
334
  ] = None
266
335
 
336
+ @field_serializer("min_version")
337
+ def serialize_min_version(self, value):
338
+ if isinstance(value, str):
339
+ try:
340
+ return models.InputConfluentCloudKafkaSchemaRegistryMinimumTLSVersion(
341
+ value
342
+ )
343
+ except ValueError:
344
+ return value
345
+ return value
346
+
347
+ @field_serializer("max_version")
348
+ def serialize_max_version(self, value):
349
+ if isinstance(value, str):
350
+ try:
351
+ return models.InputConfluentCloudKafkaSchemaRegistryMaximumTLSVersion(
352
+ value
353
+ )
354
+ except ValueError:
355
+ return value
356
+ return value
357
+
267
358
 
268
359
  class InputConfluentCloudKafkaSchemaRegistryAuthenticationTypedDict(TypedDict):
269
360
  disabled: NotRequired[bool]
270
361
  schema_registry_url: NotRequired[str]
271
362
  r"""URL for accessing the Confluent Schema Registry. Example: http://localhost:8081. To connect over TLS, use https instead of http."""
272
- schema_type: NotRequired[InputConfluentCloudSchemaType]
273
- r"""The schema format used to encode and decode event data"""
274
363
  connection_timeout: NotRequired[float]
275
364
  r"""Maximum time to wait for a Schema Registry connection to complete successfully"""
276
365
  request_timeout: NotRequired[float]
@@ -292,11 +381,6 @@ class InputConfluentCloudKafkaSchemaRegistryAuthentication(BaseModel):
292
381
  ] = "http://localhost:8081"
293
382
  r"""URL for accessing the Confluent Schema Registry. Example: http://localhost:8081. To connect over TLS, use https instead of http."""
294
383
 
295
- schema_type: Annotated[
296
- Optional[InputConfluentCloudSchemaType], pydantic.Field(alias="schemaType")
297
- ] = InputConfluentCloudSchemaType.AVRO
298
- r"""The schema format used to encode and decode event data"""
299
-
300
384
  connection_timeout: Annotated[
301
385
  Optional[float], pydantic.Field(alias="connectionTimeout")
302
386
  ] = 30000
@@ -316,18 +400,76 @@ class InputConfluentCloudKafkaSchemaRegistryAuthentication(BaseModel):
316
400
  tls: Optional[InputConfluentCloudKafkaSchemaRegistryTLSSettingsClientSide] = None
317
401
 
318
402
 
319
- class InputConfluentCloudSASLMechanism(str, Enum):
403
+ class InputConfluentCloudAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
404
+ r"""Enter credentials directly, or select a stored secret"""
405
+
406
+ MANUAL = "manual"
407
+ SECRET = "secret"
408
+
409
+
410
+ class InputConfluentCloudSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
411
+ # PLAIN
320
412
  PLAIN = "plain"
413
+ # SCRAM-SHA-256
321
414
  SCRAM_SHA_256 = "scram-sha-256"
415
+ # SCRAM-SHA-512
322
416
  SCRAM_SHA_512 = "scram-sha-512"
417
+ # GSSAPI/Kerberos
323
418
  KERBEROS = "kerberos"
324
419
 
325
420
 
421
+ class InputConfluentCloudOauthParamTypedDict(TypedDict):
422
+ name: str
423
+ value: str
424
+
425
+
426
+ class InputConfluentCloudOauthParam(BaseModel):
427
+ name: str
428
+
429
+ value: str
430
+
431
+
432
+ class InputConfluentCloudSaslExtensionTypedDict(TypedDict):
433
+ name: str
434
+ value: str
435
+
436
+
437
+ class InputConfluentCloudSaslExtension(BaseModel):
438
+ name: str
439
+
440
+ value: str
441
+
442
+
326
443
  class InputConfluentCloudAuthenticationTypedDict(TypedDict):
327
444
  r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
328
445
 
329
446
  disabled: NotRequired[bool]
447
+ username: NotRequired[str]
448
+ password: NotRequired[str]
449
+ auth_type: NotRequired[InputConfluentCloudAuthenticationMethod]
450
+ r"""Enter credentials directly, or select a stored secret"""
451
+ credentials_secret: NotRequired[str]
452
+ r"""Select or create a secret that references your credentials"""
330
453
  mechanism: NotRequired[InputConfluentCloudSASLMechanism]
454
+ keytab_location: NotRequired[str]
455
+ r"""Location of keytab file for authentication principal"""
456
+ principal: NotRequired[str]
457
+ r"""Authentication principal, such as `kafka_user@example.com`"""
458
+ broker_service_class: NotRequired[str]
459
+ r"""Kerberos service class for Kafka brokers, such as `kafka`"""
460
+ oauth_enabled: NotRequired[bool]
461
+ r"""Enable OAuth authentication"""
462
+ token_url: NotRequired[str]
463
+ r"""URL of the token endpoint to use for OAuth authentication"""
464
+ client_id: NotRequired[str]
465
+ r"""Client ID to use for OAuth authentication"""
466
+ oauth_secret_type: NotRequired[str]
467
+ client_text_secret: NotRequired[str]
468
+ r"""Select or create a stored text secret"""
469
+ oauth_params: NotRequired[List[InputConfluentCloudOauthParamTypedDict]]
470
+ r"""Additional fields to send to the token endpoint, such as scope or audience"""
471
+ sasl_extensions: NotRequired[List[InputConfluentCloudSaslExtensionTypedDict]]
472
+ r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
331
473
 
332
474
 
333
475
  class InputConfluentCloudAuthentication(BaseModel):
@@ -335,9 +477,91 @@ class InputConfluentCloudAuthentication(BaseModel):
335
477
 
336
478
  disabled: Optional[bool] = True
337
479
 
338
- mechanism: Optional[InputConfluentCloudSASLMechanism] = (
339
- InputConfluentCloudSASLMechanism.PLAIN
480
+ username: Optional[str] = None
481
+
482
+ password: Optional[str] = None
483
+
484
+ auth_type: Annotated[
485
+ Annotated[
486
+ Optional[InputConfluentCloudAuthenticationMethod],
487
+ PlainValidator(validate_open_enum(False)),
488
+ ],
489
+ pydantic.Field(alias="authType"),
490
+ ] = InputConfluentCloudAuthenticationMethod.MANUAL
491
+ r"""Enter credentials directly, or select a stored secret"""
492
+
493
+ credentials_secret: Annotated[
494
+ Optional[str], pydantic.Field(alias="credentialsSecret")
495
+ ] = None
496
+ r"""Select or create a secret that references your credentials"""
497
+
498
+ mechanism: Annotated[
499
+ Optional[InputConfluentCloudSASLMechanism],
500
+ PlainValidator(validate_open_enum(False)),
501
+ ] = InputConfluentCloudSASLMechanism.PLAIN
502
+
503
+ keytab_location: Annotated[
504
+ Optional[str], pydantic.Field(alias="keytabLocation")
505
+ ] = None
506
+ r"""Location of keytab file for authentication principal"""
507
+
508
+ principal: Optional[str] = None
509
+ r"""Authentication principal, such as `kafka_user@example.com`"""
510
+
511
+ broker_service_class: Annotated[
512
+ Optional[str], pydantic.Field(alias="brokerServiceClass")
513
+ ] = None
514
+ r"""Kerberos service class for Kafka brokers, such as `kafka`"""
515
+
516
+ oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
517
+ False
340
518
  )
519
+ r"""Enable OAuth authentication"""
520
+
521
+ token_url: Annotated[Optional[str], pydantic.Field(alias="tokenUrl")] = None
522
+ r"""URL of the token endpoint to use for OAuth authentication"""
523
+
524
+ client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
525
+ r"""Client ID to use for OAuth authentication"""
526
+
527
+ oauth_secret_type: Annotated[
528
+ Optional[str], pydantic.Field(alias="oauthSecretType")
529
+ ] = "secret"
530
+
531
+ client_text_secret: Annotated[
532
+ Optional[str], pydantic.Field(alias="clientTextSecret")
533
+ ] = None
534
+ r"""Select or create a stored text secret"""
535
+
536
+ oauth_params: Annotated[
537
+ Optional[List[InputConfluentCloudOauthParam]],
538
+ pydantic.Field(alias="oauthParams"),
539
+ ] = None
540
+ r"""Additional fields to send to the token endpoint, such as scope or audience"""
541
+
542
+ sasl_extensions: Annotated[
543
+ Optional[List[InputConfluentCloudSaslExtension]],
544
+ pydantic.Field(alias="saslExtensions"),
545
+ ] = None
546
+ r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
547
+
548
+ @field_serializer("auth_type")
549
+ def serialize_auth_type(self, value):
550
+ if isinstance(value, str):
551
+ try:
552
+ return models.InputConfluentCloudAuthenticationMethod(value)
553
+ except ValueError:
554
+ return value
555
+ return value
556
+
557
+ @field_serializer("mechanism")
558
+ def serialize_mechanism(self, value):
559
+ if isinstance(value, str):
560
+ try:
561
+ return models.InputConfluentCloudSASLMechanism(value)
562
+ except ValueError:
563
+ return value
564
+ return value
341
565
 
342
566
 
343
567
  class InputConfluentCloudMetadatumTypedDict(TypedDict):
@@ -402,7 +626,8 @@ class InputConfluentCloudTypedDict(TypedDict):
402
626
  sasl: NotRequired[InputConfluentCloudAuthenticationTypedDict]
403
627
  r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
404
628
  session_timeout: NotRequired[float]
405
- r"""Timeout used to detect client failures when using Kafka's group-management facilities.
629
+ r"""
630
+ Timeout used to detect client failures when using Kafka's group-management facilities.
406
631
  If the client sends no heartbeats to the broker before the timeout expires,
407
632
  the broker will remove the client from the group and initiate a rebalance.
408
633
  Value must be between the broker's configured group.min.session.timeout.ms and group.max.session.timeout.ms.
@@ -524,7 +749,8 @@ class InputConfluentCloud(BaseModel):
524
749
  session_timeout: Annotated[
525
750
  Optional[float], pydantic.Field(alias="sessionTimeout")
526
751
  ] = 30000
527
- r"""Timeout used to detect client failures when using Kafka's group-management facilities.
752
+ r"""
753
+ Timeout used to detect client failures when using Kafka's group-management facilities.
528
754
  If the client sends no heartbeats to the broker before the timeout expires,
529
755
  the broker will remove the client from the group and initiate a rebalance.
530
756
  Value must be between the broker's configured group.min.session.timeout.ms and group.max.session.timeout.ms.
@@ -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,20 +27,32 @@ class InputCriblConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputCriblMode(str, Enum):
30
+ class InputCriblMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
32
 
33
+ # Smart
29
34
  SMART = "smart"
35
+ # Always On
30
36
  ALWAYS = "always"
31
37
 
32
38
 
33
- class InputCriblCompression(str, Enum):
39
+ class InputCriblCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
40
  r"""Codec to use to compress the persisted data"""
35
41
 
42
+ # None
36
43
  NONE = "none"
44
+ # Gzip
37
45
  GZIP = "gzip"
38
46
 
39
47
 
48
+ class InputCriblPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputCriblPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputCriblPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputCriblMode]
42
58
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
@@ -52,10 +68,13 @@ class InputCriblPqTypedDict(TypedDict):
52
68
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
53
69
  compress: NotRequired[InputCriblCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputCriblPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputCriblPq(BaseModel):
58
- mode: Optional[InputCriblMode] = InputCriblMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputCriblMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputCriblMode.ALWAYS
59
78
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
60
79
 
61
80
  max_buffer_size: Annotated[
@@ -79,9 +98,33 @@ class InputCriblPq(BaseModel):
79
98
  path: Optional[str] = "$CRIBL_HOME/state/queues"
80
99
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
81
100
 
82
- compress: Optional[InputCriblCompression] = InputCriblCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputCriblCompression], PlainValidator(validate_open_enum(False))
103
+ ] = InputCriblCompression.NONE
83
104
  r"""Codec to use to compress the persisted data"""
84
105
 
106
+ pq_controls: Annotated[
107
+ Optional[InputCriblPqControls], pydantic.Field(alias="pqControls")
108
+ ] = None
109
+
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputCriblMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputCriblCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
85
128
 
86
129
  class InputCriblMetadatumTypedDict(TypedDict):
87
130
  name: str