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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +113 -48
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +225 -0
  4. cribl_control_plane/auth_sdk.py +12 -176
  5. cribl_control_plane/basesdk.py +17 -1
  6. cribl_control_plane/branches.py +351 -0
  7. cribl_control_plane/commits.py +1403 -0
  8. cribl_control_plane/commits_files.py +391 -0
  9. cribl_control_plane/configs_versions.py +201 -0
  10. cribl_control_plane/cribl.py +495 -0
  11. cribl_control_plane/destinations.py +146 -805
  12. cribl_control_plane/destinations_pq.py +379 -0
  13. cribl_control_plane/errors/__init__.py +26 -10
  14. cribl_control_plane/errors/apierror.py +2 -0
  15. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  16. cribl_control_plane/errors/error.py +4 -2
  17. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  18. cribl_control_plane/errors/no_response_error.py +5 -1
  19. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  20. cribl_control_plane/functions.py +367 -0
  21. cribl_control_plane/groups_configs.py +22 -0
  22. cribl_control_plane/groups_sdk.py +333 -578
  23. cribl_control_plane/health.py +38 -18
  24. cribl_control_plane/hectokens.py +503 -0
  25. cribl_control_plane/httpclient.py +0 -1
  26. cribl_control_plane/{lake.py → lakedatasets.py} +207 -115
  27. cribl_control_plane/models/__init__.py +3644 -5986
  28. cribl_control_plane/models/addhectokenrequest.py +7 -1
  29. cribl_control_plane/models/authtoken.py +5 -1
  30. cribl_control_plane/models/backupssettings_union.py +37 -0
  31. cribl_control_plane/models/{lookupversions.py → branchinfo.py} +4 -4
  32. cribl_control_plane/models/cacheconnection.py +30 -2
  33. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  34. cribl_control_plane/models/cloudprovider.py +2 -1
  35. cribl_control_plane/models/collectorazureblob.py +130 -0
  36. cribl_control_plane/models/collectorconf.py +56 -0
  37. cribl_control_plane/models/collectorcribllake.py +27 -0
  38. cribl_control_plane/models/collectordatabase.py +92 -0
  39. cribl_control_plane/models/collectorfilesystem.py +66 -0
  40. cribl_control_plane/models/collectorgooglecloudstorage.py +131 -0
  41. cribl_control_plane/models/collectorhealthcheck.py +269 -0
  42. cribl_control_plane/models/collectorrest.py +340 -0
  43. cribl_control_plane/models/collectors3.py +239 -0
  44. cribl_control_plane/models/collectorscript.py +59 -0
  45. cribl_control_plane/models/collectorsplunk.py +253 -0
  46. cribl_control_plane/models/configgroup.py +67 -11
  47. cribl_control_plane/models/configgroupcloud.py +17 -3
  48. cribl_control_plane/models/countedbranchinfo.py +20 -0
  49. cribl_control_plane/models/countedconfiggroup.py +20 -0
  50. cribl_control_plane/models/countedcribllakedataset.py +20 -0
  51. cribl_control_plane/models/counteddistributedsummary.py +20 -0
  52. cribl_control_plane/models/countedfunctionresponse.py +20 -0
  53. cribl_control_plane/models/countedgitcommitsummary.py +20 -0
  54. cribl_control_plane/models/countedgitcountresult.py +20 -0
  55. cribl_control_plane/models/countedgitdiffresult.py +20 -0
  56. cribl_control_plane/models/countedgitfilesresponse.py +20 -0
  57. cribl_control_plane/models/{getversioninfoop.py → countedgitinfo.py} +2 -6
  58. cribl_control_plane/models/countedgitlogresult.py +20 -0
  59. cribl_control_plane/models/countedgitrevertresult.py +20 -0
  60. cribl_control_plane/models/countedgitshowresult.py +20 -0
  61. cribl_control_plane/models/countedgitstatusresult.py +20 -0
  62. cribl_control_plane/models/{listinputop.py → countedinput.py} +2 -6
  63. cribl_control_plane/models/countedinputsplunkhec.py +20 -0
  64. cribl_control_plane/models/countedjobinfo.py +20 -0
  65. cribl_control_plane/models/countedmasterworkerentry.py +20 -0
  66. cribl_control_plane/models/countednumber.py +19 -0
  67. cribl_control_plane/models/{getversionbranchop.py → countedobject.py} +2 -6
  68. cribl_control_plane/models/{listoutputop.py → countedoutput.py} +2 -6
  69. cribl_control_plane/models/countedoutputsamplesresponse.py +20 -0
  70. cribl_control_plane/models/countedoutputtestresponse.py +20 -0
  71. cribl_control_plane/models/countedpackinfo.py +20 -0
  72. cribl_control_plane/models/{createpacksop.py → countedpackinstallinfo.py} +2 -6
  73. cribl_control_plane/models/{listpipelineop.py → countedpipeline.py} +2 -6
  74. cribl_control_plane/models/{listroutesop.py → countedroutes.py} +2 -6
  75. cribl_control_plane/models/countedstring.py +19 -0
  76. cribl_control_plane/models/countedsystemsettingsconf.py +20 -0
  77. cribl_control_plane/models/countedteamaccesscontrollist.py +20 -0
  78. cribl_control_plane/models/counteduseraccesscontrollist.py +20 -0
  79. cribl_control_plane/models/createauthloginop.py +18 -0
  80. cribl_control_plane/models/createconfiggroupbyproductop.py +46 -0
  81. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +3 -21
  82. cribl_control_plane/models/createinputhectokenbyidop.py +3 -21
  83. cribl_control_plane/models/createoutputtestbyidop.py +3 -22
  84. cribl_control_plane/models/createroutesappendbyidop.py +4 -21
  85. cribl_control_plane/models/createversioncommitop.py +27 -20
  86. cribl_control_plane/models/createversionrevertop.py +7 -23
  87. cribl_control_plane/models/createversionundoop.py +7 -22
  88. cribl_control_plane/models/criblevent.py +15 -0
  89. cribl_control_plane/models/cribllakedataset.py +23 -3
  90. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  91. cribl_control_plane/models/currentbranchresult.py +13 -0
  92. cribl_control_plane/models/datasetmetadata.py +18 -2
  93. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +43 -0
  94. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +5 -24
  95. cribl_control_plane/models/deleteinputbyidop.py +3 -22
  96. cribl_control_plane/models/deleteoutputbyidop.py +3 -22
  97. cribl_control_plane/models/deleteoutputpqbyidop.py +3 -21
  98. cribl_control_plane/models/deletepacksbyidop.py +3 -22
  99. cribl_control_plane/models/deletepipelinebyidop.py +3 -22
  100. cribl_control_plane/models/difffiles.py +130 -0
  101. cribl_control_plane/models/diffline.py +26 -0
  102. cribl_control_plane/models/difflinecontext.py +28 -0
  103. cribl_control_plane/models/difflinedelete.py +25 -0
  104. cribl_control_plane/models/difflineinsert.py +25 -0
  105. cribl_control_plane/models/distributedsummary.py +6 -0
  106. cribl_control_plane/models/functionaggregatemetrics.py +206 -0
  107. cribl_control_plane/models/functionaggregation.py +172 -0
  108. cribl_control_plane/models/functionautotimestamp.py +173 -0
  109. cribl_control_plane/models/functioncef.py +111 -0
  110. cribl_control_plane/models/functionchain.py +75 -0
  111. cribl_control_plane/models/functionclone.py +75 -0
  112. cribl_control_plane/models/functioncode.py +96 -0
  113. cribl_control_plane/models/functioncomment.py +75 -0
  114. cribl_control_plane/models/functiondistinct.py +99 -0
  115. cribl_control_plane/models/functiondnslookup.py +250 -0
  116. cribl_control_plane/models/functiondrop.py +73 -0
  117. cribl_control_plane/models/functiondropdimensions.py +87 -0
  118. cribl_control_plane/models/functiondynamicsampling.py +121 -0
  119. cribl_control_plane/models/functioneval.py +103 -0
  120. cribl_control_plane/models/functioneventbreaker.py +103 -0
  121. cribl_control_plane/models/functioneventstats.py +92 -0
  122. cribl_control_plane/models/functionexternaldata.py +73 -0
  123. cribl_control_plane/models/functionflatten.py +90 -0
  124. cribl_control_plane/models/functionfoldkeys.py +89 -0
  125. cribl_control_plane/models/functiongenstats.py +73 -0
  126. cribl_control_plane/models/functiongeoip.py +120 -0
  127. cribl_control_plane/models/functiongrok.py +95 -0
  128. cribl_control_plane/models/functionhandlebar.py +112 -0
  129. cribl_control_plane/models/functionjoin.py +112 -0
  130. cribl_control_plane/models/functionjsonunroll.py +80 -0
  131. cribl_control_plane/models/functionlakeexport.py +102 -0
  132. cribl_control_plane/models/functionlimit.py +75 -0
  133. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
  134. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
  135. cribl_control_plane/models/functionlookup.py +148 -0
  136. cribl_control_plane/models/functionmask.py +121 -0
  137. cribl_control_plane/models/functionmvexpand.py +128 -0
  138. cribl_control_plane/models/functionmvpull.py +99 -0
  139. cribl_control_plane/models/functionnotificationpolicies.py +186 -0
  140. cribl_control_plane/models/functionnotifications.py +85 -0
  141. cribl_control_plane/models/functionnotify.py +196 -0
  142. cribl_control_plane/models/functionnumerify.py +119 -0
  143. cribl_control_plane/models/functionotlplogs.py +82 -0
  144. cribl_control_plane/models/functionotlpmetrics.py +118 -0
  145. cribl_control_plane/models/functionotlptraces.py +111 -0
  146. cribl_control_plane/models/functionpack.py +80 -0
  147. cribl_control_plane/models/functionpivot.py +85 -0
  148. cribl_control_plane/models/functionpublishmetrics.py +153 -0
  149. cribl_control_plane/models/functionredis.py +173 -0
  150. cribl_control_plane/models/functionregexextract.py +112 -0
  151. cribl_control_plane/models/functionregexfilter.py +95 -0
  152. cribl_control_plane/models/functionrename.py +107 -0
  153. cribl_control_plane/models/functionresponse.py +242 -0
  154. cribl_control_plane/models/functionrollupmetrics.py +114 -0
  155. cribl_control_plane/models/functionsampling.py +90 -0
  156. cribl_control_plane/models/functionsend.py +141 -0
  157. cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
  158. cribl_control_plane/models/functionserde.py +161 -0
  159. cribl_control_plane/models/functionserialize.py +134 -0
  160. cribl_control_plane/models/functionsidlookup.py +93 -0
  161. cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
  162. cribl_control_plane/models/functionsort.py +97 -0
  163. cribl_control_plane/models/functionstore.py +132 -0
  164. cribl_control_plane/models/functionsuppress.py +115 -0
  165. cribl_control_plane/models/functiontee.py +90 -0
  166. cribl_control_plane/models/functiontrimtimestamp.py +75 -0
  167. cribl_control_plane/models/functionunion.py +80 -0
  168. cribl_control_plane/models/functionunroll.py +80 -0
  169. cribl_control_plane/models/functionwindow.py +96 -0
  170. cribl_control_plane/models/functionxmlunroll.py +92 -0
  171. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +63 -0
  172. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +63 -0
  173. cribl_control_plane/models/getconfiggroupbyproductandidop.py +53 -0
  174. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +43 -0
  175. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +5 -24
  176. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +56 -16
  177. cribl_control_plane/models/getfunctionsbyidop.py +18 -0
  178. cribl_control_plane/models/getinputbyidop.py +3 -22
  179. cribl_control_plane/models/getmasterworkerentryop.py +22 -0
  180. cribl_control_plane/models/getoutputbyidop.py +3 -22
  181. cribl_control_plane/models/getoutputpqbyidop.py +3 -21
  182. cribl_control_plane/models/getoutputsamplesbyidop.py +3 -22
  183. cribl_control_plane/models/getpacksbyidop.py +18 -0
  184. cribl_control_plane/models/getpacksop.py +3 -21
  185. cribl_control_plane/models/getpipelinebyidop.py +3 -22
  186. cribl_control_plane/models/getroutesbyidop.py +3 -22
  187. cribl_control_plane/models/getsummaryop.py +23 -32
  188. cribl_control_plane/models/getversioncountop.py +10 -27
  189. cribl_control_plane/models/getversiondiffop.py +12 -28
  190. cribl_control_plane/models/getversionfilesop.py +10 -28
  191. cribl_control_plane/models/getversionop.py +30 -0
  192. cribl_control_plane/models/getversionshowop.py +12 -28
  193. cribl_control_plane/models/getversionstatusop.py +7 -23
  194. cribl_control_plane/models/gitcommitsummary.py +3 -3
  195. cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
  196. cribl_control_plane/models/gitdiffresult.py +16 -0
  197. cribl_control_plane/models/gitfilesresponse.py +7 -5
  198. cribl_control_plane/models/gitinfo.py +14 -3
  199. cribl_control_plane/models/gitlogresult.py +33 -0
  200. cribl_control_plane/models/gitrevertparams.py +3 -3
  201. cribl_control_plane/models/gitrevertresult.py +5 -5
  202. cribl_control_plane/models/gitshowresult.py +19 -0
  203. cribl_control_plane/models/gitstatusresult.py +0 -3
  204. cribl_control_plane/models/groupcreaterequest.py +172 -0
  205. cribl_control_plane/models/hbcriblinfo.py +42 -7
  206. cribl_control_plane/models/healthserverstatus.py +55 -0
  207. cribl_control_plane/models/heartbeatmetadata.py +6 -11
  208. cribl_control_plane/models/input.py +89 -81
  209. cribl_control_plane/models/inputappscope.py +131 -35
  210. cribl_control_plane/models/inputazureblob.py +62 -6
  211. cribl_control_plane/models/inputcloudflarehec.py +518 -0
  212. cribl_control_plane/models/inputcollection.py +49 -6
  213. cribl_control_plane/models/inputconfluentcloud.py +262 -22
  214. cribl_control_plane/models/inputcribl.py +52 -9
  215. cribl_control_plane/models/inputcriblhttp.py +124 -33
  216. cribl_control_plane/models/inputcribllakehttp.py +199 -29
  217. cribl_control_plane/models/inputcriblmetrics.py +53 -9
  218. cribl_control_plane/models/inputcribltcp.py +125 -27
  219. cribl_control_plane/models/inputcrowdstrike.py +99 -10
  220. cribl_control_plane/models/inputdatadogagent.py +101 -27
  221. cribl_control_plane/models/inputdatagen.py +47 -4
  222. cribl_control_plane/models/inputedgeprometheus.py +215 -58
  223. cribl_control_plane/models/inputelastic.py +170 -39
  224. cribl_control_plane/models/inputeventhub.py +212 -9
  225. cribl_control_plane/models/inputexec.py +59 -6
  226. cribl_control_plane/models/inputfile.py +83 -15
  227. cribl_control_plane/models/inputfirehose.py +100 -27
  228. cribl_control_plane/models/inputgooglepubsub.py +83 -15
  229. cribl_control_plane/models/{inputgrafana_union.py → inputgrafana.py} +261 -67
  230. cribl_control_plane/models/inputhttp.py +100 -27
  231. cribl_control_plane/models/inputhttpraw.py +100 -27
  232. cribl_control_plane/models/inputjournalfiles.py +51 -7
  233. cribl_control_plane/models/inputkafka.py +257 -19
  234. cribl_control_plane/models/inputkinesis.py +133 -17
  235. cribl_control_plane/models/inputkubeevents.py +52 -9
  236. cribl_control_plane/models/inputkubelogs.py +66 -13
  237. cribl_control_plane/models/inputkubemetrics.py +66 -13
  238. cribl_control_plane/models/inputloki.py +116 -30
  239. cribl_control_plane/models/inputmetrics.py +97 -24
  240. cribl_control_plane/models/inputmodeldriventelemetry.py +110 -29
  241. cribl_control_plane/models/inputmsk.py +148 -21
  242. cribl_control_plane/models/inputnetflow.py +50 -7
  243. cribl_control_plane/models/inputoffice365mgmt.py +115 -17
  244. cribl_control_plane/models/inputoffice365msgtrace.py +117 -19
  245. cribl_control_plane/models/inputoffice365service.py +117 -19
  246. cribl_control_plane/models/inputopentelemetry.py +146 -35
  247. cribl_control_plane/models/inputprometheus.py +196 -47
  248. cribl_control_plane/models/inputprometheusrw.py +117 -30
  249. cribl_control_plane/models/inputrawudp.py +50 -7
  250. cribl_control_plane/models/inputs3.py +85 -8
  251. cribl_control_plane/models/inputs3inventory.py +99 -10
  252. cribl_control_plane/models/inputsecuritylake.py +100 -10
  253. cribl_control_plane/models/inputsnmp.py +115 -24
  254. cribl_control_plane/models/inputsplunk.py +133 -31
  255. cribl_control_plane/models/inputsplunkhec.py +122 -32
  256. cribl_control_plane/models/inputsplunksearch.py +115 -18
  257. cribl_control_plane/models/inputsqs.py +102 -19
  258. cribl_control_plane/models/{inputsyslog_union.py → inputsyslog.py} +193 -51
  259. cribl_control_plane/models/inputsystemmetrics.py +207 -37
  260. cribl_control_plane/models/inputsystemstate.py +66 -13
  261. cribl_control_plane/models/inputtcp.py +125 -29
  262. cribl_control_plane/models/inputtcpjson.py +115 -29
  263. cribl_control_plane/models/inputwef.py +151 -22
  264. cribl_control_plane/models/inputwindowsmetrics.py +191 -38
  265. cribl_control_plane/models/inputwineventlogs.py +93 -11
  266. cribl_control_plane/models/inputwiz.py +176 -11
  267. cribl_control_plane/models/inputwizwebhook.py +466 -0
  268. cribl_control_plane/models/inputzscalerhec.py +122 -32
  269. cribl_control_plane/models/jobinfo.py +34 -0
  270. cribl_control_plane/models/jobstatus.py +48 -0
  271. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  272. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  273. cribl_control_plane/models/listconfiggroupbyproductop.py +46 -0
  274. cribl_control_plane/models/listmasterworkerentryop.py +64 -0
  275. cribl_control_plane/models/logininfo.py +3 -3
  276. cribl_control_plane/models/masterworkerentry.py +20 -13
  277. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  278. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  279. cribl_control_plane/models/nodeprovidedinfo.py +13 -11
  280. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  281. cribl_control_plane/models/nodeupgradestate.py +2 -1
  282. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  283. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  284. cribl_control_plane/models/output.py +103 -89
  285. cribl_control_plane/models/outputazureblob.py +174 -21
  286. cribl_control_plane/models/outputazuredataexplorer.py +517 -93
  287. cribl_control_plane/models/outputazureeventhub.py +318 -34
  288. cribl_control_plane/models/outputazurelogs.py +145 -26
  289. cribl_control_plane/models/outputchronicle.py +532 -0
  290. cribl_control_plane/models/outputclickhouse.py +208 -37
  291. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  292. cribl_control_plane/models/outputcloudwatch.py +132 -26
  293. cribl_control_plane/models/outputconfluentcloud.py +387 -46
  294. cribl_control_plane/models/outputcriblhttp.py +203 -36
  295. cribl_control_plane/models/outputcribllake.py +161 -21
  296. cribl_control_plane/models/outputcribltcp.py +199 -34
  297. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +176 -32
  298. cribl_control_plane/models/outputdatabricks.py +501 -0
  299. cribl_control_plane/models/outputdatadog.py +204 -36
  300. cribl_control_plane/models/outputdataset.py +186 -34
  301. cribl_control_plane/models/outputdevnull.py +5 -5
  302. cribl_control_plane/models/outputdiskspool.py +22 -7
  303. cribl_control_plane/models/outputdls3.py +238 -29
  304. cribl_control_plane/models/outputdynatracehttp.py +211 -37
  305. cribl_control_plane/models/outputdynatraceotlp.py +213 -39
  306. cribl_control_plane/models/outputelastic.py +199 -30
  307. cribl_control_plane/models/outputelasticcloud.py +174 -29
  308. cribl_control_plane/models/outputexabeam.py +99 -13
  309. cribl_control_plane/models/outputfilesystem.py +139 -14
  310. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  311. cribl_control_plane/models/outputgooglecloudlogging.py +177 -34
  312. cribl_control_plane/models/outputgooglecloudstorage.py +220 -29
  313. cribl_control_plane/models/outputgooglepubsub.py +138 -51
  314. cribl_control_plane/models/outputgrafanacloud.py +386 -70
  315. cribl_control_plane/models/outputgraphite.py +131 -28
  316. cribl_control_plane/models/outputhoneycomb.py +145 -26
  317. cribl_control_plane/models/outputhumiohec.py +165 -31
  318. cribl_control_plane/models/outputinfluxdb.py +165 -28
  319. cribl_control_plane/models/outputkafka.py +378 -41
  320. cribl_control_plane/models/outputkinesis.py +168 -30
  321. cribl_control_plane/models/outputloki.py +171 -27
  322. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  323. cribl_control_plane/models/outputminio.py +228 -28
  324. cribl_control_plane/models/outputmsk.py +270 -43
  325. cribl_control_plane/models/outputnewrelic.py +176 -34
  326. cribl_control_plane/models/outputnewrelicevents.py +166 -31
  327. cribl_control_plane/models/outputopentelemetry.py +240 -40
  328. cribl_control_plane/models/outputprometheus.py +145 -26
  329. cribl_control_plane/models/outputring.py +54 -13
  330. cribl_control_plane/models/outputs3.py +238 -31
  331. cribl_control_plane/models/outputsecuritylake.py +182 -21
  332. cribl_control_plane/models/outputsentinel.py +175 -32
  333. cribl_control_plane/models/outputsentineloneaisiem.py +184 -38
  334. cribl_control_plane/models/outputservicenow.py +226 -41
  335. cribl_control_plane/models/outputsignalfx.py +145 -26
  336. cribl_control_plane/models/outputsns.py +146 -28
  337. cribl_control_plane/models/outputsplunk.py +209 -39
  338. cribl_control_plane/models/outputsplunkhec.py +243 -31
  339. cribl_control_plane/models/outputsplunklb.py +266 -46
  340. cribl_control_plane/models/outputsqs.py +166 -36
  341. cribl_control_plane/models/outputstatsd.py +130 -28
  342. cribl_control_plane/models/outputstatsdext.py +131 -28
  343. cribl_control_plane/models/outputsumologic.py +146 -25
  344. cribl_control_plane/models/outputsyslog.py +323 -51
  345. cribl_control_plane/models/outputtcpjson.py +191 -37
  346. cribl_control_plane/models/outputwavefront.py +145 -26
  347. cribl_control_plane/models/outputwebhook.py +216 -38
  348. cribl_control_plane/models/outputxsiam.py +148 -31
  349. cribl_control_plane/models/packinfo.py +11 -8
  350. cribl_control_plane/models/packinstallinfo.py +14 -11
  351. cribl_control_plane/models/packrequestbody_union.py +140 -0
  352. cribl_control_plane/models/packupgraderequest.py +26 -0
  353. cribl_control_plane/models/piisettings_union.py +31 -0
  354. cribl_control_plane/models/productscore.py +10 -0
  355. cribl_control_plane/models/rbacresource.py +2 -1
  356. cribl_control_plane/models/resourcepolicy.py +15 -2
  357. cribl_control_plane/models/rollbacksettings_union.py +44 -0
  358. cribl_control_plane/models/routeconf.py +3 -4
  359. cribl_control_plane/models/routes.py +0 -24
  360. cribl_control_plane/models/runnablejob.py +27 -0
  361. cribl_control_plane/models/runnablejobcollection.py +628 -0
  362. cribl_control_plane/models/runnablejobexecutor.py +360 -0
  363. cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
  364. cribl_control_plane/models/schemeclientoauth.py +5 -0
  365. cribl_control_plane/models/snisettings_union.py +31 -0
  366. cribl_control_plane/models/systemsettingsconf.py +291 -0
  367. cribl_control_plane/models/tlssettings_union.py +43 -0
  368. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +56 -0
  369. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +53 -0
  370. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +14 -29
  371. cribl_control_plane/models/updatehectokenrequest.py +7 -1
  372. cribl_control_plane/models/updateinputbyidop.py +5 -23
  373. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +5 -23
  374. cribl_control_plane/models/updateoutputbyidop.py +5 -23
  375. cribl_control_plane/models/updatepacksbyidop.py +12 -50
  376. cribl_control_plane/models/updatepacksop.py +12 -24
  377. cribl_control_plane/models/updatepipelinebyidop.py +5 -23
  378. cribl_control_plane/models/updateroutesbyidop.py +8 -27
  379. cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
  380. cribl_control_plane/models/upgradepackageurls.py +20 -0
  381. cribl_control_plane/models/upgradesettings.py +38 -0
  382. cribl_control_plane/models/uploadpackresponse.py +13 -0
  383. cribl_control_plane/models/{appmode.py → workertypes.py} +2 -5
  384. cribl_control_plane/{workers_sdk.py → nodes.py} +102 -234
  385. cribl_control_plane/packs.py +385 -184
  386. cribl_control_plane/pipelines.py +116 -66
  387. cribl_control_plane/routes_sdk.py +102 -70
  388. cribl_control_plane/samples.py +407 -0
  389. cribl_control_plane/sdk.py +35 -25
  390. cribl_control_plane/settings.py +20 -0
  391. cribl_control_plane/sources.py +143 -545
  392. cribl_control_plane/statuses.py +195 -0
  393. cribl_control_plane/summaries.py +195 -0
  394. cribl_control_plane/system_sdk.py +20 -0
  395. cribl_control_plane/teams.py +36 -28
  396. cribl_control_plane/tokens.py +210 -0
  397. cribl_control_plane/utils/__init__.py +18 -5
  398. cribl_control_plane/utils/annotations.py +32 -8
  399. cribl_control_plane/utils/eventstreaming.py +10 -0
  400. cribl_control_plane/utils/forms.py +21 -10
  401. cribl_control_plane/utils/queryparams.py +14 -2
  402. cribl_control_plane/utils/retries.py +69 -5
  403. cribl_control_plane/utils/security.py +5 -0
  404. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  405. cribl_control_plane/versions.py +31 -0
  406. cribl_control_plane/{distributed.py → versions_configs.py} +29 -35
  407. cribl_control_plane-0.4.0b23.dist-info/METADATA +855 -0
  408. cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
  409. {cribl_control_plane-0.0.21.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
  410. cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
  411. cribl_control_plane/errors/healthstatus_error.py +0 -32
  412. cribl_control_plane/models/createinputop.py +0 -18238
  413. cribl_control_plane/models/createoutputop.py +0 -18437
  414. cribl_control_plane/models/createpipelineop.py +0 -24
  415. cribl_control_plane/models/createproductsgroupsbyproductop.py +0 -54
  416. cribl_control_plane/models/createversionpushop.py +0 -23
  417. cribl_control_plane/models/createversionsyncop.py +0 -23
  418. cribl_control_plane/models/deletegroupsbyidop.py +0 -37
  419. cribl_control_plane/models/getgroupsaclbyidop.py +0 -63
  420. cribl_control_plane/models/getgroupsbyidop.py +0 -49
  421. cribl_control_plane/models/getgroupsconfigversionbyidop.py +0 -36
  422. cribl_control_plane/models/getproductsgroupsaclteamsbyproductandidop.py +0 -78
  423. cribl_control_plane/models/getproductsgroupsbyproductop.py +0 -58
  424. cribl_control_plane/models/getsummaryworkersop.py +0 -39
  425. cribl_control_plane/models/getversioncurrentbranchop.py +0 -23
  426. cribl_control_plane/models/getworkersop.py +0 -82
  427. cribl_control_plane/models/healthstatus.py +0 -33
  428. cribl_control_plane/models/packrequestbody.py +0 -75
  429. cribl_control_plane/models/restartresponse.py +0 -26
  430. cribl_control_plane/models/routesroute_input.py +0 -67
  431. cribl_control_plane/models/updategroupsbyidop.py +0 -48
  432. cribl_control_plane/models/updategroupsdeploybyidop.py +0 -46
  433. cribl_control_plane/models/updateworkersrestartop.py +0 -24
  434. cribl_control_plane/versioning.py +0 -2309
  435. cribl_control_plane-0.0.21.dist-info/METADATA +0 -561
  436. cribl_control_plane-0.0.21.dist-info/RECORD +0 -301
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -23,20 +27,32 @@ class InputPrometheusConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputPrometheusMode(str, Enum):
30
+ class InputPrometheusMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
32
 
33
+ # Smart
29
34
  SMART = "smart"
35
+ # Always On
30
36
  ALWAYS = "always"
31
37
 
32
38
 
33
- class InputPrometheusCompression(str, Enum):
39
+ class InputPrometheusCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
40
  r"""Codec to use to compress the persisted data"""
35
41
 
42
+ # None
36
43
  NONE = "none"
44
+ # Gzip
37
45
  GZIP = "gzip"
38
46
 
39
47
 
48
+ class InputPrometheusPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputPrometheusPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputPrometheusPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputPrometheusMode]
42
58
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
@@ -52,10 +68,13 @@ class InputPrometheusPqTypedDict(TypedDict):
52
68
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
53
69
  compress: NotRequired[InputPrometheusCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputPrometheusPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputPrometheusPq(BaseModel):
58
- mode: Optional[InputPrometheusMode] = InputPrometheusMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputPrometheusMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputPrometheusMode.ALWAYS
59
78
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
60
79
 
61
80
  max_buffer_size: Annotated[
@@ -79,19 +98,46 @@ class InputPrometheusPq(BaseModel):
79
98
  path: Optional[str] = "$CRIBL_HOME/state/queues"
80
99
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
81
100
 
82
- compress: Optional[InputPrometheusCompression] = InputPrometheusCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputPrometheusCompression], PlainValidator(validate_open_enum(False))
103
+ ] = InputPrometheusCompression.NONE
83
104
  r"""Codec to use to compress the persisted data"""
