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
 
@@ -12,58 +16,73 @@ class OutputKinesisType(str, Enum):
12
16
  KINESIS = "kinesis"
13
17
 
14
18
 
15
- class OutputKinesisAuthenticationMethod(str, Enum):
19
+ class OutputKinesisAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""AWS authentication method. Choose Auto to use IAM roles."""
17
21
 
22
+ # Auto
18
23
  AUTO = "auto"
24
+ # Manual
19
25
  MANUAL = "manual"
26
+ # Secret Key pair
20
27
  SECRET = "secret"
21
28
 
22
29
 
23
- class OutputKinesisSignatureVersion(str, Enum):
30
+ class OutputKinesisSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
24
31
  r"""Signature version to use for signing Kinesis stream requests"""
25
32
 
26
33
  V2 = "v2"
27
34
  V4 = "v4"
28
35
 
29
36
 
30
- class OutputKinesisCompression(str, Enum):
37
+ class OutputKinesisCompression(str, Enum, metaclass=utils.OpenEnumMeta):
31
38
  r"""Compression type to use for records"""
32
39
 
40
+ # None
33
41
  NONE = "none"
42
+ # Gzip
34
43
  GZIP = "gzip"
35
44
 
36
45
 
37
- class OutputKinesisBackpressureBehavior(str, Enum):
46
+ class OutputKinesisBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
38
47
  r"""How to handle events when all receivers are exerting backpressure"""
39
48
 
49
+ # Block
40
50
  BLOCK = "block"
51
+ # Drop
41
52
  DROP = "drop"
53
+ # Persistent Queue
42
54
  QUEUE = "queue"
43
55
 
44
56
 
45
- class OutputKinesisPqCompressCompression(str, Enum):
57
+ class OutputKinesisMode(str, Enum, metaclass=utils.OpenEnumMeta):
58
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
59
+
60
+ # Error
61
+ ERROR = "error"
62
+ # Backpressure
63
+ ALWAYS = "always"
64
+ # Always On
65
+ BACKPRESSURE = "backpressure"
66
+
67
+
68
+ class OutputKinesisPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
46
69
  r"""Codec to use to compress the persisted data"""
47
70
 
71
+ # None
48
72
  NONE = "none"
73
+ # Gzip
49
74
  GZIP = "gzip"
50
75
 
51
76
 
52
- class OutputKinesisQueueFullBehavior(str, Enum):
77
+ class OutputKinesisQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
78
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
54
79
 
80
+ # Block
55
81
  BLOCK = "block"
82
+ # Drop new data
56
83
  DROP = "drop"
57
84
 
58
85
 
59
- class OutputKinesisMode(str, Enum):
60
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
61
-
62
- ERROR = "error"
63
- BACKPRESSURE = "backpressure"
64
- ALWAYS = "always"
65
-
66
-
67
86
  class OutputKinesisPqControlsTypedDict(TypedDict):
68
87
  pass
69
88
 
@@ -73,13 +92,13 @@ class OutputKinesisPqControls(BaseModel):
73
92
 
74
93
 
75
94
  class OutputKinesisTypedDict(TypedDict):
95
+ type: OutputKinesisType
76
96
  stream_name: str
77
97
  r"""Kinesis stream name to send events to."""
78
98
  region: str
79
99
  r"""Region where the Kinesis stream is located"""
80
100
  id: NotRequired[str]
81
101
  r"""Unique ID for this output"""
82
- type: NotRequired[OutputKinesisType]
83
102
  pipeline: NotRequired[str]
84
103
  r"""Pipeline to process data before sending out to this output"""
85
104
  system_fields: NotRequired[List[str]]
@@ -125,6 +144,18 @@ class OutputKinesisTypedDict(TypedDict):
125
144
  aws_api_key: NotRequired[str]
126
145
  aws_secret: NotRequired[str]
127
146
  r"""Select or create a stored secret that references your access key and secret key"""
147
+ max_events_per_flush: NotRequired[float]
148
+ r"""Maximum number of records to send in a single request"""
149
+ pq_strict_ordering: NotRequired[bool]
150
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
151
+ pq_rate_per_sec: NotRequired[float]
152
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
153
+ pq_mode: NotRequired[OutputKinesisMode]
154
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
155
+ pq_max_buffer_size: NotRequired[float]
156
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
157
+ pq_max_backpressure_sec: NotRequired[float]
158
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
128
159
  pq_max_file_size: NotRequired[str]
129
160
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
130
161
  pq_max_size: NotRequired[str]
@@ -135,12 +166,12 @@ class OutputKinesisTypedDict(TypedDict):
135
166
  r"""Codec to use to compress the persisted data"""
136
167
  pq_on_backpressure: NotRequired[OutputKinesisQueueFullBehavior]
137
168
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
138
- pq_mode: NotRequired[OutputKinesisMode]
139
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
140
169
  pq_controls: NotRequired[OutputKinesisPqControlsTypedDict]
141
170
 
142
171
 
143
172
  class OutputKinesis(BaseModel):
173
+ type: OutputKinesisType
174
+
144
175
  stream_name: Annotated[str, pydantic.Field(alias="streamName")]
145
176
  r"""Kinesis stream name to send events to."""
146
177
 
@@ -150,8 +181,6 @@ class OutputKinesis(BaseModel):
150
181
  id: Optional[str] = None
151
182
  r"""Unique ID for this output"""
152
183
 
153
- type: Optional[OutputKinesisType] = None
154
-
155
184
  pipeline: Optional[str] = None
156
185
  r"""Pipeline to process data before sending out to this output"""
157
186
 
@@ -167,7 +196,10 @@ class OutputKinesis(BaseModel):
167
196
  r"""Tags for filtering and grouping in @{product}"""
168
197
 
169
198
  aws_authentication_method: Annotated[
170
- Optional[OutputKinesisAuthenticationMethod],
199
+ Annotated[
200
+ Optional[OutputKinesisAuthenticationMethod],
201
+ PlainValidator(validate_open_enum(False)),
202
+ ],
171
203
  pydantic.Field(alias="awsAuthenticationMethod"),
172
204
  ] = OutputKinesisAuthenticationMethod.AUTO
173
205
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -180,7 +212,10 @@ class OutputKinesis(BaseModel):
180
212
  r"""Kinesis stream service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to Kinesis stream-compatible endpoint."""
181
213
 
182
214
  signature_version: Annotated[
183
- Optional[OutputKinesisSignatureVersion],
215
+ Annotated[
216
+ Optional[OutputKinesisSignatureVersion],
217
+ PlainValidator(validate_open_enum(False)),
218
+ ],
184
219
  pydantic.Field(alias="signatureVersion"),
185
220
  ] = OutputKinesisSignatureVersion.V4
186
221
  r"""Signature version to use for signing Kinesis stream requests"""
@@ -228,7 +263,9 @@ class OutputKinesis(BaseModel):
228
263
  ] = 1
229
264
  r"""Maximum time between requests. Small values could cause the payload size to be smaller than the configured Max record size."""
230
265
 
231
- compression: Optional[OutputKinesisCompression] = OutputKinesisCompression.GZIP
266
+ compression: Annotated[
267
+ Optional[OutputKinesisCompression], PlainValidator(validate_open_enum(False))
268
+ ] = OutputKinesisCompression.GZIP
232
269
  r"""Compression type to use for records"""
233
270
 
234
271
  use_list_shards: Annotated[
@@ -240,7 +277,10 @@ class OutputKinesis(BaseModel):
240
277
  r"""Batch events into a single record as NDJSON"""
241
278
 
242
279
  on_backpressure: Annotated[
243
- Optional[OutputKinesisBackpressureBehavior],
280
+ Annotated[
281
+ Optional[OutputKinesisBackpressureBehavior],
282
+ PlainValidator(validate_open_enum(False)),
283
+ ],
244
284
  pydantic.Field(alias="onBackpressure"),
245
285
  ] = OutputKinesisBackpressureBehavior.BLOCK
246
286
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -252,6 +292,39 @@ class OutputKinesis(BaseModel):
252
292
  aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
253
293
  r"""Select or create a stored secret that references your access key and secret key"""
254
294
 
295
+ max_events_per_flush: Annotated[
296
+ Optional[float], pydantic.Field(alias="maxEventsPerFlush")
297
+ ] = 500
298
+ r"""Maximum number of records to send in a single request"""
299
+
300
+ pq_strict_ordering: Annotated[
301
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
302
+ ] = True
303
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
304
+
305
+ pq_rate_per_sec: Annotated[
306
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
307
+ ] = 0
308
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
309
+
310
+ pq_mode: Annotated[
311
+ Annotated[
312
+ Optional[OutputKinesisMode], PlainValidator(validate_open_enum(False))
313
+ ],
314
+ pydantic.Field(alias="pqMode"),
315
+ ] = OutputKinesisMode.ERROR
316
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
317
+
318
+ pq_max_buffer_size: Annotated[
319
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
320
+ ] = 42
321
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
322
+
323
+ pq_max_backpressure_sec: Annotated[
324
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
325
+ ] = 30
326
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
327
+
255
328
  pq_max_file_size: Annotated[
256
329
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
257
330
  ] = "1 MB"
@@ -266,21 +339,86 @@ class OutputKinesis(BaseModel):
266
339
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
267
340
 
268
341
  pq_compress: Annotated[
269
- Optional[OutputKinesisPqCompressCompression], pydantic.Field(alias="pqCompress")
342
+ Annotated[
343
+ Optional[OutputKinesisPqCompressCompression],
344
+ PlainValidator(validate_open_enum(False)),
345
+ ],
346
+ pydantic.Field(alias="pqCompress"),
270
347
  ] = OutputKinesisPqCompressCompression.NONE
271
348
  r"""Codec to use to compress the persisted data"""
272
349
 
273
350
  pq_on_backpressure: Annotated[
274
- Optional[OutputKinesisQueueFullBehavior],
351
+ Annotated[
352
+ Optional[OutputKinesisQueueFullBehavior],
353
+ PlainValidator(validate_open_enum(False)),
354
+ ],
275
355
  pydantic.Field(alias="pqOnBackpressure"),
276
356
  ] = OutputKinesisQueueFullBehavior.BLOCK
277
357
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
278
358
 
279
- pq_mode: Annotated[Optional[OutputKinesisMode], pydantic.Field(alias="pqMode")] = (
280
- OutputKinesisMode.ERROR
281
- )
282
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
283
-
284
359
  pq_controls: Annotated[
285
360
  Optional[OutputKinesisPqControls], pydantic.Field(alias="pqControls")
286
361
  ] = None
362
+
363
+ @field_serializer("aws_authentication_method")
364
+ def serialize_aws_authentication_method(self, value):
365
+ if isinstance(value, str):
366
+ try:
367
+ return models.OutputKinesisAuthenticationMethod(value)
368
+ except ValueError:
369
+ return value
370
+ return value
371
+
372
+ @field_serializer("signature_version")
373
+ def serialize_signature_version(self, value):
374
+ if isinstance(value, str):
375
+ try:
376
+ return models.OutputKinesisSignatureVersion(value)
377
+ except ValueError:
378
+ return value
379
+ return value
380
+
381
+ @field_serializer("compression")
382
+ def serialize_compression(self, value):
383
+ if isinstance(value, str):
384
+ try:
385
+ return models.OutputKinesisCompression(value)
386
+ except ValueError:
387
+ return value
388
+ return value
389
+
390
+ @field_serializer("on_backpressure")
391
+ def serialize_on_backpressure(self, value):
392
+ if isinstance(value, str):
393
+ try:
394
+ return models.OutputKinesisBackpressureBehavior(value)
395
+ except ValueError:
396
+ return value
397
+ return value
398
+
399
+ @field_serializer("pq_mode")
400
+ def serialize_pq_mode(self, value):
401
+ if isinstance(value, str):
402
+ try:
403
+ return models.OutputKinesisMode(value)
404
+ except ValueError:
405
+ return value
406
+ return value
407
+
408
+ @field_serializer("pq_compress")
409
+ def serialize_pq_compress(self, value):
410
+ if isinstance(value, str):
411
+ try:
412
+ return models.OutputKinesisPqCompressCompression(value)
413
+ except ValueError:
414
+ return value
415
+ return value
416
+
417
+ @field_serializer("pq_on_backpressure")
418
+ def serialize_pq_on_backpressure(self, value):
419
+ if isinstance(value, str):
420
+ try:
421
+ return models.OutputKinesisQueueFullBehavior(value)
422
+ except ValueError:
423
+ return value
424
+ return value
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,10 +16,12 @@ class OutputLokiType(str, Enum):
12
16
  LOKI = "loki"
13
17
 
14
18
 
15
- class OutputLokiMessageFormat(str, Enum):
19
+ class OutputLokiMessageFormat(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Format to use when sending logs to Loki (Protobuf or JSON)"""
17
21
 
