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,21 +16,23 @@ class OutputTcpjsonType(str, Enum):
12
16
  TCPJSON = "tcpjson"
13
17
 
14
18
 
15
- class OutputTcpjsonCompression(str, Enum):
19
+ class OutputTcpjsonCompression(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Codec to use to compress the data before sending"""
17
21
 
22
+ # None
18
23
  NONE = "none"
24
+ # Gzip
19
25
  GZIP = "gzip"
20
26
 
21
27
 
22
- class OutputTcpjsonMinimumTLSVersion(str, Enum):
28
+ class OutputTcpjsonMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
29
  TL_SV1 = "TLSv1"
24
30
  TL_SV1_1 = "TLSv1.1"
25
31
  TL_SV1_2 = "TLSv1.2"
26
32
  TL_SV1_3 = "TLSv1.3"
27
33
 
28
34
 
29
- class OutputTcpjsonMaximumTLSVersion(str, Enum):
35
+ class OutputTcpjsonMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
30
36
  TL_SV1 = "TLSv1"
31
37
  TL_SV1_1 = "TLSv1.1"
32
38
  TL_SV1_2 = "TLSv1.2"
@@ -86,30 +92,59 @@ class OutputTcpjsonTLSSettingsClientSide(BaseModel):
86
92
  r"""Passphrase to use to decrypt private key"""
87
93
 
88
94
  min_version: Annotated[
89
- Optional[OutputTcpjsonMinimumTLSVersion], pydantic.Field(alias="minVersion")
95
+ Annotated[
96
+ Optional[OutputTcpjsonMinimumTLSVersion],
97
+ PlainValidator(validate_open_enum(False)),
98
+ ],
99
+ pydantic.Field(alias="minVersion"),
90
100
  ] = None
91
101
 
92
102
  max_version: Annotated[
93
- Optional[OutputTcpjsonMaximumTLSVersion], pydantic.Field(alias="maxVersion")
103
+ Annotated[
104
+ Optional[OutputTcpjsonMaximumTLSVersion],
105
+ PlainValidator(validate_open_enum(False)),
106
+ ],
107
+ pydantic.Field(alias="maxVersion"),
94
108
  ] = None
95
109
 
96
-
97
- class OutputTcpjsonBackpressureBehavior(str, Enum):
110
+ @field_serializer("min_version")
111
+ def serialize_min_version(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.OutputTcpjsonMinimumTLSVersion(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("max_version")
120
+ def serialize_max_version(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.OutputTcpjsonMaximumTLSVersion(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
128
+
129
+ class OutputTcpjsonBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
98
130
  r"""How to handle events when all receivers are exerting backpressure"""
99
131
 
132
+ # Block
100
133
  BLOCK = "block"
134
+ # Drop
101
135
  DROP = "drop"
136
+ # Persistent Queue
102
137
  QUEUE = "queue"
103
138
 
104
139
 
105
- class OutputTcpjsonAuthenticationMethod(str, Enum):
140
+ class OutputTcpjsonAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
106
141
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
107
142
 
108
143
  MANUAL = "manual"
109
144
  SECRET = "secret"
110
145
 
111
146
 
112
- class OutputTcpjsonTLS(str, Enum):
147
+ class OutputTcpjsonTLS(str, Enum, metaclass=utils.OpenEnumMeta):
113
148
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
114
149
 
115
150
  INHERIT = "inherit"
@@ -136,7 +171,9 @@ class OutputTcpjsonHost(BaseModel):
136
171
  port: float
137
172
  r"""The port to connect to on the provided host"""
138
173
 
139
- tls: Optional[OutputTcpjsonTLS] = OutputTcpjsonTLS.INHERIT
174
+ tls: Annotated[
175
+ Optional[OutputTcpjsonTLS], PlainValidator(validate_open_enum(False))
176
+ ] = OutputTcpjsonTLS.INHERIT
140
177
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
141
178
 
142
179
  servername: Optional[str] = None
@@ -145,29 +182,45 @@ class OutputTcpjsonHost(BaseModel):
145
182
  weight: Optional[float] = 1
146
183
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
147
184
 
185
+ @field_serializer("tls")
186
+ def serialize_tls(self, value):
187
+ if isinstance(value, str):
188
+ try:
189
+ return models.OutputTcpjsonTLS(value)
190
+ except ValueError:
191
+ return value
192
+ return value
193
+
194
+
195
+ class OutputTcpjsonMode(str, Enum, metaclass=utils.OpenEnumMeta):
196
+ 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."""
197
+
198
+ # Error
199
+ ERROR = "error"
200
+ # Backpressure
201
+ ALWAYS = "always"
202
+ # Always On
203
+ BACKPRESSURE = "backpressure"
148
204
 
149
- class OutputTcpjsonPqCompressCompression(str, Enum):
205
+
206
+ class OutputTcpjsonPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
150
207
  r"""Codec to use to compress the persisted data"""
151
208
 
209
+ # None
152
210
  NONE = "none"
211
+ # Gzip
153
212
  GZIP = "gzip"
154
213
 
155
214
 
156
- class OutputTcpjsonQueueFullBehavior(str, Enum):
215
+ class OutputTcpjsonQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
157
216
  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."""
158
217
 
218
+ # Block
159
219
  BLOCK = "block"
220
+ # Drop new data
160
221
  DROP = "drop"
161
222
 
162
223
 
163
- class OutputTcpjsonMode(str, Enum):
164
- 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."""
165
-
166
- ERROR = "error"
167
- BACKPRESSURE = "backpressure"
168
- ALWAYS = "always"
169
-
170
-
171
224
  class OutputTcpjsonPqControlsTypedDict(TypedDict):
172
225
  pass
173
226
 
@@ -177,9 +230,9 @@ class OutputTcpjsonPqControls(BaseModel):
177
230
 
178
231
 
179
232
  class OutputTcpjsonTypedDict(TypedDict):
180
- id: str
181
- r"""Unique ID for this output"""
182
233
  type: OutputTcpjsonType
234
+ id: NotRequired[str]
235
+ r"""Unique ID for this output"""
183
236
  pipeline: NotRequired[str]
184
237
  r"""Pipeline to process data before sending out to this output"""
185
238
  system_fields: NotRequired[List[str]]
@@ -224,6 +277,16 @@ class OutputTcpjsonTypedDict(TypedDict):
224
277
  r"""How far back in time to keep traffic stats for load balancing purposes"""
225
278
  max_concurrent_senders: NotRequired[float]
226
279
  r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
280
+ pq_strict_ordering: NotRequired[bool]
281
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
282
+ pq_rate_per_sec: NotRequired[float]
283
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
284
+ pq_mode: NotRequired[OutputTcpjsonMode]
285
+ 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."""
286
+ pq_max_buffer_size: NotRequired[float]
287
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
288
+ pq_max_backpressure_sec: NotRequired[float]
289
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
227
290
  pq_max_file_size: NotRequired[str]
228
291
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
229
292
  pq_max_size: NotRequired[str]
@@ -234,8 +297,6 @@ class OutputTcpjsonTypedDict(TypedDict):
234
297
  r"""Codec to use to compress the persisted data"""
235
298
  pq_on_backpressure: NotRequired[OutputTcpjsonQueueFullBehavior]
236
299
  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."""
237
- pq_mode: NotRequired[OutputTcpjsonMode]
238
- 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."""
239
300
  pq_controls: NotRequired[OutputTcpjsonPqControlsTypedDict]
240
301
  auth_token: NotRequired[str]
241
302
  r"""Optional authentication token to include as part of the connection header"""
@@ -244,11 +305,11 @@ class OutputTcpjsonTypedDict(TypedDict):
244
305
 
245
306
 
246
307
  class OutputTcpjson(BaseModel):
247
- id: str
248
- r"""Unique ID for this output"""
249
-
250
308
  type: OutputTcpjsonType
251
309
 
310
+ id: Optional[str] = None
311
+ r"""Unique ID for this output"""
312
+
252
313
  pipeline: Optional[str] = None
253
314
  r"""Pipeline to process data before sending out to this output"""
254
315
 
@@ -268,7 +329,9 @@ class OutputTcpjson(BaseModel):
268
329
  )
269
330
  r"""Use load-balanced destinations"""
270
331
 
271
- compression: Optional[OutputTcpjsonCompression] = OutputTcpjsonCompression.GZIP
332
+ compression: Annotated[
333
+ Optional[OutputTcpjsonCompression], PlainValidator(validate_open_enum(False))
334
+ ] = OutputTcpjsonCompression.GZIP
272
335
  r"""Codec to use to compress the data before sending"""
273
336
 
274
337
  log_failed_requests: Annotated[
@@ -302,13 +365,20 @@ class OutputTcpjson(BaseModel):
302
365
  r"""Upon connection, send a header-like record containing the auth token and other metadata.This record will not contain an actual event – only subsequent records will."""
303
366
 
304
367
  on_backpressure: Annotated[
305
- Optional[OutputTcpjsonBackpressureBehavior],
368
+ Annotated[
369
+ Optional[OutputTcpjsonBackpressureBehavior],
370
+ PlainValidator(validate_open_enum(False)),
371
+ ],
306
372
  pydantic.Field(alias="onBackpressure"),
307
373
  ] = OutputTcpjsonBackpressureBehavior.BLOCK
308
374
  r"""How to handle events when all receivers are exerting backpressure"""
309
375
 
310
376
  auth_type: Annotated[
311
- Optional[OutputTcpjsonAuthenticationMethod], pydantic.Field(alias="authType")
377
+ Annotated[
378
+ Optional[OutputTcpjsonAuthenticationMethod],
379
+ PlainValidator(validate_open_enum(False)),
380
+ ],
381
+ pydantic.Field(alias="authType"),
312
382
  ] = OutputTcpjsonAuthenticationMethod.MANUAL
313
383
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
314
384
 
@@ -341,6 +411,34 @@ class OutputTcpjson(BaseModel):
341
411
  ] = 0
342
412
  r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
343
413
 
414
+ pq_strict_ordering: Annotated[
415
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
416
+ ] = True
417
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
418
+
419
+ pq_rate_per_sec: Annotated[
420
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
421
+ ] = 0
422
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
423
+
424
+ pq_mode: Annotated[
425
+ Annotated[
426
+ Optional[OutputTcpjsonMode], PlainValidator(validate_open_enum(False))
427
+ ],
428
+ pydantic.Field(alias="pqMode"),
429
+ ] = OutputTcpjsonMode.ERROR
430
+ 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."""
431
+
432
+ pq_max_buffer_size: Annotated[
433
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
434
+ ] = 42
435
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
436
+
437
+ pq_max_backpressure_sec: Annotated[
438
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
439
+ ] = 30
440
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
441
+
344
442
  pq_max_file_size: Annotated[
345
443
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
346
444
  ] = "1 MB"
@@ -355,21 +453,23 @@ class OutputTcpjson(BaseModel):
355
453
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
356
454
 
357
455
  pq_compress: Annotated[
358
- Optional[OutputTcpjsonPqCompressCompression], pydantic.Field(alias="pqCompress")
456
+ Annotated[
457
+ Optional[OutputTcpjsonPqCompressCompression],
458
+ PlainValidator(validate_open_enum(False)),
459
+ ],
460
+ pydantic.Field(alias="pqCompress"),
359
461
  ] = OutputTcpjsonPqCompressCompression.NONE
360
462
  r"""Codec to use to compress the persisted data"""
361
463
 
362
464
  pq_on_backpressure: Annotated[
363
- Optional[OutputTcpjsonQueueFullBehavior],
465
+ Annotated[
466
+ Optional[OutputTcpjsonQueueFullBehavior],
467
+ PlainValidator(validate_open_enum(False)),
468
+ ],
364
469
  pydantic.Field(alias="pqOnBackpressure"),
365
470
  ] = OutputTcpjsonQueueFullBehavior.BLOCK
366
471
  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."""
367
472
 
368
- pq_mode: Annotated[Optional[OutputTcpjsonMode], pydantic.Field(alias="pqMode")] = (
369
- OutputTcpjsonMode.ERROR
370
- )
371
- 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."""
372
-
373
473
  pq_controls: Annotated[
374
474
  Optional[OutputTcpjsonPqControls], pydantic.Field(alias="pqControls")
375
475
  ] = None
@@ -379,3 +479,57 @@ class OutputTcpjson(BaseModel):
379
479
 
380
480
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
381
481
  r"""Select or create a stored text secret"""
482
+
483
+ @field_serializer("compression")
484
+ def serialize_compression(self, value):
485
+ if isinstance(value, str):
486
+ try:
487
+ return models.OutputTcpjsonCompression(value)
488
+ except ValueError:
489
+ return value
490
+ return value
491
+
492
+ @field_serializer("on_backpressure")
493
+ def serialize_on_backpressure(self, value):
494
+ if isinstance(value, str):
495
+ try:
496
+ return models.OutputTcpjsonBackpressureBehavior(value)
497
+ except ValueError:
498
+ return value
499
+ return value
500
+
501
+ @field_serializer("auth_type")
502
+ def serialize_auth_type(self, value):
503
+ if isinstance(value, str):
504
+ try:
505
+ return models.OutputTcpjsonAuthenticationMethod(value)
506
+ except ValueError:
507
+ return value
508
+ return value
509
+
510
+ @field_serializer("pq_mode")
511
+ def serialize_pq_mode(self, value):
512
+ if isinstance(value, str):
513
+ try:
514
+ return models.OutputTcpjsonMode(value)
515
+ except ValueError:
516
+ return value
517
+ return value
518
+
519
+ @field_serializer("pq_compress")
520
+ def serialize_pq_compress(self, value):
521
+ if isinstance(value, str):
522
+ try:
523
+ return models.OutputTcpjsonPqCompressCompression(value)
524
+ except ValueError:
525
+ return value
526
+ return value
527
+
528
+ @field_serializer("pq_on_backpressure")
529
+ def serialize_pq_on_backpressure(self, value):
530
+ if isinstance(value, str):
531
+ try:
532
+ return models.OutputTcpjsonQueueFullBehavior(value)
533
+ except ValueError:
534
+ return value
535
+ 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,7 +16,7 @@ class OutputWavefrontType(str, Enum):
12
16
  WAVEFRONT = "wavefront"
13
17
 
14
18
 
15
- class OutputWavefrontAuthenticationMethod(str, Enum):
19
+ class OutputWavefrontAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
17
21
 
18
22
  MANUAL = "manual"
@@ -30,11 +34,14 @@ class OutputWavefrontExtraHTTPHeader(BaseModel):
30
34
  name: Optional[str] = None
31
35
 
32
36
 
33
- class OutputWavefrontFailedRequestLoggingMode(str, Enum):
37
+ class OutputWavefrontFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
34
38
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
35
39
 
40
+ # Payload
36
41
  PAYLOAD = "payload"
42
+ # Payload + Headers
37
43
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
44
+ # None
38
45
  NONE = "none"
39
46
 
40
47
 
@@ -92,36 +99,46 @@ class OutputWavefrontTimeoutRetrySettings(BaseModel):
92
99
  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)."""
93
100
 
94
101
 
95
- class OutputWavefrontBackpressureBehavior(str, Enum):
102
+ class OutputWavefrontBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
96
103
  r"""How to handle events when all receivers are exerting backpressure"""
97
104
 
105
+ # Block
98
106
  BLOCK = "block"
107
+ # Drop
99
108
  DROP = "drop"
109
+ # Persistent Queue
100
110
  QUEUE = "queue"
101
111
 
102
112
 
103
- class OutputWavefrontCompression(str, Enum):
113
+ class OutputWavefrontMode(str, Enum, metaclass=utils.OpenEnumMeta):
114
+ 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."""
115
+
116
+ # Error
117
+ ERROR = "error"
118
+ # Backpressure
119
+ ALWAYS = "always"
120
+ # Always On
121
+ BACKPRESSURE = "backpressure"
122
+
123
+
124
+ class OutputWavefrontCompression(str, Enum, metaclass=utils.OpenEnumMeta):
104
125
  r"""Codec to use to compress the persisted data"""