84
105
 
106
+ pq_controls: Annotated[
107
+ Optional[InputPrometheusPqControls], pydantic.Field(alias="pqControls")
108
+ ] = None
85
109
 
86
- class InputPrometheusDiscoveryType(str, Enum):
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputPrometheusMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputPrometheusCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
128
+
129
+ class InputPrometheusDiscoveryType(str, Enum, metaclass=utils.OpenEnumMeta):
87
130
  r"""Target discovery mechanism. Use static to manually enter a list of targets."""
88
131
 
132
+ # Static
89
133
  STATIC = "static"
134
+ # DNS
90
135
  DNS = "dns"
136
+ # AWS EC2
91
137
  EC2 = "ec2"
92
138
 
93
139
 
94
- class InputPrometheusLogLevel(str, Enum):
140
+ class InputPrometheusLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
95
141
  r"""Collector runtime Log Level"""
96
142
 
97
143
  ERROR = "error"
@@ -113,14 +159,16 @@ class InputPrometheusMetadatum(BaseModel):
113
159
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
114
160
 
115
161
 
116
- class InputPrometheusAuthTypeAuthenticationMethod(str, Enum):
162
+ class InputPrometheusAuthTypeAuthenticationMethod(
163
+ str, Enum, metaclass=utils.OpenEnumMeta
164
+ ):
117
165
  r"""Enter credentials directly, or select a stored secret"""