22
+ # Protobuf
18
23
  PROTOBUF = "protobuf"
24
+ # JSON
19
25
  JSON = "json"
20
26
 
21
27
 
@@ -30,11 +36,16 @@ class OutputLokiLabel(BaseModel):
30
36
  name: Optional[str] = ""
31
37
 
32
38
 
33
- class OutputLokiAuthenticationType(str, Enum):
39
+ class OutputLokiAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
40
+ # None
34
41
  NONE = "none"
42
+ # Auth token
35
43
  TOKEN = "token"
44
+ # Auth token (text secret)
36
45
  TEXT_SECRET = "textSecret"
46
+ # Basic
37
47
  BASIC = "basic"
48
+ # Basic (credentials secret)
38
49
  CREDENTIALS_SECRET = "credentialsSecret"
39
50
 
40
51
 
@@ -49,11 +60,14 @@ class OutputLokiExtraHTTPHeader(BaseModel):
49
60
  name: Optional[str] = None
50
61
 
51
62
 
52
- class OutputLokiFailedRequestLoggingMode(str, Enum):
63
+ class OutputLokiFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
53
64
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
54
65
 
66
+ # Payload
55
67
  PAYLOAD = "payload"
68
+ # Payload + Headers
56
69
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
70
+ # None
57
71
  NONE = "none"