105
126
 
127
+ # None
106
128
  NONE = "none"
129
+ # Gzip
107
130
  GZIP = "gzip"
108
131
 
109
132
 
110
- class OutputWavefrontQueueFullBehavior(str, Enum):
133
+ class OutputWavefrontQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
111
134
  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."""
112
135
 
136
+ # Block
113
137
  BLOCK = "block"
138
+ # Drop new data
114
139
  DROP = "drop"
115
140
 
116
141
 
117
- class OutputWavefrontMode(str, Enum):
118
- 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."""
119
-
120
- ERROR = "error"
121
- BACKPRESSURE = "backpressure"
122
- ALWAYS = "always"
123
-
124
-
125
142
  class OutputWavefrontPqControlsTypedDict(TypedDict):
126
143
  pass
127
144
 
@@ -185,6 +202,16 @@ class OutputWavefrontTypedDict(TypedDict):
185
202
  r"""WaveFront API authentication token (see [here](https://docs.wavefront.com/wavefront_api.html#generating-an-api-token))"""
186
203
  text_secret: NotRequired[str]
187
204
  r"""Select or create a stored text secret"""
205
+ pq_strict_ordering: NotRequired[bool]
206
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
207
+ pq_rate_per_sec: NotRequired[float]
208
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
209
+ pq_mode: NotRequired[OutputWavefrontMode]
210
+ 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."""
211
+ pq_max_buffer_size: NotRequired[float]
212
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
213
+ pq_max_backpressure_sec: NotRequired[float]
214
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
188
215
  pq_max_file_size: NotRequired[str]
189
216
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
190
217
  pq_max_size: NotRequired[str]
@@ -195,8 +222,6 @@ class OutputWavefrontTypedDict(TypedDict):
195
222
  r"""Codec to use to compress the persisted data"""
196
223
  pq_on_backpressure: NotRequired[OutputWavefrontQueueFullBehavior]
197
224
  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."""