118
166
 
119
167
  MANUAL = "manual"
120
168
  SECRET = "secret"
121
169
 
122
170
 
123
- class InputPrometheusRecordType(str, Enum):
171
+ class InputPrometheusRecordType(str, Enum, metaclass=utils.OpenEnumMeta):
124
172
  r"""DNS Record type to resolve"""
125
173
 
126
174
  SRV = "SRV"
@@ -128,13 +176,26 @@ class InputPrometheusRecordType(str, Enum):
128
176
  AAAA = "AAAA"
129
177
 
130
178
 
131
- class MetricsProtocol(str, Enum):
179
+ class MetricsProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
132
180
  r"""Protocol to use when collecting metrics"""
133
181
 
134
182
  HTTP = "http"
135
183
  HTTPS = "https"
136
184
 
137
185
 
186
+ class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
187
+ str, Enum, metaclass=utils.OpenEnumMeta
188
+ ):
189
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
190
+
191
+ # Auto
192
+ AUTO = "auto"
193
+ # Manual
194
+ MANUAL = "manual"
195
+ # Secret Key pair
196
+ SECRET = "secret"
197
+
198
+
138
199
  class InputPrometheusSearchFilterTypedDict(TypedDict):
139
200
  name: str
140
201
  r"""Search filter attribute name, see: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html for more information. Attributes can be manually entered if not present in the drop down list"""