58
72
 
59
73
 
@@ -111,36 +125,46 @@ class OutputLokiTimeoutRetrySettings(BaseModel):
111
125
  r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
112
126
 
113
127
 
114
- class OutputLokiBackpressureBehavior(str, Enum):
128
+ class OutputLokiBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
115
129
  r"""How to handle events when all receivers are exerting backpressure"""
116
130
 
131
+ # Block
117
132
  BLOCK = "block"
133
+ # Drop
118
134
  DROP = "drop"
135
+ # Persistent Queue
119
136
  QUEUE = "queue"
120
137
 
121
138
 
122
- class OutputLokiCompression(str, Enum):
139
+ class OutputLokiMode(str, Enum, metaclass=utils.OpenEnumMeta):
140
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
141
+
142
+ # Error
143
+ ERROR = "error"
144
+ # Backpressure
145
+ ALWAYS = "always"
146
+ # Always On
147
+ BACKPRESSURE = "backpressure"
148
+
149
+
150
+ class OutputLokiCompression(str, Enum, metaclass=utils.OpenEnumMeta):
123
151
  r"""Codec to use to compress the persisted data"""
124
152
 
153
+ # None
125
154
  NONE = "none"
155
+ # Gzip
126
156
  GZIP = "gzip"
127
157
 
