cribl-control-plane 0.0.21__py3-none-any.whl → 0.4.0b23__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +113 -48
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +225 -0
  4. cribl_control_plane/auth_sdk.py +12 -176
  5. cribl_control_plane/basesdk.py +17 -1
  6. cribl_control_plane/branches.py +351 -0
  7. cribl_control_plane/commits.py +1403 -0
  8. cribl_control_plane/commits_files.py +391 -0
  9. cribl_control_plane/configs_versions.py +201 -0
  10. cribl_control_plane/cribl.py +495 -0
  11. cribl_control_plane/destinations.py +146 -805
  12. cribl_control_plane/destinations_pq.py +379 -0
  13. cribl_control_plane/errors/__init__.py +26 -10
  14. cribl_control_plane/errors/apierror.py +2 -0
  15. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  16. cribl_control_plane/errors/error.py +4 -2
  17. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  18. cribl_control_plane/errors/no_response_error.py +5 -1
  19. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  20. cribl_control_plane/functions.py +367 -0
  21. cribl_control_plane/groups_configs.py +22 -0
  22. cribl_control_plane/groups_sdk.py +333 -578
  23. cribl_control_plane/health.py +38 -18
  24. cribl_control_plane/hectokens.py +503 -0
  25. cribl_control_plane/httpclient.py +0 -1
  26. cribl_control_plane/{lake.py → lakedatasets.py} +207 -115
  27. cribl_control_plane/models/__init__.py +3644 -5986
  28. cribl_control_plane/models/addhectokenrequest.py +7 -1
  29. cribl_control_plane/models/authtoken.py +5 -1
  30. cribl_control_plane/models/backupssettings_union.py +37 -0
  31. cribl_control_plane/models/{lookupversions.py → branchinfo.py} +4 -4
  32. cribl_control_plane/models/cacheconnection.py +30 -2
  33. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  34. cribl_control_plane/models/cloudprovider.py +2 -1
  35. cribl_control_plane/models/collectorazureblob.py +130 -0
  36. cribl_control_plane/models/collectorconf.py +56 -0
  37. cribl_control_plane/models/collectorcribllake.py +27 -0
  38. cribl_control_plane/models/collectordatabase.py +92 -0
  39. cribl_control_plane/models/collectorfilesystem.py +66 -0
  40. cribl_control_plane/models/collectorgooglecloudstorage.py +131 -0
  41. cribl_control_plane/models/collectorhealthcheck.py +269 -0
  42. cribl_control_plane/models/collectorrest.py +340 -0
  43. cribl_control_plane/models/collectors3.py +239 -0
  44. cribl_control_plane/models/collectorscript.py +59 -0
  45. cribl_control_plane/models/collectorsplunk.py +253 -0
  46. cribl_control_plane/models/configgroup.py +67 -11
  47. cribl_control_plane/models/configgroupcloud.py +17 -3
  48. cribl_control_plane/models/countedbranchinfo.py +20 -0
  49. cribl_control_plane/models/countedconfiggroup.py +20 -0
  50. cribl_control_plane/models/countedcribllakedataset.py +20 -0
  51. cribl_control_plane/models/counteddistributedsummary.py +20 -0
  52. cribl_control_plane/models/countedfunctionresponse.py +20 -0
  53. cribl_control_plane/models/countedgitcommitsummary.py +20 -0
  54. cribl_control_plane/models/countedgitcountresult.py +20 -0
  55. cribl_control_plane/models/countedgitdiffresult.py +20 -0
  56. cribl_control_plane/models/countedgitfilesresponse.py +20 -0
  57. cribl_control_plane/models/{getversioninfoop.py → countedgitinfo.py} +2 -6
  58. cribl_control_plane/models/countedgitlogresult.py +20 -0
  59. cribl_control_plane/models/countedgitrevertresult.py +20 -0
  60. cribl_control_plane/models/countedgitshowresult.py +20 -0
  61. cribl_control_plane/models/countedgitstatusresult.py +20 -0
  62. cribl_control_plane/models/{listinputop.py → countedinput.py} +2 -6
  63. cribl_control_plane/models/countedinputsplunkhec.py +20 -0
  64. cribl_control_plane/models/countedjobinfo.py +20 -0
  65. cribl_control_plane/models/countedmasterworkerentry.py +20 -0
  66. cribl_control_plane/models/countednumber.py +19 -0
  67. cribl_control_plane/models/{getversionbranchop.py → countedobject.py} +2 -6
  68. cribl_control_plane/models/{listoutputop.py → countedoutput.py} +2 -6
  69. cribl_control_plane/models/countedoutputsamplesresponse.py +20 -0
  70. cribl_control_plane/models/countedoutputtestresponse.py +20 -0
  71. cribl_control_plane/models/countedpackinfo.py +20 -0
  72. cribl_control_plane/models/{createpacksop.py → countedpackinstallinfo.py} +2 -6
  73. cribl_control_plane/models/{listpipelineop.py → countedpipeline.py} +2 -6
  74. cribl_control_plane/models/{listroutesop.py → countedroutes.py} +2 -6
  75. cribl_control_plane/models/countedstring.py +19 -0
  76. cribl_control_plane/models/countedsystemsettingsconf.py +20 -0
  77. cribl_control_plane/models/countedteamaccesscontrollist.py +20 -0
  78. cribl_control_plane/models/counteduseraccesscontrollist.py +20 -0
  79. cribl_control_plane/models/createauthloginop.py +18 -0
  80. cribl_control_plane/models/createconfiggroupbyproductop.py +46 -0
  81. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +3 -21
  82. cribl_control_plane/models/createinputhectokenbyidop.py +3 -21
  83. cribl_control_plane/models/createoutputtestbyidop.py +3 -22
  84. cribl_control_plane/models/createroutesappendbyidop.py +4 -21
  85. cribl_control_plane/models/createversioncommitop.py +27 -20
  86. cribl_control_plane/models/createversionrevertop.py +7 -23
  87. cribl_control_plane/models/createversionundoop.py +7 -22
  88. cribl_control_plane/models/criblevent.py +15 -0
  89. cribl_control_plane/models/cribllakedataset.py +23 -3
  90. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  91. cribl_control_plane/models/currentbranchresult.py +13 -0
  92. cribl_control_plane/models/datasetmetadata.py +18 -2
  93. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +43 -0
  94. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +5 -24
  95. cribl_control_plane/models/deleteinputbyidop.py +3 -22
  96. cribl_control_plane/models/deleteoutputbyidop.py +3 -22
  97. cribl_control_plane/models/deleteoutputpqbyidop.py +3 -21
  98. cribl_control_plane/models/deletepacksbyidop.py +3 -22
  99. cribl_control_plane/models/deletepipelinebyidop.py +3 -22
  100. cribl_control_plane/models/difffiles.py +130 -0
  101. cribl_control_plane/models/diffline.py +26 -0
  102. cribl_control_plane/models/difflinecontext.py +28 -0
  103. cribl_control_plane/models/difflinedelete.py +25 -0
  104. cribl_control_plane/models/difflineinsert.py +25 -0
  105. cribl_control_plane/models/distributedsummary.py +6 -0
  106. cribl_control_plane/models/functionaggregatemetrics.py +206 -0
  107. cribl_control_plane/models/functionaggregation.py +172 -0
  108. cribl_control_plane/models/functionautotimestamp.py +173 -0
  109. cribl_control_plane/models/functioncef.py +111 -0
  110. cribl_control_plane/models/functionchain.py +75 -0
  111. cribl_control_plane/models/functionclone.py +75 -0
  112. cribl_control_plane/models/functioncode.py +96 -0
  113. cribl_control_plane/models/functioncomment.py +75 -0
  114. cribl_control_plane/models/functiondistinct.py +99 -0
  115. cribl_control_plane/models/functiondnslookup.py +250 -0
  116. cribl_control_plane/models/functiondrop.py +73 -0
  117. cribl_control_plane/models/functiondropdimensions.py +87 -0
  118. cribl_control_plane/models/functiondynamicsampling.py +121 -0
  119. cribl_control_plane/models/functioneval.py +103 -0
  120. cribl_control_plane/models/functioneventbreaker.py +103 -0
  121. cribl_control_plane/models/functioneventstats.py +92 -0
  122. cribl_control_plane/models/functionexternaldata.py +73 -0
  123. cribl_control_plane/models/functionflatten.py +90 -0
  124. cribl_control_plane/models/functionfoldkeys.py +89 -0
  125. cribl_control_plane/models/functiongenstats.py +73 -0
  126. cribl_control_plane/models/functiongeoip.py +120 -0
  127. cribl_control_plane/models/functiongrok.py +95 -0
  128. cribl_control_plane/models/functionhandlebar.py +112 -0
  129. cribl_control_plane/models/functionjoin.py +112 -0
  130. cribl_control_plane/models/functionjsonunroll.py +80 -0
  131. cribl_control_plane/models/functionlakeexport.py +102 -0
  132. cribl_control_plane/models/functionlimit.py +75 -0
  133. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
  134. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
  135. cribl_control_plane/models/functionlookup.py +148 -0
  136. cribl_control_plane/models/functionmask.py +121 -0
  137. cribl_control_plane/models/functionmvexpand.py +128 -0
  138. cribl_control_plane/models/functionmvpull.py +99 -0
  139. cribl_control_plane/models/functionnotificationpolicies.py +186 -0
  140. cribl_control_plane/models/functionnotifications.py +85 -0
  141. cribl_control_plane/models/functionnotify.py +196 -0
  142. cribl_control_plane/models/functionnumerify.py +119 -0
  143. cribl_control_plane/models/functionotlplogs.py +82 -0
  144. cribl_control_plane/models/functionotlpmetrics.py +118 -0
  145. cribl_control_plane/models/functionotlptraces.py +111 -0
  146. cribl_control_plane/models/functionpack.py +80 -0
  147. cribl_control_plane/models/functionpivot.py +85 -0
  148. cribl_control_plane/models/functionpublishmetrics.py +153 -0
  149. cribl_control_plane/models/functionredis.py +173 -0
  150. cribl_control_plane/models/functionregexextract.py +112 -0
  151. cribl_control_plane/models/functionregexfilter.py +95 -0
  152. cribl_control_plane/models/functionrename.py +107 -0
  153. cribl_control_plane/models/functionresponse.py +242 -0
  154. cribl_control_plane/models/functionrollupmetrics.py +114 -0
  155. cribl_control_plane/models/functionsampling.py +90 -0
  156. cribl_control_plane/models/functionsend.py +141 -0
  157. cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
  158. cribl_control_plane/models/functionserde.py +161 -0
  159. cribl_control_plane/models/functionserialize.py +134 -0
  160. cribl_control_plane/models/functionsidlookup.py +93 -0
  161. cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
  162. cribl_control_plane/models/functionsort.py +97 -0
  163. cribl_control_plane/models/functionstore.py +132 -0
  164. cribl_control_plane/models/functionsuppress.py +115 -0
  165. cribl_control_plane/models/functiontee.py +90 -0
  166. cribl_control_plane/models/functiontrimtimestamp.py +75 -0
  167. cribl_control_plane/models/functionunion.py +80 -0
  168. cribl_control_plane/models/functionunroll.py +80 -0
  169. cribl_control_plane/models/functionwindow.py +96 -0
  170. cribl_control_plane/models/functionxmlunroll.py +92 -0
  171. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +63 -0
  172. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +63 -0
  173. cribl_control_plane/models/getconfiggroupbyproductandidop.py +53 -0
  174. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +43 -0
  175. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +5 -24
  176. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +56 -16
  177. cribl_control_plane/models/getfunctionsbyidop.py +18 -0
  178. cribl_control_plane/models/getinputbyidop.py +3 -22
  179. cribl_control_plane/models/getmasterworkerentryop.py +22 -0
  180. cribl_control_plane/models/getoutputbyidop.py +3 -22
  181. cribl_control_plane/models/getoutputpqbyidop.py +3 -21
  182. cribl_control_plane/models/getoutputsamplesbyidop.py +3 -22
  183. cribl_control_plane/models/getpacksbyidop.py +18 -0
  184. cribl_control_plane/models/getpacksop.py +3 -21
  185. cribl_control_plane/models/getpipelinebyidop.py +3 -22
  186. cribl_control_plane/models/getroutesbyidop.py +3 -22
  187. cribl_control_plane/models/getsummaryop.py +23 -32
  188. cribl_control_plane/models/getversioncountop.py +10 -27
  189. cribl_control_plane/models/getversiondiffop.py +12 -28
  190. cribl_control_plane/models/getversionfilesop.py +10 -28
  191. cribl_control_plane/models/getversionop.py +30 -0
  192. cribl_control_plane/models/getversionshowop.py +12 -28
  193. cribl_control_plane/models/getversionstatusop.py +7 -23
  194. cribl_control_plane/models/gitcommitsummary.py +3 -3
  195. cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
  196. cribl_control_plane/models/gitdiffresult.py +16 -0
  197. cribl_control_plane/models/gitfilesresponse.py +7 -5
  198. cribl_control_plane/models/gitinfo.py +14 -3
  199. cribl_control_plane/models/gitlogresult.py +33 -0
  200. cribl_control_plane/models/gitrevertparams.py +3 -3
  201. cribl_control_plane/models/gitrevertresult.py +5 -5
  202. cribl_control_plane/models/gitshowresult.py +19 -0
  203. cribl_control_plane/models/gitstatusresult.py +0 -3
  204. cribl_control_plane/models/groupcreaterequest.py +172 -0
  205. cribl_control_plane/models/hbcriblinfo.py +42 -7
  206. cribl_control_plane/models/healthserverstatus.py +55 -0
  207. cribl_control_plane/models/heartbeatmetadata.py +6 -11
  208. cribl_control_plane/models/input.py +89 -81
  209. cribl_control_plane/models/inputappscope.py +131 -35
  210. cribl_control_plane/models/inputazureblob.py +62 -6
  211. cribl_control_plane/models/inputcloudflarehec.py +518 -0
  212. cribl_control_plane/models/inputcollection.py +49 -6
  213. cribl_control_plane/models/inputconfluentcloud.py +262 -22
  214. cribl_control_plane/models/inputcribl.py +52 -9
  215. cribl_control_plane/models/inputcriblhttp.py +124 -33
  216. cribl_control_plane/models/inputcribllakehttp.py +199 -29
  217. cribl_control_plane/models/inputcriblmetrics.py +53 -9
  218. cribl_control_plane/models/inputcribltcp.py +125 -27
  219. cribl_control_plane/models/inputcrowdstrike.py +99 -10
  220. cribl_control_plane/models/inputdatadogagent.py +101 -27
  221. cribl_control_plane/models/inputdatagen.py +47 -4
  222. cribl_control_plane/models/inputedgeprometheus.py +215 -58
  223. cribl_control_plane/models/inputelastic.py +170 -39
  224. cribl_control_plane/models/inputeventhub.py +212 -9
  225. cribl_control_plane/models/inputexec.py +59 -6
  226. cribl_control_plane/models/inputfile.py +83 -15
  227. cribl_control_plane/models/inputfirehose.py +100 -27
  228. cribl_control_plane/models/inputgooglepubsub.py +83 -15
  229. cribl_control_plane/models/{inputgrafana_union.py → inputgrafana.py} +261 -67
  230. cribl_control_plane/models/inputhttp.py +100 -27
  231. cribl_control_plane/models/inputhttpraw.py +100 -27
  232. cribl_control_plane/models/inputjournalfiles.py +51 -7
  233. cribl_control_plane/models/inputkafka.py +257 -19
  234. cribl_control_plane/models/inputkinesis.py +133 -17
  235. cribl_control_plane/models/inputkubeevents.py +52 -9
  236. cribl_control_plane/models/inputkubelogs.py +66 -13
  237. cribl_control_plane/models/inputkubemetrics.py +66 -13
  238. cribl_control_plane/models/inputloki.py +116 -30
  239. cribl_control_plane/models/inputmetrics.py +97 -24
  240. cribl_control_plane/models/inputmodeldriventelemetry.py +110 -29
  241. cribl_control_plane/models/inputmsk.py +148 -21
  242. cribl_control_plane/models/inputnetflow.py +50 -7
  243. cribl_control_plane/models/inputoffice365mgmt.py +115 -17
  244. cribl_control_plane/models/inputoffice365msgtrace.py +117 -19
  245. cribl_control_plane/models/inputoffice365service.py +117 -19
  246. cribl_control_plane/models/inputopentelemetry.py +146 -35
  247. cribl_control_plane/models/inputprometheus.py +196 -47
  248. cribl_control_plane/models/inputprometheusrw.py +117 -30
  249. cribl_control_plane/models/inputrawudp.py +50 -7
  250. cribl_control_plane/models/inputs3.py +85 -8
  251. cribl_control_plane/models/inputs3inventory.py +99 -10
  252. cribl_control_plane/models/inputsecuritylake.py +100 -10
  253. cribl_control_plane/models/inputsnmp.py +115 -24
  254. cribl_control_plane/models/inputsplunk.py +133 -31
  255. cribl_control_plane/models/inputsplunkhec.py +122 -32
  256. cribl_control_plane/models/inputsplunksearch.py +115 -18
  257. cribl_control_plane/models/inputsqs.py +102 -19
  258. cribl_control_plane/models/{inputsyslog_union.py → inputsyslog.py} +193 -51
  259. cribl_control_plane/models/inputsystemmetrics.py +207 -37
  260. cribl_control_plane/models/inputsystemstate.py +66 -13
  261. cribl_control_plane/models/inputtcp.py +125 -29
  262. cribl_control_plane/models/inputtcpjson.py +115 -29
  263. cribl_control_plane/models/inputwef.py +151 -22
  264. cribl_control_plane/models/inputwindowsmetrics.py +191 -38
  265. cribl_control_plane/models/inputwineventlogs.py +93 -11
  266. cribl_control_plane/models/inputwiz.py +176 -11
  267. cribl_control_plane/models/inputwizwebhook.py +466 -0
  268. cribl_control_plane/models/inputzscalerhec.py +122 -32
  269. cribl_control_plane/models/jobinfo.py +34 -0
  270. cribl_control_plane/models/jobstatus.py +48 -0
  271. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  272. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  273. cribl_control_plane/models/listconfiggroupbyproductop.py +46 -0
  274. cribl_control_plane/models/listmasterworkerentryop.py +64 -0
  275. cribl_control_plane/models/logininfo.py +3 -3
  276. cribl_control_plane/models/masterworkerentry.py +20 -13
  277. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  278. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  279. cribl_control_plane/models/nodeprovidedinfo.py +13 -11
  280. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  281. cribl_control_plane/models/nodeupgradestate.py +2 -1
  282. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  283. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  284. cribl_control_plane/models/output.py +103 -89
  285. cribl_control_plane/models/outputazureblob.py +174 -21
  286. cribl_control_plane/models/outputazuredataexplorer.py +517 -93
  287. cribl_control_plane/models/outputazureeventhub.py +318 -34
  288. cribl_control_plane/models/outputazurelogs.py +145 -26
  289. cribl_control_plane/models/outputchronicle.py +532 -0
  290. cribl_control_plane/models/outputclickhouse.py +208 -37
  291. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  292. cribl_control_plane/models/outputcloudwatch.py +132 -26
  293. cribl_control_plane/models/outputconfluentcloud.py +387 -46
  294. cribl_control_plane/models/outputcriblhttp.py +203 -36
  295. cribl_control_plane/models/outputcribllake.py +161 -21
  296. cribl_control_plane/models/outputcribltcp.py +199 -34
  297. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +176 -32
  298. cribl_control_plane/models/outputdatabricks.py +501 -0
  299. cribl_control_plane/models/outputdatadog.py +204 -36
  300. cribl_control_plane/models/outputdataset.py +186 -34
  301. cribl_control_plane/models/outputdevnull.py +5 -5
  302. cribl_control_plane/models/outputdiskspool.py +22 -7
  303. cribl_control_plane/models/outputdls3.py +238 -29
  304. cribl_control_plane/models/outputdynatracehttp.py +211 -37
  305. cribl_control_plane/models/outputdynatraceotlp.py +213 -39
  306. cribl_control_plane/models/outputelastic.py +199 -30
  307. cribl_control_plane/models/outputelasticcloud.py +174 -29
  308. cribl_control_plane/models/outputexabeam.py +99 -13
  309. cribl_control_plane/models/outputfilesystem.py +139 -14
  310. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  311. cribl_control_plane/models/outputgooglecloudlogging.py +177 -34
  312. cribl_control_plane/models/outputgooglecloudstorage.py +220 -29
  313. cribl_control_plane/models/outputgooglepubsub.py +138 -51
  314. cribl_control_plane/models/outputgrafanacloud.py +386 -70
  315. cribl_control_plane/models/outputgraphite.py +131 -28
  316. cribl_control_plane/models/outputhoneycomb.py +145 -26
  317. cribl_control_plane/models/outputhumiohec.py +165 -31
  318. cribl_control_plane/models/outputinfluxdb.py +165 -28
  319. cribl_control_plane/models/outputkafka.py +378 -41
  320. cribl_control_plane/models/outputkinesis.py +168 -30
  321. cribl_control_plane/models/outputloki.py +171 -27
  322. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  323. cribl_control_plane/models/outputminio.py +228 -28
  324. cribl_control_plane/models/outputmsk.py +270 -43
  325. cribl_control_plane/models/outputnewrelic.py +176 -34
  326. cribl_control_plane/models/outputnewrelicevents.py +166 -31
  327. cribl_control_plane/models/outputopentelemetry.py +240 -40
  328. cribl_control_plane/models/outputprometheus.py +145 -26
  329. cribl_control_plane/models/outputring.py +54 -13
  330. cribl_control_plane/models/outputs3.py +238 -31
  331. cribl_control_plane/models/outputsecuritylake.py +182 -21
  332. cribl_control_plane/models/outputsentinel.py +175 -32
  333. cribl_control_plane/models/outputsentineloneaisiem.py +184 -38
  334. cribl_control_plane/models/outputservicenow.py +226 -41
  335. cribl_control_plane/models/outputsignalfx.py +145 -26
  336. cribl_control_plane/models/outputsns.py +146 -28
  337. cribl_control_plane/models/outputsplunk.py +209 -39
  338. cribl_control_plane/models/outputsplunkhec.py +243 -31
  339. cribl_control_plane/models/outputsplunklb.py +266 -46
  340. cribl_control_plane/models/outputsqs.py +166 -36
  341. cribl_control_plane/models/outputstatsd.py +130 -28
  342. cribl_control_plane/models/outputstatsdext.py +131 -28
  343. cribl_control_plane/models/outputsumologic.py +146 -25
  344. cribl_control_plane/models/outputsyslog.py +323 -51
  345. cribl_control_plane/models/outputtcpjson.py +191 -37
  346. cribl_control_plane/models/outputwavefront.py +145 -26
  347. cribl_control_plane/models/outputwebhook.py +216 -38
  348. cribl_control_plane/models/outputxsiam.py +148 -31
  349. cribl_control_plane/models/packinfo.py +11 -8
  350. cribl_control_plane/models/packinstallinfo.py +14 -11
  351. cribl_control_plane/models/packrequestbody_union.py +140 -0
  352. cribl_control_plane/models/packupgraderequest.py +26 -0
  353. cribl_control_plane/models/piisettings_union.py +31 -0
  354. cribl_control_plane/models/productscore.py +10 -0
  355. cribl_control_plane/models/rbacresource.py +2 -1
  356. cribl_control_plane/models/resourcepolicy.py +15 -2
  357. cribl_control_plane/models/rollbacksettings_union.py +44 -0
  358. cribl_control_plane/models/routeconf.py +3 -4
  359. cribl_control_plane/models/routes.py +0 -24
  360. cribl_control_plane/models/runnablejob.py +27 -0
  361. cribl_control_plane/models/runnablejobcollection.py +628 -0
  362. cribl_control_plane/models/runnablejobexecutor.py +360 -0
  363. cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
  364. cribl_control_plane/models/schemeclientoauth.py +5 -0
  365. cribl_control_plane/models/snisettings_union.py +31 -0
  366. cribl_control_plane/models/systemsettingsconf.py +291 -0
  367. cribl_control_plane/models/tlssettings_union.py +43 -0
  368. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +56 -0
  369. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +53 -0
  370. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +14 -29
  371. cribl_control_plane/models/updatehectokenrequest.py +7 -1
  372. cribl_control_plane/models/updateinputbyidop.py +5 -23
  373. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +5 -23
  374. cribl_control_plane/models/updateoutputbyidop.py +5 -23
  375. cribl_control_plane/models/updatepacksbyidop.py +12 -50
  376. cribl_control_plane/models/updatepacksop.py +12 -24
  377. cribl_control_plane/models/updatepipelinebyidop.py +5 -23
  378. cribl_control_plane/models/updateroutesbyidop.py +8 -27
  379. cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
  380. cribl_control_plane/models/upgradepackageurls.py +20 -0
  381. cribl_control_plane/models/upgradesettings.py +38 -0
  382. cribl_control_plane/models/uploadpackresponse.py +13 -0
  383. cribl_control_plane/models/{appmode.py → workertypes.py} +2 -5
  384. cribl_control_plane/{workers_sdk.py → nodes.py} +102 -234
  385. cribl_control_plane/packs.py +385 -184
  386. cribl_control_plane/pipelines.py +116 -66
  387. cribl_control_plane/routes_sdk.py +102 -70
  388. cribl_control_plane/samples.py +407 -0
  389. cribl_control_plane/sdk.py +35 -25
  390. cribl_control_plane/settings.py +20 -0
  391. cribl_control_plane/sources.py +143 -545
  392. cribl_control_plane/statuses.py +195 -0
  393. cribl_control_plane/summaries.py +195 -0
  394. cribl_control_plane/system_sdk.py +20 -0
  395. cribl_control_plane/teams.py +36 -28
  396. cribl_control_plane/tokens.py +210 -0
  397. cribl_control_plane/utils/__init__.py +18 -5
  398. cribl_control_plane/utils/annotations.py +32 -8
  399. cribl_control_plane/utils/eventstreaming.py +10 -0
  400. cribl_control_plane/utils/forms.py +21 -10
  401. cribl_control_plane/utils/queryparams.py +14 -2
  402. cribl_control_plane/utils/retries.py +69 -5
  403. cribl_control_plane/utils/security.py +5 -0
  404. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  405. cribl_control_plane/versions.py +31 -0
  406. cribl_control_plane/{distributed.py → versions_configs.py} +29 -35
  407. cribl_control_plane-0.4.0b23.dist-info/METADATA +855 -0
  408. cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
  409. {cribl_control_plane-0.0.21.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
  410. cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
  411. cribl_control_plane/errors/healthstatus_error.py +0 -32
  412. cribl_control_plane/models/createinputop.py +0 -18238
  413. cribl_control_plane/models/createoutputop.py +0 -18437
  414. cribl_control_plane/models/createpipelineop.py +0 -24
  415. cribl_control_plane/models/createproductsgroupsbyproductop.py +0 -54
  416. cribl_control_plane/models/createversionpushop.py +0 -23
  417. cribl_control_plane/models/createversionsyncop.py +0 -23
  418. cribl_control_plane/models/deletegroupsbyidop.py +0 -37
  419. cribl_control_plane/models/getgroupsaclbyidop.py +0 -63
  420. cribl_control_plane/models/getgroupsbyidop.py +0 -49
  421. cribl_control_plane/models/getgroupsconfigversionbyidop.py +0 -36
  422. cribl_control_plane/models/getproductsgroupsaclteamsbyproductandidop.py +0 -78
  423. cribl_control_plane/models/getproductsgroupsbyproductop.py +0 -58
  424. cribl_control_plane/models/getsummaryworkersop.py +0 -39
  425. cribl_control_plane/models/getversioncurrentbranchop.py +0 -23
  426. cribl_control_plane/models/getworkersop.py +0 -82
  427. cribl_control_plane/models/healthstatus.py +0 -33
  428. cribl_control_plane/models/packrequestbody.py +0 -75
  429. cribl_control_plane/models/restartresponse.py +0 -26
  430. cribl_control_plane/models/routesroute_input.py +0 -67
  431. cribl_control_plane/models/updategroupsbyidop.py +0 -48
  432. cribl_control_plane/models/updategroupsdeploybyidop.py +0 -46
  433. cribl_control_plane/models/updateworkersrestartop.py +0 -24
  434. cribl_control_plane/versioning.py +0 -2309
  435. cribl_control_plane-0.0.21.dist-info/METADATA +0 -561
  436. cribl_control_plane-0.0.21.dist-info/RECORD +0 -301
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -23,20 +27,32 @@ class InputNetflowConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputNetflowMode(str, Enum):
30
+ class InputNetflowMode(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 InputNetflowCompression(str, Enum):
39
+ class InputNetflowCompression(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 InputNetflowPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputNetflowPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputNetflowPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputNetflowMode]
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 InputNetflowPqTypedDict(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[InputNetflowCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputNetflowPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputNetflowPq(BaseModel):
58
- mode: Optional[InputNetflowMode] = InputNetflowMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputNetflowMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputNetflowMode.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 InputNetflowPq(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[InputNetflowCompression] = InputNetflowCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputNetflowCompression], PlainValidator(validate_open_enum(False))
103
+ ] = InputNetflowCompression.NONE
83
104
  r"""Codec to use to compress the persisted data"""
84
105
 
106
+ pq_controls: Annotated[
107
+ Optional[InputNetflowPqControls], 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.InputNetflowMode(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.InputNetflowCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
85
128
 
86
129
  class InputNetflowMetadatumTypedDict(TypedDict):
87
130
  name: str
@@ -97,9 +140,9 @@ class InputNetflowMetadatum(BaseModel):
97
140
 
98
141
 
99
142
  class InputNetflowTypedDict(TypedDict):
143
+ type: InputNetflowType
100
144
  id: NotRequired[str]
101
145
  r"""Unique ID for this input"""
102
- type: NotRequired[InputNetflowType]
103
146
  disabled: NotRequired[bool]
104
147
  pipeline: NotRequired[str]
105
148
  r"""Pipeline to process data from this Source before sending it through the Routes"""
@@ -140,11 +183,11 @@ class InputNetflowTypedDict(TypedDict):
140
183
 
141
184
 
142
185
  class InputNetflow(BaseModel):
186
+ type: InputNetflowType
187
+
143
188
  id: Optional[str] = None
144
189
  r"""Unique ID for this input"""
145
190
 
146
- type: Optional[InputNetflowType] = None
147
-
148
191
  disabled: Optional[bool] = False
149
192
 
150
193
  pipeline: Optional[str] = None
@@ -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 InputOffice365MgmtConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputOffice365MgmtMode(str, Enum):
30
+ class InputOffice365MgmtMode(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 InputOffice365MgmtCompression(str, Enum):
39
+ class InputOffice365MgmtCompression(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 InputOffice365MgmtPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputOffice365MgmtPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputOffice365MgmtPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputOffice365MgmtMode]
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 InputOffice365MgmtPqTypedDict(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[InputOffice365MgmtCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputOffice365MgmtPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputOffice365MgmtPq(BaseModel):
58
- mode: Optional[InputOffice365MgmtMode] = InputOffice365MgmtMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputOffice365MgmtMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputOffice365MgmtMode.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,18 +98,45 @@ class InputOffice365MgmtPq(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[InputOffice365MgmtCompression] = (
83
- InputOffice365MgmtCompression.NONE
84
- )
101
+ compress: Annotated[
102
+ Optional[InputOffice365MgmtCompression],
103
+ PlainValidator(validate_open_enum(False)),
104
+ ] = InputOffice365MgmtCompression.NONE
85
105
  r"""Codec to use to compress the persisted data"""
86
106
 
107
+ pq_controls: Annotated[
108
+ Optional[InputOffice365MgmtPqControls], pydantic.Field(alias="pqControls")
109
+ ] = None
87
110
 
88
- class InputOffice365MgmtSubscriptionPlan(str, Enum):
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputOffice365MgmtMode(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.InputOffice365MgmtCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
129
+
130
+ class InputOffice365MgmtSubscriptionPlan(str, Enum, metaclass=utils.OpenEnumMeta):
89
131
  r"""Office 365 subscription plan for your organization, typically Office 365 Enterprise"""
90
132
 
133
+ # Office 365 Enterprise
91
134
  ENTERPRISE_GCC = "enterprise_gcc"
135
+ # Office 365 GCC
92
136
  GCC = "gcc"
137
+ # Office 365 GCC High
93
138
  GCC_HIGH = "gcc_high"
139
+ # Office 365 DoD
94
140
  DOD = "dod"
95
141
 
96
142
 
@@ -107,7 +153,7 @@ class InputOffice365MgmtMetadatum(BaseModel):
107
153
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
108
154
 
109
155
 
110
- class InputOffice365MgmtLogLevel(str, Enum):
156
+ class InputOffice365MgmtLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
111
157
  r"""Collector runtime Log Level"""
112
158
 
113
159
  ERROR = "error"
@@ -137,18 +183,34 @@ class InputOffice365MgmtContentConfig(BaseModel):
137
183
  interval: Optional[float] = None
138
184
 
139
185
  log_level: Annotated[
140
- Optional[InputOffice365MgmtLogLevel], pydantic.Field(alias="logLevel")
186
+ Annotated[
187
+ Optional[InputOffice365MgmtLogLevel],
188
+ PlainValidator(validate_open_enum(False)),
189
+ ],
190
+ pydantic.Field(alias="logLevel"),
141
191
  ] = None
142
192
  r"""Collector runtime Log Level"""
143
193
 
144
194
  enabled: Optional[bool] = None
145
195
 
196
+ @field_serializer("log_level")
197
+ def serialize_log_level(self, value):
198
+ if isinstance(value, str):
199
+ try:
200
+ return models.InputOffice365MgmtLogLevel(value)
201
+ except ValueError:
202
+ return value
203
+ return value
146
204
 
147
- class InputOffice365MgmtRetryType(str, Enum):
205
+
206
+ class InputOffice365MgmtRetryType(str, Enum, metaclass=utils.OpenEnumMeta):
148
207
  r"""The algorithm to use when performing HTTP retries"""
149
208
 
209
+ # Disabled
150
210
  NONE = "none"
211
+ # Backoff
151
212
  BACKOFF = "backoff"
213
+ # Static
152
214
  STATIC = "static"
153
215
 
154
216
 
@@ -172,7 +234,9 @@ class InputOffice365MgmtRetryRulesTypedDict(TypedDict):
172
234
 
173
235
 
174
236
  class InputOffice365MgmtRetryRules(BaseModel):
175
- type: Optional[InputOffice365MgmtRetryType] = InputOffice365MgmtRetryType.BACKOFF
237
+ type: Annotated[
238
+ Optional[InputOffice365MgmtRetryType], PlainValidator(validate_open_enum(False))
239
+ ] = InputOffice365MgmtRetryType.BACKOFF
176
240
  r"""The algorithm to use when performing HTTP retries"""
177
241
 
178
242
  interval: Optional[float] = 1000
@@ -202,8 +266,17 @@ class InputOffice365MgmtRetryRules(BaseModel):
202
266
  ] = False
203
267
  r"""Retry request when a connection reset (ECONNRESET) error occurs"""
204
268
 
269
+ @field_serializer("type")
270
+ def serialize_type(self, value):
271
+ if isinstance(value, str):
272
+ try:
273
+ return models.InputOffice365MgmtRetryType(value)
274
+ except ValueError:
275
+ return value
276
+ return value
277
+
205
278
 
206
- class InputOffice365MgmtAuthenticationMethod(str, Enum):
279
+ class InputOffice365MgmtAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
207
280
  r"""Enter client secret directly, or select a stored secret"""
208
281
 
209
282
  MANUAL = "manual"
@@ -211,13 +284,13 @@ class InputOffice365MgmtAuthenticationMethod(str, Enum):
211
284
 
212
285
 
213
286
  class InputOffice365MgmtTypedDict(TypedDict):
287
+ type: InputOffice365MgmtType
214
288
  tenant_id: str
215
289
  r"""Office 365 Azure Tenant ID"""
216
290
  app_id: str
217
291
  r"""Office 365 Azure Application ID"""
218
292
  id: NotRequired[str]
219
293
  r"""Unique ID for this input"""
220
- type: NotRequired[InputOffice365MgmtType]
221
294
  disabled: NotRequired[bool]
222
295
  pipeline: NotRequired[str]
223
296
  r"""Pipeline to process data from this Source before sending it through the Routes"""
@@ -265,6 +338,8 @@ class InputOffice365MgmtTypedDict(TypedDict):
265
338
 
266
339
 
267
340
  class InputOffice365Mgmt(BaseModel):
341
+ type: InputOffice365MgmtType
342
+
268
343
  tenant_id: Annotated[str, pydantic.Field(alias="tenantId")]
269
344
  r"""Office 365 Azure Tenant ID"""
270
345
 
@@ -274,8 +349,6 @@ class InputOffice365Mgmt(BaseModel):
274
349
  id: Optional[str] = None
275
350
  r"""Unique ID for this input"""
276
351
 
277
- type: Optional[InputOffice365MgmtType] = None
278
-
279
352
  disabled: Optional[bool] = False
280
353
 
281
354
  pipeline: Optional[str] = None
@@ -301,7 +374,11 @@ class InputOffice365Mgmt(BaseModel):
301
374
  pq: Optional[InputOffice365MgmtPq] = None
302
375
 
303
376
  plan_type: Annotated[
304
- Optional[InputOffice365MgmtSubscriptionPlan], pydantic.Field(alias="planType")
377
+ Annotated[
378
+ Optional[InputOffice365MgmtSubscriptionPlan],
379
+ PlainValidator(validate_open_enum(False)),
380
+ ],
381
+ pydantic.Field(alias="planType"),
305
382
  ] = InputOffice365MgmtSubscriptionPlan.ENTERPRISE_GCC
306
383
  r"""Office 365 subscription plan for your organization, typically Office 365 Enterprise"""
307
384
 
@@ -351,7 +428,10 @@ class InputOffice365Mgmt(BaseModel):
351
428
  ] = None
352
429
 
353
430
  auth_type: Annotated[
354
- Optional[InputOffice365MgmtAuthenticationMethod],
431
+ Annotated[
432
+ Optional[InputOffice365MgmtAuthenticationMethod],
433
+ PlainValidator(validate_open_enum(False)),
434
+ ],
355
435
  pydantic.Field(alias="authType"),
356
436
  ] = InputOffice365MgmtAuthenticationMethod.MANUAL
357
437
  r"""Enter client secret directly, or select a stored secret"""
@@ -363,3 +443,21 @@ class InputOffice365Mgmt(BaseModel):
363
443
 
364
444
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
365
445
  r"""Select or create a stored text secret"""
446
+
447
+ @field_serializer("plan_type")
448
+ def serialize_plan_type(self, value):
449
+ if isinstance(value, str):
450
+ try:
451
+ return models.InputOffice365MgmtSubscriptionPlan(value)
452
+ except ValueError:
453
+ return value
454
+ return value
455
+
456
+ @field_serializer("auth_type")
457
+ def serialize_auth_type(self, value):
458
+ if isinstance(value, str):
459
+ try:
460
+ return models.InputOffice365MgmtAuthenticationMethod(value)
461
+ except ValueError:
462
+ return value
463
+ return value
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -23,20 +27,32 @@ class InputOffice365MsgTraceConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputOffice365MsgTraceMode(str, Enum):
30
+ class InputOffice365MsgTraceMode(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 InputOffice365MsgTraceCompression(str, Enum):
39
+ class InputOffice365MsgTraceCompression(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 InputOffice365MsgTracePqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputOffice365MsgTracePqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputOffice365MsgTracePqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputOffice365MsgTraceMode]
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 InputOffice365MsgTracePqTypedDict(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[InputOffice365MsgTraceCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputOffice365MsgTracePqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputOffice365MsgTracePq(BaseModel):
58
- mode: Optional[InputOffice365MsgTraceMode] = InputOffice365MsgTraceMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputOffice365MsgTraceMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputOffice365MsgTraceMode.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,13 +98,38 @@ class InputOffice365MsgTracePq(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[InputOffice365MsgTraceCompression] = (
83
- InputOffice365MsgTraceCompression.NONE
84
- )
101
+ compress: Annotated[
102
+ Optional[InputOffice365MsgTraceCompression],
103
+ PlainValidator(validate_open_enum(False)),
104
+ ] = InputOffice365MsgTraceCompression.NONE
85
105
  r"""Codec to use to compress the persisted data"""
86
106
 
107
+ pq_controls: Annotated[
108
+ Optional[InputOffice365MsgTracePqControls], pydantic.Field(alias="pqControls")
109
+ ] = None
87
110
 
88
- class InputOffice365MsgTraceAuthenticationMethod(str, Enum):
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputOffice365MsgTraceMode(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.InputOffice365MsgTraceCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
129
+
130
+ class InputOffice365MsgTraceAuthenticationMethod(
131
+ str, Enum, metaclass=utils.OpenEnumMeta
132
+ ):
89
133
  r"""Select authentication method."""
90
134
 
91
135
  MANUAL = "manual"
@@ -95,7 +139,7 @@ class InputOffice365MsgTraceAuthenticationMethod(str, Enum):
95
139
  OAUTH_CERT = "oauthCert"
96
140
 
97
141
 
98
- class InputOffice365MsgTraceLogLevel(str, Enum):
142
+ class InputOffice365MsgTraceLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
99
143
  r"""Log Level (verbosity) for collection runtime behavior."""
100
144
 
101
145
  ERROR = "error"
@@ -118,11 +162,14 @@ class InputOffice365MsgTraceMetadatum(BaseModel):
118
162
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
119
163
 
120
164
 
121
- class InputOffice365MsgTraceRetryType(str, Enum):
165
+ class InputOffice365MsgTraceRetryType(str, Enum, metaclass=utils.OpenEnumMeta):
122
166
  r"""The algorithm to use when performing HTTP retries"""
123
167
 
168
+ # Disabled
124
169
  NONE = "none"
170
+ # Backoff
125
171
  BACKOFF = "backoff"
172
+ # Static
126
173
  STATIC = "static"
127
174
 
128
175
 
@@ -146,9 +193,10 @@ class InputOffice365MsgTraceRetryRulesTypedDict(TypedDict):
146
193
 
147
194
 
148
195
  class InputOffice365MsgTraceRetryRules(BaseModel):
149
- type: Optional[InputOffice365MsgTraceRetryType] = (
150
- InputOffice365MsgTraceRetryType.BACKOFF
151
- )
196
+ type: Annotated[
197
+ Optional[InputOffice365MsgTraceRetryType],
198
+ PlainValidator(validate_open_enum(False)),
199
+ ] = InputOffice365MsgTraceRetryType.BACKOFF
152
200
  r"""The algorithm to use when performing HTTP retries"""
153
201
 
154
202
  interval: Optional[float] = 1000
@@ -178,13 +226,26 @@ class InputOffice365MsgTraceRetryRules(BaseModel):
178
226
  ] = False
179
227
  r"""Retry request when a connection reset (ECONNRESET) error occurs"""
180
228
 
229
+ @field_serializer("type")
230
+ def serialize_type(self, value):
231
+ if isinstance(value, str):
232
+ try:
233
+ return models.InputOffice365MsgTraceRetryType(value)
234
+ except ValueError:
235
+ return value
236
+ return value
237
+
181
238
 
182
- class InputOffice365MsgTraceSubscriptionPlan(str, Enum):
239
+ class InputOffice365MsgTraceSubscriptionPlan(str, Enum, metaclass=utils.OpenEnumMeta):
183
240
  r"""Office 365 subscription plan for your organization, typically Office 365 Enterprise"""
184
241
 
242
+ # Office 365 Enterprise
185
243
  ENTERPRISE_GCC = "enterprise_gcc"
244
+ # Office 365 GCC
186
245
  GCC = "gcc"
246
+ # Office 365 GCC High
187
247
  GCC_HIGH = "gcc_high"
248
+ # Office 365 DoD
188
249
  DOD = "dod"
189
250
 
190
251
 
@@ -216,9 +277,9 @@ class CertOptions(BaseModel):
216
277
 
217
278
 
218
279
  class InputOffice365MsgTraceTypedDict(TypedDict):
280
+ type: InputOffice365MsgTraceType
219
281
  id: NotRequired[str]
220
282
  r"""Unique ID for this input"""
221
- type: NotRequired[InputOffice365MsgTraceType]
222
283
  disabled: NotRequired[bool]
223
284
  pipeline: NotRequired[str]
224
285
  r"""Pipeline to process data from this Source before sending it through the Routes"""
@@ -289,11 +350,11 @@ class InputOffice365MsgTraceTypedDict(TypedDict):
289
350
 
290
351
 
291
352
  class InputOffice365MsgTrace(BaseModel):
353
+ type: InputOffice365MsgTraceType
354
+
292
355
  id: Optional[str] = None
293
356
  r"""Unique ID for this input"""
294
357
 
295
- type: Optional[InputOffice365MsgTraceType] = None
296
-
297
358
  disabled: Optional[bool] = False
298
359
 
299
360
  pipeline: Optional[str] = None
@@ -341,7 +402,10 @@ class InputOffice365MsgTrace(BaseModel):
341
402
  r"""Disables time filtering of events when a date range is specified."""
342
403
 
343
404
  auth_type: Annotated[
344
- Optional[InputOffice365MsgTraceAuthenticationMethod],
405
+ Annotated[
406
+ Optional[InputOffice365MsgTraceAuthenticationMethod],
407
+ PlainValidator(validate_open_enum(False)),
408
+ ],
345
409
  pydantic.Field(alias="authType"),
346
410
  ] = InputOffice365MsgTraceAuthenticationMethod.OAUTH
347
411
  r"""Select authentication method."""
@@ -357,7 +421,11 @@ class InputOffice365MsgTrace(BaseModel):
357
421
  r"""Maximum number of times a task can be rescheduled"""
358
422
 
359
423
  log_level: Annotated[
360
- Optional[InputOffice365MsgTraceLogLevel], pydantic.Field(alias="logLevel")
424
+ Annotated[
425
+ Optional[InputOffice365MsgTraceLogLevel],
426
+ PlainValidator(validate_open_enum(False)),
427
+ ],
428
+ pydantic.Field(alias="logLevel"),
361
429
  ] = InputOffice365MsgTraceLogLevel.INFO
362
430
  r"""Log Level (verbosity) for collection runtime behavior."""
363
431
 
@@ -415,7 +483,10 @@ class InputOffice365MsgTrace(BaseModel):
415
483
  r"""Resource to pass in the OAuth request parameter."""
416
484
 
417
485
  plan_type: Annotated[
418
- Optional[InputOffice365MsgTraceSubscriptionPlan],
486
+ Annotated[
487
+ Optional[InputOffice365MsgTraceSubscriptionPlan],
488
+ PlainValidator(validate_open_enum(False)),
489
+ ],
419
490
  pydantic.Field(alias="planType"),
420
491
  ] = InputOffice365MsgTraceSubscriptionPlan.ENTERPRISE_GCC
421
492
  r"""Office 365 subscription plan for your organization, typically Office 365 Enterprise"""
@@ -426,3 +497,30 @@ class InputOffice365MsgTrace(BaseModel):
426
497
  cert_options: Annotated[
427
498
  Optional[CertOptions], pydantic.Field(alias="certOptions")
428
499
  ] = None
500
+
501
+ @field_serializer("auth_type")
502
+ def serialize_auth_type(self, value):
503
+ if isinstance(value, str):
504
+ try:
505
+ return models.InputOffice365MsgTraceAuthenticationMethod(value)
506
+ except ValueError:
507
+ return value
508
+ return value
509
+
510
+ @field_serializer("log_level")
511
+ def serialize_log_level(self, value):
512
+ if isinstance(value, str):
513
+ try:
514
+ return models.InputOffice365MsgTraceLogLevel(value)
515
+ except ValueError:
516
+ return value
517
+ return value
518
+
519
+ @field_serializer("plan_type")
520
+ def serialize_plan_type(self, value):
521
+ if isinstance(value, str):
522
+ try:
523
+ return models.InputOffice365MsgTraceSubscriptionPlan(value)
524
+ except ValueError:
525
+ return value
526
+ return value