@@ -150,15 +211,7 @@ class InputPrometheusSearchFilter(BaseModel):
150
211
  r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
151
212
 
152
213
 
153
- class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(str, Enum):
154
- r"""AWS authentication method. Choose Auto to use IAM roles."""
155
-
156
- AUTO = "auto"
157
- MANUAL = "manual"
158
- SECRET = "secret"
159
-
160
-
161
- class InputPrometheusSignatureVersion(str, Enum):
214
+ class InputPrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
162
215
  r"""Signature version to use for signing EC2 requests"""
163
216
 
164
217
  V2 = "v2"
@@ -166,9 +219,9 @@ class InputPrometheusSignatureVersion(str, Enum):
166
219
 
167
220
 
168
221
  class InputPrometheusTypedDict(TypedDict):
222
+ type: InputPrometheusType
169
223
  id: NotRequired[str]
170
224
  r"""Unique ID for this input"""
171
- type: NotRequired[InputPrometheusType]
172
225
  disabled: NotRequired[bool]
173
226
  pipeline: NotRequired[str]
174
227
  r"""Pipeline to process data from this Source before sending it through the Routes"""
@@ -210,24 +263,27 @@ class InputPrometheusTypedDict(TypedDict):
210
263
  description: NotRequired[str]
211
264
  target_list: NotRequired[List[str]]