128
158
 
129
- class OutputLokiQueueFullBehavior(str, Enum):
159
+ class OutputLokiQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
130
160
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
131
161
 
162
+ # Block
132
163
  BLOCK = "block"
164
+ # Drop new data
133
165
  DROP = "drop"
134
166
 
135
167
 
136
- class OutputLokiMode(str, Enum):
137
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
138
-
139
- ERROR = "error"
140
- BACKPRESSURE = "backpressure"
141
- ALWAYS = "always"
142
-
143
-
144
168
  class OutputLokiPqControlsTypedDict(TypedDict):
145
169
  pass
146
170
 
@@ -198,6 +222,8 @@ class OutputLokiTypedDict(TypedDict):
198
222
  timeout_retry_settings: NotRequired[OutputLokiTimeoutRetrySettingsTypedDict]
199
223
  response_honor_retry_after_header: NotRequired[bool]
200
224
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
225
+ enable_dynamic_headers: NotRequired[bool]
226
+ r"""Add per-event HTTP headers from the __headers field to outgoing requests. Events with different headers are batched and sent separately."""
201
227
  on_backpressure: NotRequired[OutputLokiBackpressureBehavior]
202
228
  r"""How to handle events when all receivers are exerting backpressure"""
203
229
  total_memory_limit_kb: NotRequired[float]
@@ -215,6 +241,16 @@ class OutputLokiTypedDict(TypedDict):
215
241
  r"""Password (API key in Grafana Cloud domain) for authentication"""