198
- pq_mode: NotRequired[OutputWavefrontMode]
199
- 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."""
200
225
  pq_controls: NotRequired[OutputWavefrontPqControlsTypedDict]
201
226
 
202
227
 
@@ -221,7 +246,11 @@ class OutputWavefront(BaseModel):
221
246
  r"""Tags for filtering and grouping in @{product}"""
222
247
 
223
248
  auth_type: Annotated[
224
- Optional[OutputWavefrontAuthenticationMethod], pydantic.Field(alias="authType")
249
+ Annotated[
250
+ Optional[OutputWavefrontAuthenticationMethod],
251
+ PlainValidator(validate_open_enum(False)),
252
+ ],
253
+ pydantic.Field(alias="authType"),
225
254
  ] = OutputWavefrontAuthenticationMethod.MANUAL
226
255
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
227
256
 
@@ -272,7 +301,10 @@ class OutputWavefront(BaseModel):
272
301
  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."""
273
302
 
274
303
  failed_request_logging_mode: Annotated[
275
- Optional[OutputWavefrontFailedRequestLoggingMode],
304
+ Annotated[
305
+ Optional[OutputWavefrontFailedRequestLoggingMode],
306
+ PlainValidator(validate_open_enum(False)),
307
+ ],
276
308
  pydantic.Field(alias="failedRequestLoggingMode"),
277
309
  ] = OutputWavefrontFailedRequestLoggingMode.NONE
