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
@@ -0,0 +1,340 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane import models, utils
5
+ from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
7
+ from enum import Enum
8
+ import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
11
+ from typing import Any, List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class CollectorRestType(str, Enum):
16
+ r"""Collector type: rest"""
17
+
18
+ REST = "rest"
19
+
20
+
21
+ class CollectorRestDiscoverType(str, Enum, metaclass=utils.OpenEnumMeta):
22
+ r"""Defines how task discovery will be performed. Each entry returned by the Discover operation will result in a Collect task."""
23
+
24
+ HTTP = "http"
25
+ JSON = "json"
26
+ LIST = "list"
27
+ NONE = "none"
28
+
29
+
30
+ class CollectorRestDiscoveryTypedDict(TypedDict):
31
+ discover_type: NotRequired[CollectorRestDiscoverType]
32
+ r"""Defines how task discovery will be performed. Each entry returned by the Discover operation will result in a Collect task."""
33
+
34
+
35
+ class CollectorRestDiscovery(BaseModel):
36
+ discover_type: Annotated[
37
+ Annotated[
38
+ Optional[CollectorRestDiscoverType],
39
+ PlainValidator(validate_open_enum(False)),
40
+ ],
41
+ pydantic.Field(alias="discoverType"),
42
+ ] = CollectorRestDiscoverType.NONE
43
+ r"""Defines how task discovery will be performed. Each entry returned by the Discover operation will result in a Collect task."""
44
+
45
+ @field_serializer("discover_type")
46
+ def serialize_discover_type(self, value):
47
+ if isinstance(value, str):
48
+ try:
49
+ return models.CollectorRestDiscoverType(value)
50
+ except ValueError:
51
+ return value
52
+ return value
53
+
54
+
55
+ class CollectMethod(str, Enum, metaclass=utils.OpenEnumMeta):
56
+ # GET
57
+ GET = "get"
58
+ # POST
59
+ POST = "post"
60
+ # POST with Body
61
+ POST_WITH_BODY = "post_with_body"
62
+ # Other
63
+ OTHER = "other"
64
+
65
+
66
+ class CollectorRestCollectRequestHeaderTypedDict(TypedDict):
67
+ name: str
68
+ value: str
69
+ r"""JavaScript expression to compute parameter value, usually enclosed in backticks (`${earliest}`). If a constant, use single quotes ('earliest'). Values that aren't successfully evaluated as JavaScript expressions will be treated as string constants."""
70
+
71
+
72
+ class CollectorRestCollectRequestHeader(BaseModel):
73
+ name: str
74
+
75
+ value: str
76
+ r"""JavaScript expression to compute parameter value, usually enclosed in backticks (`${earliest}`). If a constant, use single quotes ('earliest'). Values that aren't successfully evaluated as JavaScript expressions will be treated as string constants."""
77
+
78
+
79
+ class PaginationEnum(str, Enum, metaclass=utils.OpenEnumMeta):
80
+ # None
81
+ NONE = "none"
82
+ # Response Body Attribute
83
+ RESPONSE_BODY = "response_body"
84
+ # Response Header Attribute
85
+ RESPONSE_HEADER = "response_header"
86
+ # RFC 5988 - Web Linking
87
+ RESPONSE_HEADER_LINK = "response_header_link"
88
+ # Offset/Limit
89
+ REQUEST_OFFSET = "request_offset"
90
+ # Page/Size
91
+ REQUEST_PAGE = "request_page"
92
+
93
+
94
+ class PaginationTypedDict(TypedDict):
95
+ type: NotRequired[PaginationEnum]
96
+
97
+
98
+ class Pagination(BaseModel):
99
+ type: Annotated[
100
+ Optional[PaginationEnum], PlainValidator(validate_open_enum(False))
101
+ ] = PaginationEnum.NONE
102
+
103
+ @field_serializer("type")
104
+ def serialize_type(self, value):
105
+ if isinstance(value, str):
106
+ try:
107
+ return models.PaginationEnum(value)
108
+ except ValueError:
109
+ return value
110
+ return value
111
+
112
+
113
+ class CollectorRestAuthentication(str, Enum, metaclass=utils.OpenEnumMeta):
114
+ r"""Authentication method for Discover and Collect REST calls. You can specify API key–based authentication by adding the appropriate Collect headers."""
115
+
116
+ NONE = "none"
117
+ BASIC = "basic"
118
+ BASIC_SECRET = "basicSecret"
119
+ LOGIN = "login"
120
+ LOGIN_SECRET = "loginSecret"
121
+ OAUTH = "oauth"
122
+ OAUTH_SECRET = "oauthSecret"
123
+ GOOGLE_OAUTH = "google_oauth"
124
+ GOOGLE_OAUTH_SECRET = "google_oauthSecret"
125
+ HMAC = "hmac"
126
+
127
+
128
+ class CollectorRestRetryType(str, Enum, metaclass=utils.OpenEnumMeta):
129
+ r"""Algorithm to use when performing HTTP retries"""
130
+
131
+ # Disabled
132
+ NONE = "none"
133
+ # Backoff
134
+ BACKOFF = "backoff"
135
+ # Static
136
+ STATIC = "static"
137
+
138
+
139
+ class CollectorRestRetryRulesTypedDict(TypedDict):
140
+ type: NotRequired[CollectorRestRetryType]
141
+ r"""Algorithm to use when performing HTTP retries"""
142
+ interval: NotRequired[Any]
143
+ limit: NotRequired[Any]
144
+ multiplier: NotRequired[Any]
145
+ max_interval_ms: NotRequired[Any]
146
+ codes: NotRequired[Any]
147
+ enable_header: NotRequired[Any]
148
+ retry_connect_timeout: NotRequired[Any]
149
+ retry_connect_reset: NotRequired[Any]
150
+
151
+
152
+ class CollectorRestRetryRules(BaseModel):
153
+ type: Annotated[
154
+ Optional[CollectorRestRetryType], PlainValidator(validate_open_enum(False))
155
+ ] = CollectorRestRetryType.BACKOFF
156
+ r"""Algorithm to use when performing HTTP retries"""
157
+
158
+ interval: Optional[Any] = None
159
+
160
+ limit: Optional[Any] = None
161
+
162
+ multiplier: Optional[Any] = None
163
+
164
+ max_interval_ms: Annotated[Optional[Any], pydantic.Field(alias="maxIntervalMs")] = (
165
+ None
166
+ )
167
+
168
+ codes: Optional[Any] = None
169
+
170
+ enable_header: Annotated[Optional[Any], pydantic.Field(alias="enableHeader")] = None
171
+
172
+ retry_connect_timeout: Annotated[
173
+ Optional[Any], pydantic.Field(alias="retryConnectTimeout")
174
+ ] = None
175
+
176
+ retry_connect_reset: Annotated[
177
+ Optional[Any], pydantic.Field(alias="retryConnectReset")
178
+ ] = None
179
+
180
+ @field_serializer("type")
181
+ def serialize_type(self, value):
182
+ if isinstance(value, str):
183
+ try:
184
+ return models.CollectorRestRetryType(value)
185
+ except ValueError:
186
+ return value
187
+ return value
188
+
189
+
190
+ class CollectorRestStateTrackingTypedDict(TypedDict):
191
+ enabled: NotRequired[bool]
192
+ r"""Track collection progress between consecutive scheduled executions"""
193
+
194
+
195
+ class CollectorRestStateTracking(BaseModel):
196
+ enabled: Optional[bool] = None
197
+ r"""Track collection progress between consecutive scheduled executions"""
198
+
199
+
200
+ class CollectorRestSchedulingTypedDict(TypedDict):
201
+ state_tracking: NotRequired[CollectorRestStateTrackingTypedDict]
202
+
203
+
204
+ class CollectorRestScheduling(BaseModel):
205
+ state_tracking: Annotated[
206
+ Optional[CollectorRestStateTracking], pydantic.Field(alias="stateTracking")
207
+ ] = None
208
+
209
+
210
+ class CollectorRestTypedDict(TypedDict):
211
+ type: CollectorRestType
212
+ r"""Collector type: rest"""
213
+ collect_url: str
214
+ r"""URL (constant or JavaScript expression) to use for the Collect operation"""
215
+ discovery: NotRequired[CollectorRestDiscoveryTypedDict]
216
+ collect_method: NotRequired[CollectMethod]
217
+ collect_verb: NotRequired[Any]
218
+ collect_request_params: NotRequired[Any]
219
+ collect_body: NotRequired[Any]
220
+ collect_request_headers: NotRequired[
221
+ List[CollectorRestCollectRequestHeaderTypedDict]
222
+ ]
223
+ pagination: NotRequired[PaginationTypedDict]
224
+ authentication: NotRequired[CollectorRestAuthentication]
225
+ r"""Authentication method for Discover and Collect REST calls. You can specify API key–based authentication by adding the appropriate Collect headers."""
226
+ timeout: NotRequired[float]
227
+ r"""HTTP request inactivity timeout. Use 0 to disable."""
228
+ use_round_robin_dns: NotRequired[bool]
229
+ r"""Use round-robin DNS lookup. Suitable when DNS server returns multiple addresses in sort order."""
230
+ disable_time_filter: NotRequired[bool]
231
+ r"""Disable Collector event time filtering when a date range is specified"""
232
+ decode_url: NotRequired[bool]
233
+ r"""Decode the URL before sending requests (including pagination requests)"""
234
+ reject_unauthorized: NotRequired[bool]
235
+ r"""Reject certificates that cannot be verified against a valid CA (such as self-signed certificates)"""
236
+ capture_headers: NotRequired[bool]
237
+ r"""Enable to add response headers to the resHeaders field under the __collectible object"""
238
+ stop_on_empty_results: NotRequired[bool]
239
+ r"""Stop pagination when the Event Breaker produces no events"""
240
+ safe_headers: NotRequired[List[str]]
241
+ r"""List of headers that are safe to log in plain text"""
242
+ retry_rules: NotRequired[CollectorRestRetryRulesTypedDict]
243
+ scheduling: NotRequired[CollectorRestSchedulingTypedDict]
244
+
245
+
246
+ class CollectorRest(BaseModel):
247
+ type: CollectorRestType
248
+ r"""Collector type: rest"""
249
+
250
+ collect_url: Annotated[str, pydantic.Field(alias="collectUrl")]
251
+ r"""URL (constant or JavaScript expression) to use for the Collect operation"""
252
+
253
+ discovery: Optional[CollectorRestDiscovery] = None
254
+
255
+ collect_method: Annotated[
256
+ Annotated[Optional[CollectMethod], PlainValidator(validate_open_enum(False))],
257
+ pydantic.Field(alias="collectMethod"),
258
+ ] = CollectMethod.GET
259
+
260
+ collect_verb: Annotated[Optional[Any], pydantic.Field(alias="collectVerb")] = None
261
+
262
+ collect_request_params: Annotated[
263
+ Optional[Any], pydantic.Field(alias="collectRequestParams")
264
+ ] = None
265
+
266
+ collect_body: Annotated[Optional[Any], pydantic.Field(alias="collectBody")] = None
267
+
268
+ collect_request_headers: Annotated[
269
+ Optional[List[CollectorRestCollectRequestHeader]],
270
+ pydantic.Field(alias="collectRequestHeaders"),
271
+ ] = None
272
+
273
+ pagination: Optional[Pagination] = None
274
+
275
+ authentication: Annotated[
276
+ Optional[CollectorRestAuthentication], PlainValidator(validate_open_enum(False))
277
+ ] = CollectorRestAuthentication.NONE
278
+ r"""Authentication method for Discover and Collect REST calls. You can specify API key–based authentication by adding the appropriate Collect headers."""
279
+
280
+ timeout: Optional[float] = 0
281
+ r"""HTTP request inactivity timeout. Use 0 to disable."""
282
+
283
+ use_round_robin_dns: Annotated[
284
+ Optional[bool], pydantic.Field(alias="useRoundRobinDns")
285
+ ] = False
286
+ r"""Use round-robin DNS lookup. Suitable when DNS server returns multiple addresses in sort order."""
287
+
288
+ disable_time_filter: Annotated[
289
+ Optional[bool], pydantic.Field(alias="disableTimeFilter")
290
+ ] = False
291
+ r"""Disable Collector event time filtering when a date range is specified"""
292
+
293
+ decode_url: Annotated[Optional[bool], pydantic.Field(alias="decodeUrl")] = True
294
+ r"""Decode the URL before sending requests (including pagination requests)"""
295
+
296
+ reject_unauthorized: Annotated[
297
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
298
+ ] = False
299
+ r"""Reject certificates that cannot be verified against a valid CA (such as self-signed certificates)"""
300
+
301
+ capture_headers: Annotated[
302
+ Optional[bool], pydantic.Field(alias="captureHeaders")
303
+ ] = False
304
+ r"""Enable to add response headers to the resHeaders field under the __collectible object"""
305
+
306
+ stop_on_empty_results: Annotated[
307
+ Optional[bool], pydantic.Field(alias="stopOnEmptyResults")
308
+ ] = False
309
+ r"""Stop pagination when the Event Breaker produces no events"""
310
+
311
+ safe_headers: Annotated[
312
+ Optional[List[str]], pydantic.Field(alias="safeHeaders")
313
+ ] = None
314
+ r"""List of headers that are safe to log in plain text"""
315
+
316
+ retry_rules: Annotated[
317
+ Optional[CollectorRestRetryRules], pydantic.Field(alias="retryRules")
318
+ ] = None
319
+
320
+ scheduling: Annotated[
321
+ Optional[CollectorRestScheduling], pydantic.Field(alias="__scheduling")
322
+ ] = None
323
+
324
+ @field_serializer("collect_method")
325
+ def serialize_collect_method(self, value):
326
+ if isinstance(value, str):
327
+ try:
328
+ return models.CollectMethod(value)
329
+ except ValueError:
330
+ return value
331
+ return value
332
+
333
+ @field_serializer("authentication")
334
+ def serialize_authentication(self, value):
335
+ if isinstance(value, str):
336
+ try:
337
+ return models.CollectorRestAuthentication(value)
338
+ except ValueError:
339
+ return value
340
+ return value
@@ -0,0 +1,239 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane import models, utils
5
+ from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
7
+ from enum import Enum
8
+ import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
11
+ from typing import Any, List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class CollectorS3Type(str, Enum):
16
+ r"""Collector type: s3"""
17
+
18
+ S3 = "s3"
19
+
20
+
21
+ class PartitioningScheme(str, Enum, metaclass=utils.OpenEnumMeta):
22
+ r"""Partitioning scheme used for this dataset. Using a known scheme like DDSS enables more efficient data reading and retrieval."""
23
+
24
+ # Defined in Path
25
+ NONE = "none"
26
+ # DDSS
27
+ DDSS = "ddss"
28
+
29
+
30
+ class CollectorS3ExtractorTypedDict(TypedDict):
31
+ key: str
32
+ r"""A token from the template path, such as epoch"""
33
+ expression: str
34
+ r"""JavaScript expression that receives token under \"value\" variable, and evaluates to populate event fields. Example: {date: new Date(+value*1000)}"""
35
+
36
+
37
+ class CollectorS3Extractor(BaseModel):
38
+ key: str
39
+ r"""A token from the template path, such as epoch"""
40
+
41
+ expression: str
42
+ r"""JavaScript expression that receives token under \"value\" variable, and evaluates to populate event fields. Example: {date: new Date(+value*1000)}"""
43
+
44
+
45
+ class CollectorS3AuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
46
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
47
+
48
+ # Auto
49
+ AUTO = "auto"
50
+ # Manual
51
+ MANUAL = "manual"
52
+ # Secret Key pair
53
+ SECRET = "secret"
54
+
55
+
56
+ class CollectorS3SignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
57
+ r"""Signature version to use for signing S3 requests"""
58
+
59
+ V2 = "v2"
60
+ V4 = "v4"
61
+
62
+
63
+ class CollectorS3TypedDict(TypedDict):
64
+ type: CollectorS3Type
65
+ r"""Collector type: s3"""
66
+ bucket: str
67
+ r"""S3 Bucket from which to collect data"""
68
+ output_name: NotRequired[str]
69
+ r"""Name of the predefined Destination that will be used to auto-populate Collector settings"""
70
+ parquet_chunk_size_mb: NotRequired[float]
71
+ r"""Maximum file size for each Parquet chunk"""
72
+ parquet_chunk_download_timeout: NotRequired[float]
73
+ r"""Maximum time allowed for downloading a Parquet chunk. Processing will stop if a chunk cannot be downloaded within the time specified."""
74
+ region: NotRequired[str]
75
+ r"""Region from which to retrieve data"""
76
+ path: NotRequired[str]
77
+ r"""Directory where data will be collected. Templating (such as 'myDir/${datacenter}/${host}/${app}/') and time-based tokens (such as 'myOtherDir/${_time:%Y}/${_time:%m}/${_time:%d}/') are supported. Can be a constant (enclosed in quotes) or a JavaScript expression."""
78
+ partitioning_scheme: NotRequired[PartitioningScheme]
79
+ r"""Partitioning scheme used for this dataset. Using a known scheme like DDSS enables more efficient data reading and retrieval."""
80
+ extractors: NotRequired[List[CollectorS3ExtractorTypedDict]]
81
+ r"""Allows using template tokens as context for expressions that enrich discovery results. For example, given a template /path/${epoch}, an extractor under key \"epoch\" with an expression {date: new Date(+value*1000)}, will enrich discovery results with a human readable \"date\" field."""
82
+ aws_authentication_method: NotRequired[CollectorS3AuthenticationMethod]
83
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
84
+ endpoint: NotRequired[str]
85
+ r"""Must point to an S3-compatible endpoint. If empty, defaults to an AWS region-specific endpoint."""
86
+ signature_version: NotRequired[CollectorS3SignatureVersion]
87
+ r"""Signature version to use for signing S3 requests"""
88
+ enable_assume_role: NotRequired[bool]
89
+ r"""Use AssumeRole credentials"""
90
+ assume_role_arn: NotRequired[str]
91
+ r"""Amazon Resource Name (ARN) of the role to assume"""
92
+ assume_role_external_id: NotRequired[str]
93
+ r"""External ID to use when assuming role"""
94
+ duration_seconds: NotRequired[float]
95
+ r"""Duration of the Assumed Role's session, in seconds. Minimum is 900 (15 minutes), default is 3600 (1 hour), and maximum is 43200 (12 hours)."""
96
+ max_batch_size: NotRequired[float]
97
+ r"""Maximum number of metadata objects to batch before recording as results"""
98
+ recurse: NotRequired[Any]
99
+ reuse_connections: NotRequired[bool]
100
+ r"""Reuse connections between requests to improve performance"""
101
+ reject_unauthorized: NotRequired[bool]
102
+ r"""Reject certificates that cannot be verified against a valid CA (such as a self-signed certificate)"""
103
+ verify_permissions: NotRequired[bool]
104
+ r"""Disable if you can access files within the bucket but not the bucket itself. Resolves errors of the form \"discover task initialization failed...error: Forbidden\"."""
105
+ disable_time_filter: NotRequired[bool]
106
+ r"""Disable Collector event time filtering when a date range is specified"""
107
+
108
+
109
+ class CollectorS3(BaseModel):
110
+ type: CollectorS3Type
111
+ r"""Collector type: s3"""
112
+
113
+ bucket: str
114
+ r"""S3 Bucket from which to collect data"""
115
+
116
+ output_name: Annotated[Optional[str], pydantic.Field(alias="outputName")] = None
117
+ r"""Name of the predefined Destination that will be used to auto-populate Collector settings"""
118
+
119
+ parquet_chunk_size_mb: Annotated[
120
+ Optional[float], pydantic.Field(alias="parquetChunkSizeMB")
121
+ ] = 5
122
+ r"""Maximum file size for each Parquet chunk"""
123
+
124
+ parquet_chunk_download_timeout: Annotated[
125
+ Optional[float], pydantic.Field(alias="parquetChunkDownloadTimeout")
126
+ ] = 600
127
+ r"""Maximum time allowed for downloading a Parquet chunk. Processing will stop if a chunk cannot be downloaded within the time specified."""
128
+
129
+ region: Optional[str] = None
130
+ r"""Region from which to retrieve data"""
131
+
132
+ path: Optional[str] = None
133
+ r"""Directory where data will be collected. Templating (such as 'myDir/${datacenter}/${host}/${app}/') and time-based tokens (such as 'myOtherDir/${_time:%Y}/${_time:%m}/${_time:%d}/') are supported. Can be a constant (enclosed in quotes) or a JavaScript expression."""
134
+
135
+ partitioning_scheme: Annotated[
136
+ Annotated[
137
+ Optional[PartitioningScheme], PlainValidator(validate_open_enum(False))
138
+ ],
139
+ pydantic.Field(alias="partitioningScheme"),
140
+ ] = PartitioningScheme.NONE
141
+ r"""Partitioning scheme used for this dataset. Using a known scheme like DDSS enables more efficient data reading and retrieval."""
142
+
143
+ extractors: Optional[List[CollectorS3Extractor]] = None
144
+ r"""Allows using template tokens as context for expressions that enrich discovery results. For example, given a template /path/${epoch}, an extractor under key \"epoch\" with an expression {date: new Date(+value*1000)}, will enrich discovery results with a human readable \"date\" field."""
145
+
146
+ aws_authentication_method: Annotated[
147
+ Annotated[
148
+ Optional[CollectorS3AuthenticationMethod],
149
+ PlainValidator(validate_open_enum(False)),
150
+ ],
151
+ pydantic.Field(alias="awsAuthenticationMethod"),
152
+ ] = CollectorS3AuthenticationMethod.AUTO
153
+ r"""AWS authentication method. Choose Auto to use IAM roles."""
154
+
155
+ endpoint: Optional[str] = None
156
+ r"""Must point to an S3-compatible endpoint. If empty, defaults to an AWS region-specific endpoint."""
157
+
158
+ signature_version: Annotated[
159
+ Annotated[
160
+ Optional[CollectorS3SignatureVersion],
161
+ PlainValidator(validate_open_enum(False)),
162
+ ],
163
+ pydantic.Field(alias="signatureVersion"),
164
+ ] = CollectorS3SignatureVersion.V4
165
+ r"""Signature version to use for signing S3 requests"""
166
+
167
+ enable_assume_role: Annotated[
168
+ Optional[bool], pydantic.Field(alias="enableAssumeRole")
169
+ ] = False
170
+ r"""Use AssumeRole credentials"""
171
+
172
+ assume_role_arn: Annotated[Optional[str], pydantic.Field(alias="assumeRoleArn")] = (
173
+ None
174
+ )
175
+ r"""Amazon Resource Name (ARN) of the role to assume"""
176
+
177
+ assume_role_external_id: Annotated[
178
+ Optional[str], pydantic.Field(alias="assumeRoleExternalId")
179
+ ] = None
180
+ r"""External ID to use when assuming role"""
181
+
182
+ duration_seconds: Annotated[
183
+ Optional[float], pydantic.Field(alias="durationSeconds")
184
+ ] = 3600
185
+ r"""Duration of the Assumed Role's session, in seconds. Minimum is 900 (15 minutes), default is 3600 (1 hour), and maximum is 43200 (12 hours)."""
186
+
187
+ max_batch_size: Annotated[Optional[float], pydantic.Field(alias="maxBatchSize")] = (
188
+ 10
189
+ )
190
+ r"""Maximum number of metadata objects to batch before recording as results"""
191
+
192
+ recurse: Optional[Any] = None
193
+
194
+ reuse_connections: Annotated[
195
+ Optional[bool], pydantic.Field(alias="reuseConnections")
196
+ ] = True
197
+ r"""Reuse connections between requests to improve performance"""
198
+
199
+ reject_unauthorized: Annotated[
200
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
201
+ ] = True
202
+ r"""Reject certificates that cannot be verified against a valid CA (such as a self-signed certificate)"""
203
+
204
+ verify_permissions: Annotated[
205
+ Optional[bool], pydantic.Field(alias="verifyPermissions")
206
+ ] = True
207
+ r"""Disable if you can access files within the bucket but not the bucket itself. Resolves errors of the form \"discover task initialization failed...error: Forbidden\"."""
208
+
209
+ disable_time_filter: Annotated[
210
+ Optional[bool], pydantic.Field(alias="disableTimeFilter")
211
+ ] = False
212
+ r"""Disable Collector event time filtering when a date range is specified"""
213
+
214
+ @field_serializer("partitioning_scheme")
215
+ def serialize_partitioning_scheme(self, value):
216
+ if isinstance(value, str):
217
+ try:
218
+ return models.PartitioningScheme(value)
219
+ except ValueError:
220
+ return value
221
+ return value
222
+
223
+ @field_serializer("aws_authentication_method")
224
+ def serialize_aws_authentication_method(self, value):
225
+ if isinstance(value, str):
226
+ try:
227
+ return models.CollectorS3AuthenticationMethod(value)
228
+ except ValueError:
229
+ return value
230
+ return value
231
+
232
+ @field_serializer("signature_version")
233
+ def serialize_signature_version(self, value):
234
+ if isinstance(value, str):
235
+ try:
236
+ return models.CollectorS3SignatureVersion(value)
237
+ except ValueError:
238
+ return value
239
+ return value
@@ -0,0 +1,59 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from cribl_control_plane.types import BaseModel
5
+ from enum import Enum
6
+ import pydantic
7
+ from typing import List, Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class CollectorScriptType(str, Enum):
12
+ r"""Collector type: script"""
13
+
14
+ SCRIPT = "script"
15
+
16
+
17
+ class EnvVarTypedDict(TypedDict):
18
+ name: str
19
+ r"""Environment variable name"""
20
+ value: str
21
+ r"""JavaScript expression to compute environment variable's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
22
+
23
+
24
+ class EnvVar(BaseModel):
25
+ name: str
26
+ r"""Environment variable name"""
27
+
28
+ value: str
29
+ r"""JavaScript expression to compute environment variable's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
30
+
31
+
32
+ class CollectorScriptTypedDict(TypedDict):
33
+ type: CollectorScriptType
34
+ r"""Collector type: script"""
35
+ discover_script: str
36
+ r"""Script to discover what to collect. Should output one task per line in stdout."""
37
+ collect_script: str
38
+ r"""Script to run to perform data collections. Task passed in as $CRIBL_COLLECT_ARG. Should output results to stdout."""
39
+ shell: NotRequired[str]
40
+ r"""Shell to use to execute scripts."""
41
+ env_vars: NotRequired[List[EnvVarTypedDict]]
42
+ r"""Environment variables to expose to the discover and collect scripts."""
43
+
44
+
45
+ class CollectorScript(BaseModel):
46
+ type: CollectorScriptType
47
+ r"""Collector type: script"""
48
+
49
+ discover_script: Annotated[str, pydantic.Field(alias="discoverScript")]
50
+ r"""Script to discover what to collect. Should output one task per line in stdout."""
51
+
52
+ collect_script: Annotated[str, pydantic.Field(alias="collectScript")]
53
+ r"""Script to run to perform data collections. Task passed in as $CRIBL_COLLECT_ARG. Should output results to stdout."""
54
+
55
+ shell: Optional[str] = "/bin/bash"
56
+ r"""Shell to use to execute scripts."""
57
+
58
+ env_vars: Annotated[Optional[List[EnvVar]], pydantic.Field(alias="envVars")] = None
59
+ r"""Environment variables to expose to the discover and collect scripts."""