216
242
  credentials_secret: NotRequired[str]
217
243
  r"""Select or create a secret that references your credentials"""
244
+ pq_strict_ordering: NotRequired[bool]
245
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
246
+ pq_rate_per_sec: NotRequired[float]
247
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
248
+ pq_mode: NotRequired[OutputLokiMode]
249
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
250
+ pq_max_buffer_size: NotRequired[float]
251
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
252
+ pq_max_backpressure_sec: NotRequired[float]
253
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
218
254
  pq_max_file_size: NotRequired[str]
219
255
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
220
256
  pq_max_size: NotRequired[str]
@@ -225,8 +261,6 @@ class OutputLokiTypedDict(TypedDict):
225
261
  r"""Codec to use to compress the persisted data"""
226
262
  pq_on_backpressure: NotRequired[OutputLokiQueueFullBehavior]
227
263
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
228
- pq_mode: NotRequired[OutputLokiMode]
229
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
230
264
  pq_controls: NotRequired[OutputLokiPqControlsTypedDict]
231
265
 
232
266
 
@@ -257,7 +291,10 @@ class OutputLoki(BaseModel):
257
291
  r"""Name of the event field that contains the message to send. If not specified, Stream sends a JSON representation of the whole event."""
258
292
 
259
293
  message_format: Annotated[
260
- Optional[OutputLokiMessageFormat], pydantic.Field(alias="messageFormat")
294
+ Annotated[
295
+ Optional[OutputLokiMessageFormat], PlainValidator(validate_open_enum(False))
296
+ ],
297
+ pydantic.Field(alias="messageFormat"),
261
298
  ] = OutputLokiMessageFormat.PROTOBUF
262
299
  r"""Format to use when sending logs to Loki (Protobuf or JSON)"""
263
300
 
@@ -265,7 +302,11 @@ class OutputLoki(BaseModel):
265
302
  r"""List of labels to send with logs. Labels define Loki streams, so use static labels to avoid proliferating label value combinations and streams. Can be merged and/or overridden by the event's __labels field. Example: '__labels: {host: \"cribl.io\", level: \"error\"}'"""
266
303
 
267
304
  auth_type: Annotated[
268
- Optional[OutputLokiAuthenticationType], pydantic.Field(alias="authType")
305
+ Annotated[
306
+ Optional[OutputLokiAuthenticationType],
307
+ PlainValidator(validate_open_enum(False)),
308
+ ],
309
+ pydantic.Field(alias="authType"),
269
310
  ] = OutputLokiAuthenticationType.NONE
270
311
 
271
312
  concurrency: Optional[float] = 1
@@ -309,7 +350,10 @@ class OutputLoki(BaseModel):
309
350
  r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
310
351
 
311
352
  failed_request_logging_mode: Annotated[
312
- Optional[OutputLokiFailedRequestLoggingMode],
353
+ Annotated[
354
+ Optional[OutputLokiFailedRequestLoggingMode],
355
+ PlainValidator(validate_open_enum(False)),
356
+ ],
313
357
  pydantic.Field(alias="failedRequestLoggingMode"),
314
358
  ] = OutputLokiFailedRequestLoggingMode.NONE
315
359
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -335,8 +379,17 @@ class OutputLoki(BaseModel):
335
379
  ] = False
336
380
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
337
381
 
382
+ enable_dynamic_headers: Annotated[
383
+ Optional[bool], pydantic.Field(alias="enableDynamicHeaders")
384
+ ] = False
385
+ r"""Add per-event HTTP headers from the __headers field to outgoing requests. Events with different headers are batched and sent separately."""
386
+
338
387
  on_backpressure: Annotated[
339
- Optional[OutputLokiBackpressureBehavior], pydantic.Field(alias="onBackpressure")
388
+ Annotated[
389
+ Optional[OutputLokiBackpressureBehavior],
390
+ PlainValidator(validate_open_enum(False)),
391
+ ],
392
+ pydantic.Field(alias="onBackpressure"),
340
393
  ] = OutputLokiBackpressureBehavior.BLOCK
341
394
  r"""How to handle events when all receivers are exerting backpressure"""
342
395
 
@@ -367,6 +420,32 @@ class OutputLoki(BaseModel):
367
420
  ] = None