278
310
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -295,11 +327,14 @@ class OutputWavefront(BaseModel):
295
327
 
296
328
  response_honor_retry_after_header: Annotated[
297
329
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
298
- ] = False
330
+ ] = True
299
331
  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."""
300
332
 
301
333
  on_backpressure: Annotated[
302
- Optional[OutputWavefrontBackpressureBehavior],
334
+ Annotated[
335
+ Optional[OutputWavefrontBackpressureBehavior],
336
+ PlainValidator(validate_open_enum(False)),
337
+ ],
303
338
  pydantic.Field(alias="onBackpressure"),
304
339
  ] = OutputWavefrontBackpressureBehavior.BLOCK
305
340
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -312,6 +347,34 @@ class OutputWavefront(BaseModel):
312
347
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
313
348
  r"""Select or create a stored text secret"""
314
349
 
350
+ pq_strict_ordering: Annotated[
351
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
352
+ ] = True
353
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
354
+
355
+ pq_rate_per_sec: Annotated[
356
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
357
+ ] = 0
358
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
359
+
360
+ pq_mode: Annotated[
361
+ Annotated[
362
+ Optional[OutputWavefrontMode], PlainValidator(validate_open_enum(False))
363
+ ],
364
+ pydantic.Field(alias="pqMode"),
365
+ ] = OutputWavefrontMode.ERROR
366
+ 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."""
367
+
368
+ pq_max_buffer_size: Annotated[
369
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
370
+ ] = 42
371
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
372
+
373
+ pq_max_backpressure_sec: Annotated[
374
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
375
+ ] = 30
376
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
377
+
315
378
  pq_max_file_size: Annotated[
316
379
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
317
380
  ] = "1 MB"