212
265
  r"""List of Prometheus targets to pull metrics from. Values can be in URL or host[:port] format. For example: http://localhost:9090/metrics, localhost:9090, or localhost. In cases where just host[:port] is specified, the endpoint will resolve to 'http://host[:port]/metrics'."""
213
- name_list: NotRequired[List[str]]
214
- r"""List of DNS names to resolve"""
215
266
  record_type: NotRequired[InputPrometheusRecordType]
216
267
  r"""DNS Record type to resolve"""
268
+ scrape_port: NotRequired[float]
269
+ r"""The port number in the metrics URL for discovered targets."""
270
+ name_list: NotRequired[List[str]]
271
+ r"""List of DNS names to resolve"""
217
272
  scrape_protocol: NotRequired[MetricsProtocol]
218
273
  r"""Protocol to use when collecting metrics"""
219
274
  scrape_path: NotRequired[str]
220
275
  r"""Path to use when collecting metrics from discovered targets"""
221
- use_public_ip: NotRequired[bool]
222
- r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
223
- scrape_port: NotRequired[float]
224
- r"""The port number in the metrics URL for discovered targets."""
225
- search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
226
- r"""EC2 Instance Search Filter"""
227
276
  aws_authentication_method: NotRequired[
228
277
  InputPrometheusAwsAuthenticationMethodAuthenticationMethod
229
278
  ]