368
421
  r"""Select or create a secret that references your credentials"""
369
422
 
423
+ pq_strict_ordering: Annotated[
424
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
425
+ ] = True
426
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
427
+
428
+ pq_rate_per_sec: Annotated[
429
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
430
+ ] = 0
431
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
432
+
433
+ pq_mode: Annotated[
434
+ Annotated[Optional[OutputLokiMode], PlainValidator(validate_open_enum(False))],
435
+ pydantic.Field(alias="pqMode"),
436
+ ] = OutputLokiMode.ERROR
437
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
438
+
439
+ pq_max_buffer_size: Annotated[
440
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
441
+ ] = 42
442
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
443
+
444
+ pq_max_backpressure_sec: Annotated[
445
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
446
+ ] = 30
447
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
448
+
370
449
  pq_max_file_size: Annotated[
371
450
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
372
451
  ] = "1 MB"
@@ -381,20 +460,85 @@ class OutputLoki(BaseModel):
381
460
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
382
461
 
383
462
  pq_compress: Annotated[
384
- Optional[OutputLokiCompression], pydantic.Field(alias="pqCompress")
463
+ Annotated[
464
+ Optional[OutputLokiCompression], PlainValidator(validate_open_enum(False))
465
+ ],
466
+ pydantic.Field(alias="pqCompress"),
385
467
  ] = OutputLokiCompression.NONE
386
468
  r"""Codec to use to compress the persisted data"""
387
469
 
388
470
  pq_on_backpressure: Annotated[
389
- Optional[OutputLokiQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
471
+ Annotated[
472
+ Optional[OutputLokiQueueFullBehavior],
473
+ PlainValidator(validate_open_enum(False)),
474
+ ],
475
+ pydantic.Field(alias="pqOnBackpressure"),
390
476
  ] = OutputLokiQueueFullBehavior.BLOCK
391
477
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
392
478
 
393
- pq_mode: Annotated[Optional[OutputLokiMode], pydantic.Field(alias="pqMode")] = (
394
- OutputLokiMode.ERROR
395
- )
396
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
397
-
398
479
  pq_controls: Annotated[
399
480
  Optional[OutputLokiPqControls], pydantic.Field(alias="pqControls")
400
481
  ] = None
482
+
483
+ @field_serializer("message_format")
484
+ def serialize_message_format(self, value):
485
+ if isinstance(value, str):
486
+ try:
487
+ return models.OutputLokiMessageFormat(value)
488
+ except ValueError:
489
+ return value
490
+ return value
491
+
492
+ @field_serializer("auth_type")
493
+ def serialize_auth_type(self, value):
494
+ if isinstance(value, str):
495
+ try:
496
+ return models.OutputLokiAuthenticationType(value)
497
+ except ValueError:
498
+ return value
499
+ return value
500
+
501
+ @field_serializer("failed_request_logging_mode")
502
+ def serialize_failed_request_logging_mode(self, value):
503
+ if isinstance(value, str):
504
+ try:
505
+ return models.OutputLokiFailedRequestLoggingMode(value)
506
+ except ValueError:
507
+ return value
508
+ return value
509
+
510
+ @field_serializer("on_backpressure")
511
+ def serialize_on_backpressure(self, value):
512
+ if isinstance(value, str):
513
+ try:
514
+ return models.OutputLokiBackpressureBehavior(value)
515
+ except ValueError:
516
+ return value
517
+ return value
518
+
519
+ @field_serializer("pq_mode")
520
+ def serialize_pq_mode(self, value):
521
+ if isinstance(value, str):
522
+ try:
523
+ return models.OutputLokiMode(value)
524
+ except ValueError:
525
+ return value
526
+ return value
527
+
528
+ @field_serializer("pq_compress")
529
+ def serialize_pq_compress(self, value):
530
+ if isinstance(value, str):
531
+ try:
532
+ return models.OutputLokiCompression(value)
533
+ except ValueError:
534
+ return value
535
+ return value
536
+
537
+ @field_serializer("pq_on_backpressure")
538
+ def serialize_pq_on_backpressure(self, value):
539
+ if isinstance(value, str):
540
+ try:
541
+ return models.OutputLokiQueueFullBehavior(value)
542
+ except ValueError:
543
+ return value
544
+ return value