@@ -326,21 +389,77 @@ class OutputWavefront(BaseModel):
326
389
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
327
390
 
328
391
  pq_compress: Annotated[
329
- Optional[OutputWavefrontCompression], pydantic.Field(alias="pqCompress")
392
+ Annotated[
393
+ Optional[OutputWavefrontCompression],
394
+ PlainValidator(validate_open_enum(False)),
395
+ ],
396
+ pydantic.Field(alias="pqCompress"),
330
397
  ] = OutputWavefrontCompression.NONE
331
398
  r"""Codec to use to compress the persisted data"""
332
399
 
333
400
  pq_on_backpressure: Annotated[
334
- Optional[OutputWavefrontQueueFullBehavior],
401
+ Annotated[
402
+ Optional[OutputWavefrontQueueFullBehavior],
403
+ PlainValidator(validate_open_enum(False)),
404
+ ],
335
405
  pydantic.Field(alias="pqOnBackpressure"),
336
406
  ] = OutputWavefrontQueueFullBehavior.BLOCK
337
407
  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."""
338
408
 
339
- pq_mode: Annotated[
340
- Optional[OutputWavefrontMode], pydantic.Field(alias="pqMode")
341
- ] = OutputWavefrontMode.ERROR
342
- 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."""
343
-
344
409
  pq_controls: Annotated[
345
410
  Optional[OutputWavefrontPqControls], pydantic.Field(alias="pqControls")
346
411
  ] = None