230
279
  r"""AWS authentication method. Choose Auto to use IAM roles."""
280
+ aws_api_key: NotRequired[str]
281
+ aws_secret: NotRequired[str]
282
+ r"""Select or create a stored secret that references your access key and secret key"""
283
+ use_public_ip: NotRequired[bool]
284
+ r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
285
+ search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
286
+ r"""EC2 Instance Search Filter"""
231
287
  aws_secret_key: NotRequired[str]
232
288
  region: NotRequired[str]
233
289
  r"""Region where the EC2 is located"""
@@ -254,11 +310,11 @@ class InputPrometheusTypedDict(TypedDict):
254
310
 
255
311
 
256
312
  class InputPrometheus(BaseModel):
313
+ type: InputPrometheusType
314
+
257
315
  id: Optional[str] = None
258
316
  r"""Unique ID for this input"""
259
317
 
260
- type: Optional[InputPrometheusType] = None
261
-
262
318
  disabled: Optional[bool] = False
263
319
 
264
320
  pipeline: Optional[str] = None
@@ -289,7 +345,11 @@ class InputPrometheus(BaseModel):
289
345
  r"""Other dimensions to include in events"""
290
346
 
291
347
  discovery_type: Annotated[
292
- Optional[InputPrometheusDiscoveryType], pydantic.Field(alias="discoveryType")
348
+ Annotated[
349
+ Optional[InputPrometheusDiscoveryType],
350
+ PlainValidator(validate_open_enum(False)),
351
+ ],
352
+ pydantic.Field(alias="discoveryType"),
293
353
  ] = InputPrometheusDiscoveryType.STATIC
294
354
  r"""Target discovery mechanism. Use static to manually enter a list of targets."""
295
355
 
@@ -297,7 +357,10 @@ class InputPrometheus(BaseModel):
297
357
  r"""How often in minutes to scrape targets for metrics, 60 must be evenly divisible by the value or save will fail."""
298
358
 
299
359
  log_level: Annotated[
300
- Optional[InputPrometheusLogLevel], pydantic.Field(alias="logLevel")
360
+ Annotated[
361
+ Optional[InputPrometheusLogLevel], PlainValidator(validate_open_enum(False))
362
+ ],
363
+ pydantic.Field(alias="logLevel"),
301
364
  ] = InputPrometheusLogLevel.INFO
302
365
  r"""Collector runtime Log Level"""
303
366
 
@@ -331,7 +394,10 @@ class InputPrometheus(BaseModel):
331
394
  r"""Fields to add to events from this input"""
332
395
 
333
396
  auth_type: Annotated[
334
- Optional[InputPrometheusAuthTypeAuthenticationMethod],
397
+ Annotated[
398
+ Optional[InputPrometheusAuthTypeAuthenticationMethod],
399
+ PlainValidator(validate_open_enum(False)),
400
+ ],
335
401
  pydantic.Field(alias="authType"),
336
402
  ] = InputPrometheusAuthTypeAuthenticationMethod.MANUAL
337
403
  r"""Enter credentials directly, or select a stored secret"""
@@ -343,16 +409,24 @@ class InputPrometheus(BaseModel):
343
409
  )
344
410
  r"""List of Prometheus targets to pull metrics from. Values can be in URL or host[:port] format. For example: http://localhost:9090/metrics, localhost:9090, or localhost. In cases where just host[:port] is specified, the endpoint will resolve to 'http://host[:port]/metrics'."""
345
411
 
346
- name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
347
- r"""List of DNS names to resolve"""
348
-
349
412
  record_type: Annotated[
350
- Optional[InputPrometheusRecordType], pydantic.Field(alias="recordType")
413
+ Annotated[
414
+ Optional[InputPrometheusRecordType],
415
+ PlainValidator(validate_open_enum(False)),
416
+ ],
417
+ pydantic.Field(alias="recordType"),
351
418
  ] = InputPrometheusRecordType.SRV
352
419
  r"""DNS Record type to resolve"""
353
420
 
421
+ scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
422
+ r"""The port number in the metrics URL for discovered targets."""
423
+
424
+ name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
425
+ r"""List of DNS names to resolve"""
426
+
354
427
  scrape_protocol: Annotated[
355
- Optional[MetricsProtocol], pydantic.Field(alias="scrapeProtocol")
428
+ Annotated[Optional[MetricsProtocol], PlainValidator(validate_open_enum(False))],
429
+ pydantic.Field(alias="scrapeProtocol"),
356
430
  ] = MetricsProtocol.HTTP
