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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +92 -42
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +21 -9
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +17 -1
  6. cribl_control_plane/branches.py +28 -8
  7. cribl_control_plane/commits.py +119 -47
  8. cribl_control_plane/commits_files.py +44 -24
  9. cribl_control_plane/configs_versions.py +16 -10
  10. cribl_control_plane/cribl.py +495 -0
  11. cribl_control_plane/destinations.py +86 -34
  12. cribl_control_plane/destinations_pq.py +34 -14
  13. cribl_control_plane/errors/__init__.py +23 -8
  14. cribl_control_plane/errors/apierror.py +2 -0
  15. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  16. cribl_control_plane/errors/error.py +4 -2
  17. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  18. cribl_control_plane/errors/no_response_error.py +5 -1
  19. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  20. cribl_control_plane/functions.py +367 -0
  21. cribl_control_plane/groups_configs.py +8 -3
  22. cribl_control_plane/groups_sdk.py +156 -94
  23. cribl_control_plane/health.py +34 -14
  24. cribl_control_plane/hectokens.py +44 -20
  25. cribl_control_plane/httpclient.py +0 -1
  26. cribl_control_plane/lakedatasets.py +156 -62
  27. cribl_control_plane/models/__init__.py +3298 -479
  28. cribl_control_plane/models/addhectokenrequest.py +7 -1
  29. cribl_control_plane/models/authtoken.py +5 -1
  30. cribl_control_plane/models/backupssettings_union.py +37 -0
  31. cribl_control_plane/models/{lookupversions.py → branchinfo.py} +4 -4
  32. cribl_control_plane/models/cacheconnection.py +30 -2
  33. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  34. cribl_control_plane/models/cloudprovider.py +2 -1
  35. cribl_control_plane/models/collectorazureblob.py +130 -0
  36. cribl_control_plane/models/collectorconf.py +56 -0
  37. cribl_control_plane/models/collectorcribllake.py +27 -0
  38. cribl_control_plane/models/collectordatabase.py +92 -0
  39. cribl_control_plane/models/collectorfilesystem.py +66 -0
  40. cribl_control_plane/models/collectorgooglecloudstorage.py +131 -0
  41. cribl_control_plane/models/collectorhealthcheck.py +269 -0
  42. cribl_control_plane/models/collectorrest.py +340 -0
  43. cribl_control_plane/models/collectors3.py +239 -0
  44. cribl_control_plane/models/collectorscript.py +59 -0
  45. cribl_control_plane/models/collectorsplunk.py +253 -0
  46. cribl_control_plane/models/configgroup.py +62 -8
  47. cribl_control_plane/models/configgroupcloud.py +17 -3
  48. cribl_control_plane/models/countedbranchinfo.py +20 -0
  49. cribl_control_plane/models/countedconfiggroup.py +20 -0
  50. cribl_control_plane/models/countedcribllakedataset.py +20 -0
  51. cribl_control_plane/models/counteddistributedsummary.py +20 -0
  52. cribl_control_plane/models/countedfunctionresponse.py +20 -0
  53. cribl_control_plane/models/countedgitcommitsummary.py +20 -0
  54. cribl_control_plane/models/countedgitcountresult.py +20 -0
  55. cribl_control_plane/models/{createinputop.py → countedgitdiffresult.py} +5 -9
  56. cribl_control_plane/models/countedgitfilesresponse.py +20 -0
  57. cribl_control_plane/models/{getversioninfoop.py → countedgitinfo.py} +2 -6
  58. cribl_control_plane/models/countedgitlogresult.py +20 -0
  59. cribl_control_plane/models/countedgitrevertresult.py +20 -0
  60. cribl_control_plane/models/countedgitshowresult.py +20 -0
  61. cribl_control_plane/models/countedgitstatusresult.py +20 -0
  62. cribl_control_plane/models/{listinputop.py → countedinput.py} +2 -6
  63. cribl_control_plane/models/countedinputsplunkhec.py +20 -0
  64. cribl_control_plane/models/countedjobinfo.py +20 -0
  65. cribl_control_plane/models/countedmasterworkerentry.py +20 -0
  66. cribl_control_plane/models/countednumber.py +19 -0
  67. cribl_control_plane/models/{getversionbranchop.py → countedobject.py} +2 -6
  68. cribl_control_plane/models/{listoutputop.py → countedoutput.py} +2 -6
  69. cribl_control_plane/models/{createoutputop.py → countedoutputsamplesresponse.py} +5 -9
  70. cribl_control_plane/models/countedoutputtestresponse.py +20 -0
  71. cribl_control_plane/models/countedpackinfo.py +20 -0
  72. cribl_control_plane/models/{createpacksop.py → countedpackinstallinfo.py} +2 -6
  73. cribl_control_plane/models/{listpipelineop.py → countedpipeline.py} +2 -6
  74. cribl_control_plane/models/{listroutesop.py → countedroutes.py} +2 -6
  75. cribl_control_plane/models/countedstring.py +19 -0
  76. cribl_control_plane/models/countedsystemsettingsconf.py +20 -0
  77. cribl_control_plane/models/countedteamaccesscontrollist.py +20 -0
  78. cribl_control_plane/models/counteduseraccesscontrollist.py +20 -0
  79. cribl_control_plane/models/createauthloginop.py +18 -0
  80. cribl_control_plane/models/createconfiggroupbyproductop.py +26 -27
  81. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +1 -19
  82. cribl_control_plane/models/createinputhectokenbyidop.py +1 -19
  83. cribl_control_plane/models/createoutputtestbyidop.py +1 -20
  84. cribl_control_plane/models/createroutesappendbyidop.py +4 -22
  85. cribl_control_plane/models/createversioncommitop.py +1 -19
  86. cribl_control_plane/models/createversionrevertop.py +3 -21
  87. cribl_control_plane/models/createversionundoop.py +1 -18
  88. cribl_control_plane/models/criblevent.py +15 -0
  89. cribl_control_plane/models/cribllakedataset.py +23 -3
  90. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  91. cribl_control_plane/models/datasetmetadata.py +18 -2
  92. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -21
  93. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +1 -20
  94. cribl_control_plane/models/deleteinputbyidop.py +1 -20
  95. cribl_control_plane/models/deleteoutputbyidop.py +1 -20
  96. cribl_control_plane/models/deleteoutputpqbyidop.py +1 -19
  97. cribl_control_plane/models/deletepacksbyidop.py +1 -20
  98. cribl_control_plane/models/deletepipelinebyidop.py +3 -22
  99. cribl_control_plane/models/difffiles.py +130 -0
  100. cribl_control_plane/models/diffline.py +26 -0
  101. cribl_control_plane/models/difflinecontext.py +28 -0
  102. cribl_control_plane/models/difflinedelete.py +25 -0
  103. cribl_control_plane/models/difflineinsert.py +25 -0
  104. cribl_control_plane/models/distributedsummary.py +6 -0
  105. cribl_control_plane/models/functionaggregatemetrics.py +206 -0
  106. cribl_control_plane/models/functionaggregation.py +172 -0
  107. cribl_control_plane/models/functionautotimestamp.py +173 -0
  108. cribl_control_plane/models/functioncef.py +111 -0
  109. cribl_control_plane/models/functionchain.py +75 -0
  110. cribl_control_plane/models/functionclone.py +75 -0
  111. cribl_control_plane/models/functioncode.py +96 -0
  112. cribl_control_plane/models/functioncomment.py +75 -0
  113. cribl_control_plane/models/functiondistinct.py +99 -0
  114. cribl_control_plane/models/functiondnslookup.py +250 -0
  115. cribl_control_plane/models/functiondrop.py +73 -0
  116. cribl_control_plane/models/functiondropdimensions.py +87 -0
  117. cribl_control_plane/models/functiondynamicsampling.py +121 -0
  118. cribl_control_plane/models/functioneval.py +103 -0
  119. cribl_control_plane/models/functioneventbreaker.py +103 -0
  120. cribl_control_plane/models/functioneventstats.py +92 -0
  121. cribl_control_plane/models/functionexternaldata.py +73 -0
  122. cribl_control_plane/models/functionflatten.py +90 -0
  123. cribl_control_plane/models/functionfoldkeys.py +89 -0
  124. cribl_control_plane/models/functiongenstats.py +73 -0
  125. cribl_control_plane/models/functiongeoip.py +120 -0
  126. cribl_control_plane/models/functiongrok.py +95 -0
  127. cribl_control_plane/models/functionhandlebar.py +112 -0
  128. cribl_control_plane/models/functionjoin.py +112 -0
  129. cribl_control_plane/models/functionjsonunroll.py +80 -0
  130. cribl_control_plane/models/functionlakeexport.py +102 -0
  131. cribl_control_plane/models/functionlimit.py +75 -0
  132. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
  133. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
  134. cribl_control_plane/models/functionlookup.py +148 -0
  135. cribl_control_plane/models/functionmask.py +121 -0
  136. cribl_control_plane/models/functionmvexpand.py +128 -0
  137. cribl_control_plane/models/functionmvpull.py +99 -0
  138. cribl_control_plane/models/functionnotificationpolicies.py +186 -0
  139. cribl_control_plane/models/functionnotifications.py +85 -0
  140. cribl_control_plane/models/functionnotify.py +196 -0
  141. cribl_control_plane/models/functionnumerify.py +119 -0
  142. cribl_control_plane/models/functionotlplogs.py +82 -0
  143. cribl_control_plane/models/functionotlpmetrics.py +118 -0
  144. cribl_control_plane/models/functionotlptraces.py +111 -0
  145. cribl_control_plane/models/functionpack.py +80 -0
  146. cribl_control_plane/models/functionpivot.py +85 -0
  147. cribl_control_plane/models/functionpublishmetrics.py +153 -0
  148. cribl_control_plane/models/functionredis.py +173 -0
  149. cribl_control_plane/models/functionregexextract.py +112 -0
  150. cribl_control_plane/models/functionregexfilter.py +95 -0
  151. cribl_control_plane/models/functionrename.py +107 -0
  152. cribl_control_plane/models/functionresponse.py +242 -0
  153. cribl_control_plane/models/functionrollupmetrics.py +114 -0
  154. cribl_control_plane/models/functionsampling.py +90 -0
  155. cribl_control_plane/models/functionsend.py +141 -0
  156. cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
  157. cribl_control_plane/models/functionserde.py +161 -0
  158. cribl_control_plane/models/functionserialize.py +134 -0
  159. cribl_control_plane/models/functionsidlookup.py +93 -0
  160. cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
  161. cribl_control_plane/models/functionsort.py +97 -0
  162. cribl_control_plane/models/functionstore.py +132 -0
  163. cribl_control_plane/models/functionsuppress.py +115 -0
  164. cribl_control_plane/models/functiontee.py +90 -0
  165. cribl_control_plane/models/functiontrimtimestamp.py +75 -0
  166. cribl_control_plane/models/functionunion.py +80 -0
  167. cribl_control_plane/models/functionunroll.py +80 -0
  168. cribl_control_plane/models/functionwindow.py +96 -0
  169. cribl_control_plane/models/functionxmlunroll.py +92 -0
  170. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -20
  171. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -20
  172. cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -19
  173. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -20
  174. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +1 -20
  175. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +54 -14
  176. cribl_control_plane/models/getfunctionsbyidop.py +18 -0
  177. cribl_control_plane/models/getinputbyidop.py +1 -20
  178. cribl_control_plane/models/getmasterworkerentryop.py +1 -18
  179. cribl_control_plane/models/getoutputbyidop.py +1 -20
  180. cribl_control_plane/models/getoutputpqbyidop.py +1 -19
  181. cribl_control_plane/models/getoutputsamplesbyidop.py +1 -20
  182. cribl_control_plane/models/getpacksbyidop.py +1 -20
  183. cribl_control_plane/models/getpacksop.py +1 -19
  184. cribl_control_plane/models/getpipelinebyidop.py +3 -22
  185. cribl_control_plane/models/getroutesbyidop.py +3 -22
  186. cribl_control_plane/models/getsummaryop.py +18 -20
  187. cribl_control_plane/models/getversioncountop.py +3 -21
  188. cribl_control_plane/models/getversiondiffop.py +1 -18
  189. cribl_control_plane/models/getversionfilesop.py +3 -22
  190. cribl_control_plane/models/getversionop.py +1 -19
  191. cribl_control_plane/models/getversionshowop.py +1 -18
  192. cribl_control_plane/models/getversionstatusop.py +1 -19
  193. cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
  194. cribl_control_plane/models/gitdiffresult.py +16 -0
  195. cribl_control_plane/models/gitinfo.py +14 -3
  196. cribl_control_plane/models/gitshowresult.py +19 -0
  197. cribl_control_plane/models/groupcreaterequest.py +172 -0
  198. cribl_control_plane/models/hbcriblinfo.py +42 -7
  199. cribl_control_plane/models/healthserverstatus.py +55 -0
  200. cribl_control_plane/models/heartbeatmetadata.py +6 -11
  201. cribl_control_plane/models/input.py +83 -78
  202. cribl_control_plane/models/inputappscope.py +126 -30
  203. cribl_control_plane/models/inputazureblob.py +62 -6
  204. cribl_control_plane/models/inputcloudflarehec.py +518 -0
  205. cribl_control_plane/models/inputcollection.py +47 -4
  206. cribl_control_plane/models/inputconfluentcloud.py +258 -32
  207. cribl_control_plane/models/inputcribl.py +47 -4
  208. cribl_control_plane/models/inputcriblhttp.py +121 -30
  209. cribl_control_plane/models/inputcribllakehttp.py +136 -30
  210. cribl_control_plane/models/inputcriblmetrics.py +48 -4
  211. cribl_control_plane/models/inputcribltcp.py +122 -24
  212. cribl_control_plane/models/inputcrowdstrike.py +92 -10
  213. cribl_control_plane/models/inputdatadogagent.py +98 -24
  214. cribl_control_plane/models/inputdatagen.py +47 -4
  215. cribl_control_plane/models/inputedgeprometheus.py +210 -50
  216. cribl_control_plane/models/inputelastic.py +167 -36
  217. cribl_control_plane/models/inputeventhub.py +209 -6
  218. cribl_control_plane/models/inputexec.py +59 -6
  219. cribl_control_plane/models/inputfile.py +78 -10
  220. cribl_control_plane/models/inputfirehose.py +97 -24
  221. cribl_control_plane/models/inputgooglepubsub.py +67 -6
  222. cribl_control_plane/models/inputgrafana.py +251 -71
  223. cribl_control_plane/models/inputhttp.py +97 -24
  224. cribl_control_plane/models/inputhttpraw.py +97 -24
  225. cribl_control_plane/models/inputjournalfiles.py +48 -4
  226. cribl_control_plane/models/inputkafka.py +252 -28
  227. cribl_control_plane/models/inputkinesis.py +130 -14
  228. cribl_control_plane/models/inputkubeevents.py +47 -4
  229. cribl_control_plane/models/inputkubelogs.py +61 -8
  230. cribl_control_plane/models/inputkubemetrics.py +61 -8
  231. cribl_control_plane/models/inputloki.py +113 -34
  232. cribl_control_plane/models/inputmetrics.py +97 -24
  233. cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
  234. cribl_control_plane/models/inputmsk.py +145 -32
  235. cribl_control_plane/models/inputnetflow.py +47 -4
  236. cribl_control_plane/models/inputoffice365mgmt.py +112 -14
  237. cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
  238. cribl_control_plane/models/inputoffice365service.py +114 -16
  239. cribl_control_plane/models/inputopentelemetry.py +143 -32
  240. cribl_control_plane/models/inputprometheus.py +193 -44
  241. cribl_control_plane/models/inputprometheusrw.py +114 -27
  242. cribl_control_plane/models/inputrawudp.py +47 -4
  243. cribl_control_plane/models/inputs3.py +78 -8
  244. cribl_control_plane/models/inputs3inventory.py +92 -10
  245. cribl_control_plane/models/inputsecuritylake.py +93 -10
  246. cribl_control_plane/models/inputsnmp.py +112 -21
  247. cribl_control_plane/models/inputsplunk.py +130 -28
  248. cribl_control_plane/models/inputsplunkhec.py +119 -29
  249. cribl_control_plane/models/inputsplunksearch.py +112 -15
  250. cribl_control_plane/models/inputsqs.py +99 -16
  251. cribl_control_plane/models/inputsyslog.py +189 -47
  252. cribl_control_plane/models/inputsystemmetrics.py +202 -32
  253. cribl_control_plane/models/inputsystemstate.py +61 -8
  254. cribl_control_plane/models/inputtcp.py +122 -26
  255. cribl_control_plane/models/inputtcpjson.py +112 -26
  256. cribl_control_plane/models/inputwef.py +144 -15
  257. cribl_control_plane/models/inputwindowsmetrics.py +186 -33
  258. cribl_control_plane/models/inputwineventlogs.py +93 -11
  259. cribl_control_plane/models/inputwiz.py +173 -8
  260. cribl_control_plane/models/inputwizwebhook.py +97 -24
  261. cribl_control_plane/models/inputzscalerhec.py +119 -29
  262. cribl_control_plane/models/jobinfo.py +34 -0
  263. cribl_control_plane/models/jobstatus.py +48 -0
  264. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  265. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  266. cribl_control_plane/models/listconfiggroupbyproductop.py +14 -19
  267. cribl_control_plane/models/listmasterworkerentryop.py +1 -19
  268. cribl_control_plane/models/logininfo.py +3 -3
  269. cribl_control_plane/models/masterworkerentry.py +20 -13
  270. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  271. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  272. cribl_control_plane/models/nodeprovidedinfo.py +13 -11
  273. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  274. cribl_control_plane/models/nodeupgradestate.py +2 -1
  275. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  276. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  277. cribl_control_plane/models/output.py +104 -90
  278. cribl_control_plane/models/outputazureblob.py +171 -18
  279. cribl_control_plane/models/outputazuredataexplorer.py +514 -90
  280. cribl_control_plane/models/outputazureeventhub.py +315 -31
  281. cribl_control_plane/models/outputazurelogs.py +145 -26
  282. cribl_control_plane/models/outputchronicle.py +532 -0
  283. cribl_control_plane/models/outputclickhouse.py +205 -34
  284. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  285. cribl_control_plane/models/outputcloudwatch.py +129 -23
  286. cribl_control_plane/models/outputconfluentcloud.py +384 -57
  287. cribl_control_plane/models/outputcriblhttp.py +198 -31
  288. cribl_control_plane/models/outputcribllake.py +156 -16
  289. cribl_control_plane/models/outputcribltcp.py +194 -29
  290. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
  291. cribl_control_plane/models/outputdatabricks.py +501 -0
  292. cribl_control_plane/models/outputdatadog.py +199 -31
  293. cribl_control_plane/models/outputdataset.py +181 -29
  294. cribl_control_plane/models/outputdiskspool.py +17 -2
  295. cribl_control_plane/models/outputdls3.py +233 -24
  296. cribl_control_plane/models/outputdynatracehttp.py +208 -34
  297. cribl_control_plane/models/outputdynatraceotlp.py +210 -36
  298. cribl_control_plane/models/outputelastic.py +199 -30
  299. cribl_control_plane/models/outputelasticcloud.py +171 -26
  300. cribl_control_plane/models/outputexabeam.py +96 -10
  301. cribl_control_plane/models/outputfilesystem.py +139 -14
  302. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  303. cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
  304. cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
  305. cribl_control_plane/models/outputgooglepubsub.py +131 -23
  306. cribl_control_plane/models/outputgrafanacloud.py +376 -74
  307. cribl_control_plane/models/outputgraphite.py +128 -25
  308. cribl_control_plane/models/outputhoneycomb.py +145 -26
  309. cribl_control_plane/models/outputhumiohec.py +162 -28
  310. cribl_control_plane/models/outputinfluxdb.py +165 -28
  311. cribl_control_plane/models/outputkafka.py +375 -52
  312. cribl_control_plane/models/outputkinesis.py +165 -27
  313. cribl_control_plane/models/outputloki.py +164 -34
  314. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  315. cribl_control_plane/models/outputminio.py +225 -25
  316. cribl_control_plane/models/outputmsk.py +267 -54
  317. cribl_control_plane/models/outputnewrelic.py +171 -29
  318. cribl_control_plane/models/outputnewrelicevents.py +163 -28
  319. cribl_control_plane/models/outputopentelemetry.py +240 -40
  320. cribl_control_plane/models/outputprometheus.py +145 -26
  321. cribl_control_plane/models/outputring.py +49 -8
  322. cribl_control_plane/models/outputs3.py +233 -26
  323. cribl_control_plane/models/outputsecuritylake.py +179 -18
  324. cribl_control_plane/models/outputsentinel.py +172 -29
  325. cribl_control_plane/models/outputsentineloneaisiem.py +178 -32
  326. cribl_control_plane/models/outputservicenow.py +223 -38
  327. cribl_control_plane/models/outputsignalfx.py +145 -26
  328. cribl_control_plane/models/outputsns.py +143 -25
  329. cribl_control_plane/models/outputsplunk.py +206 -36
  330. cribl_control_plane/models/outputsplunkhec.py +238 -26
  331. cribl_control_plane/models/outputsplunklb.py +262 -42
  332. cribl_control_plane/models/outputsqs.py +163 -33
  333. cribl_control_plane/models/outputstatsd.py +127 -25
  334. cribl_control_plane/models/outputstatsdext.py +128 -25
  335. cribl_control_plane/models/outputsumologic.py +146 -25
  336. cribl_control_plane/models/outputsyslog.py +318 -46
  337. cribl_control_plane/models/outputtcpjson.py +186 -32
  338. cribl_control_plane/models/outputwavefront.py +145 -26
  339. cribl_control_plane/models/outputwebhook.py +211 -33
  340. cribl_control_plane/models/outputxsiam.py +143 -26
  341. cribl_control_plane/models/packinfo.py +8 -5
  342. cribl_control_plane/models/packinstallinfo.py +11 -8
  343. cribl_control_plane/models/piisettings_union.py +31 -0
  344. cribl_control_plane/models/productscore.py +2 -1
  345. cribl_control_plane/models/rbacresource.py +2 -1
  346. cribl_control_plane/models/resourcepolicy.py +15 -2
  347. cribl_control_plane/models/rollbacksettings_union.py +44 -0
  348. cribl_control_plane/models/routeconf.py +3 -4
  349. cribl_control_plane/models/runnablejob.py +27 -0
  350. cribl_control_plane/models/runnablejobcollection.py +628 -0
  351. cribl_control_plane/models/runnablejobexecutor.py +360 -0
  352. cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
  353. cribl_control_plane/models/snisettings_union.py +31 -0
  354. cribl_control_plane/models/systemsettingsconf.py +291 -0
  355. cribl_control_plane/models/tlssettings_union.py +43 -0
  356. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -20
  357. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -21
  358. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +10 -25
  359. cribl_control_plane/models/updatehectokenrequest.py +7 -1
  360. cribl_control_plane/models/updateinputbyidop.py +1 -19
  361. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +1 -19
  362. cribl_control_plane/models/updateoutputbyidop.py +1 -19
  363. cribl_control_plane/models/updatepacksbyidop.py +1 -20
  364. cribl_control_plane/models/updatepacksop.py +25 -0
  365. cribl_control_plane/models/updatepipelinebyidop.py +5 -23
  366. cribl_control_plane/models/updateroutesbyidop.py +3 -21
  367. cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
  368. cribl_control_plane/models/upgradepackageurls.py +20 -0
  369. cribl_control_plane/models/upgradesettings.py +38 -0
  370. cribl_control_plane/models/uploadpackresponse.py +13 -0
  371. cribl_control_plane/models/workertypes.py +2 -1
  372. cribl_control_plane/nodes.py +37 -23
  373. cribl_control_plane/packs.py +292 -37
  374. cribl_control_plane/pipelines.py +98 -48
  375. cribl_control_plane/routes_sdk.py +86 -50
  376. cribl_control_plane/samples.py +32 -16
  377. cribl_control_plane/sdk.py +26 -6
  378. cribl_control_plane/settings.py +20 -0
  379. cribl_control_plane/sources.py +85 -33
  380. cribl_control_plane/statuses.py +16 -6
  381. cribl_control_plane/summaries.py +16 -6
  382. cribl_control_plane/system_sdk.py +20 -0
  383. cribl_control_plane/teams.py +16 -6
  384. cribl_control_plane/tokens.py +49 -21
  385. cribl_control_plane/utils/__init__.py +15 -3
  386. cribl_control_plane/utils/annotations.py +32 -8
  387. cribl_control_plane/utils/eventstreaming.py +10 -0
  388. cribl_control_plane/utils/forms.py +21 -10
  389. cribl_control_plane/utils/queryparams.py +14 -2
  390. cribl_control_plane/utils/retries.py +69 -5
  391. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  392. cribl_control_plane/versions.py +11 -6
  393. cribl_control_plane/versions_configs.py +16 -6
  394. {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/METADATA +99 -43
  395. cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
  396. {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
  397. cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
  398. cribl_control_plane/errors/healthstatus_error.py +0 -32
  399. cribl_control_plane/models/appmode.py +0 -13
  400. cribl_control_plane/models/createpipelineop.py +0 -24
  401. cribl_control_plane/models/createversionpushop.py +0 -23
  402. cribl_control_plane/models/healthstatus.py +0 -33
  403. cribl_control_plane-0.0.39.dist-info/RECORD +0 -315
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,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
 
@@ -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,8 +166,6 @@ 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
 
@@ -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
 
@@ -200,8 +224,6 @@ class OutputLokiTypedDict(TypedDict):
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."""
201
225
  enable_dynamic_headers: NotRequired[bool]
202
226
  r"""Add per-event HTTP headers from the __headers field to outgoing requests. Events with different headers are batched and sent separately."""
203
- send_structured_metadata: NotRequired[bool]
204
- r"""Add structured metadata fields from __structuredMetadata to each log. Key-value pairs must be strings."""
205
227
  on_backpressure: NotRequired[OutputLokiBackpressureBehavior]
206
228
  r"""How to handle events when all receivers are exerting backpressure"""
207
229
  total_memory_limit_kb: NotRequired[float]
@@ -219,6 +241,16 @@ class OutputLokiTypedDict(TypedDict):
219
241
  r"""Password (API key in Grafana Cloud domain) for authentication"""
220
242
  credentials_secret: NotRequired[str]
221
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"""
222
254
  pq_max_file_size: NotRequired[str]
223
255
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
224
256
  pq_max_size: NotRequired[str]
@@ -229,8 +261,6 @@ class OutputLokiTypedDict(TypedDict):
229
261
  r"""Codec to use to compress the persisted data"""
230
262
  pq_on_backpressure: NotRequired[OutputLokiQueueFullBehavior]
231
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."""
232
- pq_mode: NotRequired[OutputLokiMode]
233
- 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."""
234
264
  pq_controls: NotRequired[OutputLokiPqControlsTypedDict]
235
265
 
236
266
 
@@ -261,7 +291,10 @@ class OutputLoki(BaseModel):
261
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."""
262
292
 
263
293
  message_format: Annotated[
264
- Optional[OutputLokiMessageFormat], pydantic.Field(alias="messageFormat")
294
+ Annotated[
295
+ Optional[OutputLokiMessageFormat], PlainValidator(validate_open_enum(False))
296
+ ],
297
+ pydantic.Field(alias="messageFormat"),
265
298
  ] = OutputLokiMessageFormat.PROTOBUF
266
299
  r"""Format to use when sending logs to Loki (Protobuf or JSON)"""
267
300
 
@@ -269,7 +302,11 @@ class OutputLoki(BaseModel):
269
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\"}'"""
270
303
 
271
304
  auth_type: Annotated[
272
- Optional[OutputLokiAuthenticationType], pydantic.Field(alias="authType")
305
+ Annotated[
306
+ Optional[OutputLokiAuthenticationType],
307
+ PlainValidator(validate_open_enum(False)),
308
+ ],
309
+ pydantic.Field(alias="authType"),
273
310
  ] = OutputLokiAuthenticationType.NONE
274
311
 
275
312
  concurrency: Optional[float] = 1
@@ -313,7 +350,10 @@ class OutputLoki(BaseModel):
313
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."""
314
351
 
315
352
  failed_request_logging_mode: Annotated[
316
- Optional[OutputLokiFailedRequestLoggingMode],
353
+ Annotated[
354
+ Optional[OutputLokiFailedRequestLoggingMode],
355
+ PlainValidator(validate_open_enum(False)),
356
+ ],
317
357
  pydantic.Field(alias="failedRequestLoggingMode"),
318
358
  ] = OutputLokiFailedRequestLoggingMode.NONE
319
359
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -344,13 +384,12 @@ class OutputLoki(BaseModel):
344
384
  ] = False
345
385
  r"""Add per-event HTTP headers from the __headers field to outgoing requests. Events with different headers are batched and sent separately."""
346
386
 
347
- send_structured_metadata: Annotated[
348
- Optional[bool], pydantic.Field(alias="sendStructuredMetadata")
349
- ] = False
350
- r"""Add structured metadata fields from __structuredMetadata to each log. Key-value pairs must be strings."""
351
-
352
387
  on_backpressure: Annotated[
353
- Optional[OutputLokiBackpressureBehavior], pydantic.Field(alias="onBackpressure")
388
+ Annotated[
389
+ Optional[OutputLokiBackpressureBehavior],
390
+ PlainValidator(validate_open_enum(False)),
391
+ ],
392
+ pydantic.Field(alias="onBackpressure"),
354
393
  ] = OutputLokiBackpressureBehavior.BLOCK
355
394
  r"""How to handle events when all receivers are exerting backpressure"""
356
395
 
@@ -381,6 +420,32 @@ class OutputLoki(BaseModel):
381
420
  ] = None
382
421
  r"""Select or create a secret that references your credentials"""
383
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
+
384
449
  pq_max_file_size: Annotated[
385
450
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
386
451
  ] = "1 MB"
@@ -395,20 +460,85 @@ class OutputLoki(BaseModel):
395
460
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
396
461
 
397
462
  pq_compress: Annotated[
398
- Optional[OutputLokiCompression], pydantic.Field(alias="pqCompress")
463
+ Annotated[
464
+ Optional[OutputLokiCompression], PlainValidator(validate_open_enum(False))
465
+ ],
466
+ pydantic.Field(alias="pqCompress"),
399
467
  ] = OutputLokiCompression.NONE
400
468
  r"""Codec to use to compress the persisted data"""
401
469
 
402
470
  pq_on_backpressure: Annotated[
403
- Optional[OutputLokiQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
471
+ Annotated[
472
+ Optional[OutputLokiQueueFullBehavior],
473
+ PlainValidator(validate_open_enum(False)),
474
+ ],
475
+ pydantic.Field(alias="pqOnBackpressure"),
404
476
  ] = OutputLokiQueueFullBehavior.BLOCK
405
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."""
406
478
 
407
- pq_mode: Annotated[Optional[OutputLokiMode], pydantic.Field(alias="pqMode")] = (
408
- OutputLokiMode.ERROR
409
- )
410
- 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."""
411
-
412
479
  pq_controls: Annotated[
413
480
  Optional[OutputLokiPqControls], pydantic.Field(alias="pqControls")
414
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