412
+
413
+ @field_serializer("auth_type")
414
+ def serialize_auth_type(self, value):
415
+ if isinstance(value, str):
416
+ try:
417
+ return models.OutputWavefrontAuthenticationMethod(value)
418
+ except ValueError:
419
+ return value
420
+ return value
421
+
422
+ @field_serializer("failed_request_logging_mode")
423
+ def serialize_failed_request_logging_mode(self, value):
424
+ if isinstance(value, str):
425
+ try:
426
+ return models.OutputWavefrontFailedRequestLoggingMode(value)
427
+ except ValueError:
428
+ return value
429
+ return value
430
+
431
+ @field_serializer("on_backpressure")
432
+ def serialize_on_backpressure(self, value):
433
+ if isinstance(value, str):
434
+ try:
435
+ return models.OutputWavefrontBackpressureBehavior(value)
436
+ except ValueError:
437
+ return value
438
+ return value
439
+
440
+ @field_serializer("pq_mode")
441
+ def serialize_pq_mode(self, value):
442
+ if isinstance(value, str):
443
+ try:
444
+ return models.OutputWavefrontMode(value)
445
+ except ValueError:
446
+ return value
447
+ return value
448
+
449
+ @field_serializer("pq_compress")
450
+ def serialize_pq_compress(self, value):
451
+ if isinstance(value, str):
452
+ try:
453
+ return models.OutputWavefrontCompression(value)
454
+ except ValueError:
455
+ return value
456
+ return value
457
+
458
+ @field_serializer("pq_on_backpressure")
459
+ def serialize_pq_on_backpressure(self, value):
460
+ if isinstance(value, str):
461
+ try:
462
+ return models.OutputWavefrontQueueFullBehavior(value)
463
+ except ValueError:
464
+ return value
465
+ return value