357
431
  r"""Protocol to use when collecting metrics"""
358
432
 
@@ -361,24 +435,29 @@ class InputPrometheus(BaseModel):
361
435
  )
362
436
  r"""Path to use when collecting metrics from discovered targets"""
363
437
 
438
+ aws_authentication_method: Annotated[
439
+ Annotated[
440
+ Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
441
+ PlainValidator(validate_open_enum(False)),
442
+ ],
443
+ pydantic.Field(alias="awsAuthenticationMethod"),
444
+ ] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
445
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
446
+
447
+ aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
448
+
449
+ aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
450
+ r"""Select or create a stored secret that references your access key and secret key"""
451
+
364
452
  use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
365
453
  r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
366
454
 
367
- scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
368
- r"""The port number in the metrics URL for discovered targets."""
369
-
370
455
  search_filter: Annotated[
371
456
  Optional[List[InputPrometheusSearchFilter]],
372
457
  pydantic.Field(alias="searchFilter"),
373
458
  ] = None
374
459
  r"""EC2 Instance Search Filter"""
375
460
 
376
- aws_authentication_method: Annotated[
377
- Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
378
- pydantic.Field(alias="awsAuthenticationMethod"),
379
- ] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
380
- r"""AWS authentication method. Choose Auto to use IAM roles."""
381
-
382
461
  aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
383
462
  None
384
463
  )
@@ -390,7 +469,10 @@ class InputPrometheus(BaseModel):
390
469
  r"""EC2 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to EC2-compatible endpoint."""
391
470
 
392
471
  signature_version: Annotated[
393
- Optional[InputPrometheusSignatureVersion],
472
+ Annotated[
473
+ Optional[InputPrometheusSignatureVersion],
474
+ PlainValidator(validate_open_enum(False)),
475
+ ],
394
476
  pydantic.Field(alias="signatureVersion"),
395
477
  ] = InputPrometheusSignatureVersion.V4
396
478
  r"""Signature version to use for signing EC2 requests"""
@@ -430,3 +512,70 @@ class InputPrometheus(BaseModel):
430
512
  Optional[str], pydantic.Field(alias="credentialsSecret")
431
513
  ] = None
432
514
  r"""Select or create a secret that references your credentials"""
515
+
516
+ @field_serializer("discovery_type")
517
+ def serialize_discovery_type(self, value):
518
+ if isinstance(value, str):
519
+ try:
520
+ return models.InputPrometheusDiscoveryType(value)
521
+ except ValueError:
522
+ return value
523
+ return value
524
+
525
+ @field_serializer("log_level")
526
+ def serialize_log_level(self, value):
527
+ if isinstance(value, str):
528
+ try:
529
+ return models.InputPrometheusLogLevel(value)
530
+ except ValueError:
531
+ return value
532
+ return value
533
+
534
+ @field_serializer("auth_type")
535
+ def serialize_auth_type(self, value):
536
+ if isinstance(value, str):
537
+ try:
538
+ return models.InputPrometheusAuthTypeAuthenticationMethod(value)
539
+ except ValueError:
540
+ return value
541
+ return value
542
+
543
+ @field_serializer("record_type")
544
+ def serialize_record_type(self, value):
545
+ if isinstance(value, str):
546
+ try:
547
+ return models.InputPrometheusRecordType(value)
548
+ except ValueError:
549
+ return value
550
+ return value
551
+
552
+ @field_serializer("scrape_protocol")
553
+ def serialize_scrape_protocol(self, value):
554
+ if isinstance(value, str):
555
+ try:
556
+ return models.MetricsProtocol(value)
557
+ except ValueError:
558
+ return value
559
+ return value
560
+
561
+ @field_serializer("aws_authentication_method")
562
+ def serialize_aws_authentication_method(self, value):
563
+ if isinstance(value, str):
564
+ try:
565
+ return (
566
+ models.InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
567
+ value
568
+ )
569
+ )
570
+ except ValueError:
571
+ return value
572
+ return value
573
+
574
+ @field_serializer("signature_version")
575
+ def serialize_signature_version(self, value):
576
+ if isinstance(value, str):
577
+ try:
578
+ return models.InputPrometheusSignatureVersion(value)
579
+ except ValueError:
580
+ return value
581
+ return value
@@ -1,10 +1,14 @@
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
7
- from typing import Any, List, Optional
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
11
+ from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
10
14
 
@@ -23,20 +27,32 @@ class InputPrometheusRwConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputPrometheusRwMode(str, Enum):
30
+ class InputPrometheusRwMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
32
 
33
+ # Smart
29
34
  SMART = "smart"
35
+ # Always On
30
36
  ALWAYS = "always"
31
37
 
32
38
 
33
- class InputPrometheusRwCompression(str, Enum):
39
+ class InputPrometheusRwCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
40
  r"""Codec to use to compress the persisted data"""
35
41
 
42
+ # None
36
43
  NONE = "none"
44
+ # Gzip
37
45
  GZIP = "gzip"
38
46
 
39
47
 
48
+ class InputPrometheusRwPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputPrometheusRwPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputPrometheusRwPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputPrometheusRwMode]
42
58
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
@@ -52,10 +68,13 @@ class InputPrometheusRwPqTypedDict(TypedDict):
52
68
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
53
69
  compress: NotRequired[InputPrometheusRwCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputPrometheusRwPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputPrometheusRwPq(BaseModel):
58
- mode: Optional[InputPrometheusRwMode] = InputPrometheusRwMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputPrometheusRwMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputPrometheusRwMode.ALWAYS
59
78
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
60
79
 
61
80
  max_buffer_size: Annotated[
@@ -79,18 +98,43 @@ class InputPrometheusRwPq(BaseModel):
79
98
  path: Optional[str] = "$CRIBL_HOME/state/queues"
80
99
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
81
100
 
82
- compress: Optional[InputPrometheusRwCompression] = InputPrometheusRwCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputPrometheusRwCompression],
103
+ PlainValidator(validate_open_enum(False)),
104
+ ] = InputPrometheusRwCompression.NONE
83
105
  r"""Codec to use to compress the persisted data"""
84
106
 
107
+ pq_controls: Annotated[
108
+ Optional[InputPrometheusRwPqControls], pydantic.Field(alias="pqControls")
109
+ ] = None
85
110
 
86
- class InputPrometheusRwMinimumTLSVersion(str, Enum):
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputPrometheusRwMode(value)
116
+ except ValueError:
117
+ return value
118
+ return value
119
+
120
+ @field_serializer("compress")
121
+ def serialize_compress(self, value):
122
+ if isinstance(value, str):
123
+ try:
124
+ return models.InputPrometheusRwCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
129
+
130
+ class InputPrometheusRwMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
87
131
  TL_SV1 = "TLSv1"
88
132
  TL_SV1_1 = "TLSv1.1"
89
133
  TL_SV1_2 = "TLSv1.2"
90
134
  TL_SV1_3 = "TLSv1.3"
91
135
 
92
136
 
93
- class InputPrometheusRwMaximumTLSVersion(str, Enum):
137
+ class InputPrometheusRwMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
94
138
  TL_SV1 = "TLSv1"
95
139
  TL_SV1_1 = "TLSv1.1"
96
140
  TL_SV1_2 = "TLSv1.2"
@@ -99,6 +143,12 @@ class InputPrometheusRwMaximumTLSVersion(str, Enum):
99
143
 
100
144
  class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
101
145
  disabled: NotRequired[bool]
146
+ request_cert: NotRequired[bool]
147
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
148
+ reject_unauthorized: NotRequired[bool]
149
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
150
+ common_name_regex: NotRequired[str]
151
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
102
152
  certificate_name: NotRequired[str]
103
153
  r"""The name of the predefined certificate"""
104
154
  priv_key_path: NotRequired[str]
@@ -109,10 +159,6 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
109
159
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
110
160
  ca_path: NotRequired[str]
111
161
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
112
- request_cert: NotRequired[bool]
113
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
114
- reject_unauthorized: NotRequired[Any]
115
- common_name_regex: NotRequired[Any]
116
162
  min_version: NotRequired[InputPrometheusRwMinimumTLSVersion]
117
163
  max_version: NotRequired[InputPrometheusRwMaximumTLSVersion]
118
164
 
@@ -120,6 +166,19 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
120
166
  class InputPrometheusRwTLSSettingsServerSide(BaseModel):
121
167
  disabled: Optional[bool] = True
122
168
 
169
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
170
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
171
+
172
+ reject_unauthorized: Annotated[
173
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
174
+ ] = True
175
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
176
+
177
+ common_name_regex: Annotated[
178
+ Optional[str], pydantic.Field(alias="commonNameRegex")
179
+ ] = "/.*/"
180
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
181
+
123
182
  certificate_name: Annotated[
124
183
  Optional[str], pydantic.Field(alias="certificateName")
125
184
  ] = None
@@ -137,27 +196,42 @@ class InputPrometheusRwTLSSettingsServerSide(BaseModel):
137
196
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
138
197
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
139
198
 
140
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
141
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
142
-
143
- reject_unauthorized: Annotated[
144
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
145
- ] = None
146
-
147
- common_name_regex: Annotated[
148
- Optional[Any], pydantic.Field(alias="commonNameRegex")
149
- ] = None
150
-
151
199
  min_version: Annotated[
152
- Optional[InputPrometheusRwMinimumTLSVersion], pydantic.Field(alias="minVersion")
200
+ Annotated[
201
+ Optional[InputPrometheusRwMinimumTLSVersion],
202
+ PlainValidator(validate_open_enum(False)),
203
+ ],
204
+ pydantic.Field(alias="minVersion"),
153
205
  ] = None
154
206
 
155
207
  max_version: Annotated[
156
- Optional[InputPrometheusRwMaximumTLSVersion], pydantic.Field(alias="maxVersion")
208
+ Annotated[
209
+ Optional[InputPrometheusRwMaximumTLSVersion],
210
+ PlainValidator(validate_open_enum(False)),
211
+ ],
212
+ pydantic.Field(alias="maxVersion"),
157
213
  ] = None
158
214
 
159
-
160
- class InputPrometheusRwAuthenticationType(str, Enum):
215
+ @field_serializer("min_version")
216
+ def serialize_min_version(self, value):
217
+ if isinstance(value, str):
218
+ try:
219
+ return models.InputPrometheusRwMinimumTLSVersion(value)
220
+ except ValueError:
221
+ return value
222
+ return value
223
+
224
+ @field_serializer("max_version")
225
+ def serialize_max_version(self, value):
226
+ if isinstance(value, str):
227
+ try:
228
+ return models.InputPrometheusRwMaximumTLSVersion(value)
229
+ except ValueError:
230
+ return value
231
+ return value
232
+
233
+
234
+ class InputPrometheusRwAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
161
235
  r"""Remote Write authentication type"""
162
236
 
163
237
  NONE = "none"
@@ -212,11 +286,11 @@ class InputPrometheusRwOauthHeader(BaseModel):
212
286
 
213
287
 
214
288
  class InputPrometheusRwTypedDict(TypedDict):
289
+ type: InputPrometheusRwType
215
290
  port: float
216
291
  r"""Port to listen on"""
217
292
  id: NotRequired[str]
218
293
  r"""Unique ID for this input"""
219
- type: NotRequired[InputPrometheusRwType]
220
294
  disabled: NotRequired[bool]
221
295
  pipeline: NotRequired[str]
222
296
  r"""Pipeline to process data from this Source before sending it through the Routes"""
@@ -290,14 +364,14 @@ class InputPrometheusRwTypedDict(TypedDict):
290
364
 
291
365
 
292
366
  class InputPrometheusRw(BaseModel):
367
+ type: InputPrometheusRwType
368
+
293
369
  port: float
294
370
  r"""Port to listen on"""
295
371
 
296
372
  id: Optional[str] = None
297
373
  r"""Unique ID for this input"""
298
374
 
299
- type: Optional[InputPrometheusRwType] = None
300
-
301
375
  disabled: Optional[bool] = False
302
376
 
303
377
  pipeline: Optional[str] = None
@@ -388,7 +462,11 @@ class InputPrometheusRw(BaseModel):
388
462
  r"""Absolute path on which to listen for Prometheus requests. Defaults to /write, which will expand as: http://<your‑upstream‑URL>:<your‑port>/write."""
389
463
 
390
464
  auth_type: Annotated[
391
- Optional[InputPrometheusRwAuthenticationType], pydantic.Field(alias="authType")
465
+ Annotated[
466
+ Optional[InputPrometheusRwAuthenticationType],
467
+ PlainValidator(validate_open_enum(False)),
468
+ ],
469
+ pydantic.Field(alias="authType"),
392
470
  ] = InputPrometheusRwAuthenticationType.NONE
393
471
  r"""Remote Write authentication type"""
394
472
 
@@ -448,3 +526,12 @@ class InputPrometheusRw(BaseModel):
448
526
  pydantic.Field(alias="oauthHeaders"),
449
527
  ] = None
450
528
  r"""Additional headers to send in the OAuth login request. @{product} will automatically add the content-type header 'application/x-www-form-urlencoded' when sending this request."""
529
+
530
+ @field_serializer("auth_type")
531
+ def serialize_auth_type(self, value):
532
+ if isinstance(value, str):
533
+ try:
534
+ return models.InputPrometheusRwAuthenticationType(value)
535
+ except ValueError:
536
+ return value
537
+ return value