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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. cribl_control_plane/_hooks/clientcredentials.py +92 -42
  2. cribl_control_plane/_version.py +4 -4
  3. cribl_control_plane/acl.py +21 -9
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +17 -1
  6. cribl_control_plane/branches.py +28 -8
  7. cribl_control_plane/commits.py +119 -47
  8. cribl_control_plane/commits_files.py +44 -24
  9. cribl_control_plane/configs_versions.py +16 -10
  10. cribl_control_plane/cribl.py +495 -0
  11. cribl_control_plane/destinations.py +86 -34
  12. cribl_control_plane/destinations_pq.py +34 -14
  13. cribl_control_plane/errors/__init__.py +23 -8
  14. cribl_control_plane/errors/apierror.py +2 -0
  15. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  16. cribl_control_plane/errors/error.py +4 -2
  17. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  18. cribl_control_plane/errors/no_response_error.py +5 -1
  19. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  20. cribl_control_plane/functions.py +367 -0
  21. cribl_control_plane/groups_configs.py +8 -3
  22. cribl_control_plane/groups_sdk.py +156 -94
  23. cribl_control_plane/health.py +34 -14
  24. cribl_control_plane/hectokens.py +44 -20
  25. cribl_control_plane/httpclient.py +0 -1
  26. cribl_control_plane/lakedatasets.py +156 -62
  27. cribl_control_plane/models/__init__.py +3298 -479
  28. cribl_control_plane/models/addhectokenrequest.py +7 -1
  29. cribl_control_plane/models/authtoken.py +5 -1
  30. cribl_control_plane/models/backupssettings_union.py +37 -0
  31. cribl_control_plane/models/{lookupversions.py → branchinfo.py} +4 -4
  32. cribl_control_plane/models/cacheconnection.py +30 -2
  33. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  34. cribl_control_plane/models/cloudprovider.py +2 -1
  35. cribl_control_plane/models/collectorazureblob.py +130 -0
  36. cribl_control_plane/models/collectorconf.py +56 -0
  37. cribl_control_plane/models/collectorcribllake.py +27 -0
  38. cribl_control_plane/models/collectordatabase.py +92 -0
  39. cribl_control_plane/models/collectorfilesystem.py +66 -0
  40. cribl_control_plane/models/collectorgooglecloudstorage.py +131 -0
  41. cribl_control_plane/models/collectorhealthcheck.py +269 -0
  42. cribl_control_plane/models/collectorrest.py +340 -0
  43. cribl_control_plane/models/collectors3.py +239 -0
  44. cribl_control_plane/models/collectorscript.py +59 -0
  45. cribl_control_plane/models/collectorsplunk.py +253 -0
  46. cribl_control_plane/models/configgroup.py +62 -8
  47. cribl_control_plane/models/configgroupcloud.py +17 -3
  48. cribl_control_plane/models/countedbranchinfo.py +20 -0
  49. cribl_control_plane/models/countedconfiggroup.py +20 -0
  50. cribl_control_plane/models/countedcribllakedataset.py +20 -0
  51. cribl_control_plane/models/counteddistributedsummary.py +20 -0
  52. cribl_control_plane/models/countedfunctionresponse.py +20 -0
  53. cribl_control_plane/models/countedgitcommitsummary.py +20 -0
  54. cribl_control_plane/models/countedgitcountresult.py +20 -0
  55. cribl_control_plane/models/{createinputop.py → countedgitdiffresult.py} +5 -9
  56. cribl_control_plane/models/countedgitfilesresponse.py +20 -0
  57. cribl_control_plane/models/{getversioninfoop.py → countedgitinfo.py} +2 -6
  58. cribl_control_plane/models/countedgitlogresult.py +20 -0
  59. cribl_control_plane/models/countedgitrevertresult.py +20 -0
  60. cribl_control_plane/models/countedgitshowresult.py +20 -0
  61. cribl_control_plane/models/countedgitstatusresult.py +20 -0
  62. cribl_control_plane/models/{listinputop.py → countedinput.py} +2 -6
  63. cribl_control_plane/models/countedinputsplunkhec.py +20 -0
  64. cribl_control_plane/models/countedjobinfo.py +20 -0
  65. cribl_control_plane/models/countedmasterworkerentry.py +20 -0
  66. cribl_control_plane/models/countednumber.py +19 -0
  67. cribl_control_plane/models/{getversionbranchop.py → countedobject.py} +2 -6
  68. cribl_control_plane/models/{listoutputop.py → countedoutput.py} +2 -6
  69. cribl_control_plane/models/{createoutputop.py → countedoutputsamplesresponse.py} +5 -9
  70. cribl_control_plane/models/countedoutputtestresponse.py +20 -0
  71. cribl_control_plane/models/countedpackinfo.py +20 -0
  72. cribl_control_plane/models/{createpacksop.py → countedpackinstallinfo.py} +2 -6
  73. cribl_control_plane/models/{listpipelineop.py → countedpipeline.py} +2 -6
  74. cribl_control_plane/models/{listroutesop.py → countedroutes.py} +2 -6
  75. cribl_control_plane/models/countedstring.py +19 -0
  76. cribl_control_plane/models/countedsystemsettingsconf.py +20 -0
  77. cribl_control_plane/models/countedteamaccesscontrollist.py +20 -0
  78. cribl_control_plane/models/counteduseraccesscontrollist.py +20 -0
  79. cribl_control_plane/models/createauthloginop.py +18 -0
  80. cribl_control_plane/models/createconfiggroupbyproductop.py +26 -27
  81. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +1 -19
  82. cribl_control_plane/models/createinputhectokenbyidop.py +1 -19
  83. cribl_control_plane/models/createoutputtestbyidop.py +1 -20
  84. cribl_control_plane/models/createroutesappendbyidop.py +4 -22
  85. cribl_control_plane/models/createversioncommitop.py +1 -19
  86. cribl_control_plane/models/createversionrevertop.py +3 -21
  87. cribl_control_plane/models/createversionundoop.py +1 -18
  88. cribl_control_plane/models/criblevent.py +15 -0
  89. cribl_control_plane/models/cribllakedataset.py +23 -3
  90. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  91. cribl_control_plane/models/datasetmetadata.py +18 -2
  92. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -21
  93. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +1 -20
  94. cribl_control_plane/models/deleteinputbyidop.py +1 -20
  95. cribl_control_plane/models/deleteoutputbyidop.py +1 -20
  96. cribl_control_plane/models/deleteoutputpqbyidop.py +1 -19
  97. cribl_control_plane/models/deletepacksbyidop.py +1 -20
  98. cribl_control_plane/models/deletepipelinebyidop.py +3 -22
  99. cribl_control_plane/models/difffiles.py +130 -0
  100. cribl_control_plane/models/diffline.py +26 -0
  101. cribl_control_plane/models/difflinecontext.py +28 -0
  102. cribl_control_plane/models/difflinedelete.py +25 -0
  103. cribl_control_plane/models/difflineinsert.py +25 -0
  104. cribl_control_plane/models/distributedsummary.py +6 -0
  105. cribl_control_plane/models/functionaggregatemetrics.py +206 -0
  106. cribl_control_plane/models/functionaggregation.py +172 -0
  107. cribl_control_plane/models/functionautotimestamp.py +173 -0
  108. cribl_control_plane/models/functioncef.py +111 -0
  109. cribl_control_plane/models/functionchain.py +75 -0
  110. cribl_control_plane/models/functionclone.py +75 -0
  111. cribl_control_plane/models/functioncode.py +96 -0
  112. cribl_control_plane/models/functioncomment.py +75 -0
  113. cribl_control_plane/models/functiondistinct.py +99 -0
  114. cribl_control_plane/models/functiondnslookup.py +250 -0
  115. cribl_control_plane/models/functiondrop.py +73 -0
  116. cribl_control_plane/models/functiondropdimensions.py +87 -0
  117. cribl_control_plane/models/functiondynamicsampling.py +121 -0
  118. cribl_control_plane/models/functioneval.py +103 -0
  119. cribl_control_plane/models/functioneventbreaker.py +103 -0
  120. cribl_control_plane/models/functioneventstats.py +92 -0
  121. cribl_control_plane/models/functionexternaldata.py +73 -0
  122. cribl_control_plane/models/functionflatten.py +90 -0
  123. cribl_control_plane/models/functionfoldkeys.py +89 -0
  124. cribl_control_plane/models/functiongenstats.py +73 -0
  125. cribl_control_plane/models/functiongeoip.py +120 -0
  126. cribl_control_plane/models/functiongrok.py +95 -0
  127. cribl_control_plane/models/functionhandlebar.py +112 -0
  128. cribl_control_plane/models/functionjoin.py +112 -0
  129. cribl_control_plane/models/functionjsonunroll.py +80 -0
  130. cribl_control_plane/models/functionlakeexport.py +102 -0
  131. cribl_control_plane/models/functionlimit.py +75 -0
  132. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
  133. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
  134. cribl_control_plane/models/functionlookup.py +148 -0
  135. cribl_control_plane/models/functionmask.py +121 -0
  136. cribl_control_plane/models/functionmvexpand.py +128 -0
  137. cribl_control_plane/models/functionmvpull.py +99 -0
  138. cribl_control_plane/models/functionnotificationpolicies.py +186 -0
  139. cribl_control_plane/models/functionnotifications.py +85 -0
  140. cribl_control_plane/models/functionnotify.py +196 -0
  141. cribl_control_plane/models/functionnumerify.py +119 -0
  142. cribl_control_plane/models/functionotlplogs.py +82 -0
  143. cribl_control_plane/models/functionotlpmetrics.py +118 -0
  144. cribl_control_plane/models/functionotlptraces.py +111 -0
  145. cribl_control_plane/models/functionpack.py +80 -0
  146. cribl_control_plane/models/functionpivot.py +85 -0
  147. cribl_control_plane/models/functionpublishmetrics.py +153 -0
  148. cribl_control_plane/models/functionredis.py +173 -0
  149. cribl_control_plane/models/functionregexextract.py +112 -0
  150. cribl_control_plane/models/functionregexfilter.py +95 -0
  151. cribl_control_plane/models/functionrename.py +107 -0
  152. cribl_control_plane/models/functionresponse.py +242 -0
  153. cribl_control_plane/models/functionrollupmetrics.py +114 -0
  154. cribl_control_plane/models/functionsampling.py +90 -0
  155. cribl_control_plane/models/functionsend.py +141 -0
  156. cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
  157. cribl_control_plane/models/functionserde.py +161 -0
  158. cribl_control_plane/models/functionserialize.py +134 -0
  159. cribl_control_plane/models/functionsidlookup.py +93 -0
  160. cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
  161. cribl_control_plane/models/functionsort.py +97 -0
  162. cribl_control_plane/models/functionstore.py +132 -0
  163. cribl_control_plane/models/functionsuppress.py +115 -0
  164. cribl_control_plane/models/functiontee.py +90 -0
  165. cribl_control_plane/models/functiontrimtimestamp.py +75 -0
  166. cribl_control_plane/models/functionunion.py +80 -0
  167. cribl_control_plane/models/functionunroll.py +80 -0
  168. cribl_control_plane/models/functionwindow.py +96 -0
  169. cribl_control_plane/models/functionxmlunroll.py +92 -0
  170. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -20
  171. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -20
  172. cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -19
  173. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -20
  174. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +1 -20
  175. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +54 -14
  176. cribl_control_plane/models/getfunctionsbyidop.py +18 -0
  177. cribl_control_plane/models/getinputbyidop.py +1 -20
  178. cribl_control_plane/models/getmasterworkerentryop.py +1 -18
  179. cribl_control_plane/models/getoutputbyidop.py +1 -20
  180. cribl_control_plane/models/getoutputpqbyidop.py +1 -19
  181. cribl_control_plane/models/getoutputsamplesbyidop.py +1 -20
  182. cribl_control_plane/models/getpacksbyidop.py +1 -20
  183. cribl_control_plane/models/getpacksop.py +1 -19
  184. cribl_control_plane/models/getpipelinebyidop.py +3 -22
  185. cribl_control_plane/models/getroutesbyidop.py +3 -22
  186. cribl_control_plane/models/getsummaryop.py +18 -20
  187. cribl_control_plane/models/getversioncountop.py +3 -21
  188. cribl_control_plane/models/getversiondiffop.py +1 -18
  189. cribl_control_plane/models/getversionfilesop.py +3 -22
  190. cribl_control_plane/models/getversionop.py +1 -19
  191. cribl_control_plane/models/getversionshowop.py +1 -18
  192. cribl_control_plane/models/getversionstatusop.py +1 -19
  193. cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
  194. cribl_control_plane/models/gitdiffresult.py +16 -0
  195. cribl_control_plane/models/gitinfo.py +14 -3
  196. cribl_control_plane/models/gitshowresult.py +19 -0
  197. cribl_control_plane/models/groupcreaterequest.py +172 -0
  198. cribl_control_plane/models/hbcriblinfo.py +42 -7
  199. cribl_control_plane/models/healthserverstatus.py +55 -0
  200. cribl_control_plane/models/heartbeatmetadata.py +6 -11
  201. cribl_control_plane/models/input.py +83 -78
  202. cribl_control_plane/models/inputappscope.py +126 -30
  203. cribl_control_plane/models/inputazureblob.py +62 -6
  204. cribl_control_plane/models/inputcloudflarehec.py +518 -0
  205. cribl_control_plane/models/inputcollection.py +47 -4
  206. cribl_control_plane/models/inputconfluentcloud.py +258 -32
  207. cribl_control_plane/models/inputcribl.py +47 -4
  208. cribl_control_plane/models/inputcriblhttp.py +121 -30
  209. cribl_control_plane/models/inputcribllakehttp.py +136 -30
  210. cribl_control_plane/models/inputcriblmetrics.py +48 -4
  211. cribl_control_plane/models/inputcribltcp.py +122 -24
  212. cribl_control_plane/models/inputcrowdstrike.py +92 -10
  213. cribl_control_plane/models/inputdatadogagent.py +98 -24
  214. cribl_control_plane/models/inputdatagen.py +47 -4
  215. cribl_control_plane/models/inputedgeprometheus.py +210 -50
  216. cribl_control_plane/models/inputelastic.py +167 -36
  217. cribl_control_plane/models/inputeventhub.py +209 -6
  218. cribl_control_plane/models/inputexec.py +59 -6
  219. cribl_control_plane/models/inputfile.py +78 -10
  220. cribl_control_plane/models/inputfirehose.py +97 -24
  221. cribl_control_plane/models/inputgooglepubsub.py +67 -6
  222. cribl_control_plane/models/inputgrafana.py +251 -71
  223. cribl_control_plane/models/inputhttp.py +97 -24
  224. cribl_control_plane/models/inputhttpraw.py +97 -24
  225. cribl_control_plane/models/inputjournalfiles.py +48 -4
  226. cribl_control_plane/models/inputkafka.py +252 -28
  227. cribl_control_plane/models/inputkinesis.py +130 -14
  228. cribl_control_plane/models/inputkubeevents.py +47 -4
  229. cribl_control_plane/models/inputkubelogs.py +61 -8
  230. cribl_control_plane/models/inputkubemetrics.py +61 -8
  231. cribl_control_plane/models/inputloki.py +113 -34
  232. cribl_control_plane/models/inputmetrics.py +97 -24
  233. cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
  234. cribl_control_plane/models/inputmsk.py +145 -32
  235. cribl_control_plane/models/inputnetflow.py +47 -4
  236. cribl_control_plane/models/inputoffice365mgmt.py +112 -14
  237. cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
  238. cribl_control_plane/models/inputoffice365service.py +114 -16
  239. cribl_control_plane/models/inputopentelemetry.py +143 -32
  240. cribl_control_plane/models/inputprometheus.py +193 -44
  241. cribl_control_plane/models/inputprometheusrw.py +114 -27
  242. cribl_control_plane/models/inputrawudp.py +47 -4
  243. cribl_control_plane/models/inputs3.py +78 -8
  244. cribl_control_plane/models/inputs3inventory.py +92 -10
  245. cribl_control_plane/models/inputsecuritylake.py +93 -10
  246. cribl_control_plane/models/inputsnmp.py +112 -21
  247. cribl_control_plane/models/inputsplunk.py +130 -28
  248. cribl_control_plane/models/inputsplunkhec.py +119 -29
  249. cribl_control_plane/models/inputsplunksearch.py +112 -15
  250. cribl_control_plane/models/inputsqs.py +99 -16
  251. cribl_control_plane/models/inputsyslog.py +189 -47
  252. cribl_control_plane/models/inputsystemmetrics.py +202 -32
  253. cribl_control_plane/models/inputsystemstate.py +61 -8
  254. cribl_control_plane/models/inputtcp.py +122 -26
  255. cribl_control_plane/models/inputtcpjson.py +112 -26
  256. cribl_control_plane/models/inputwef.py +144 -15
  257. cribl_control_plane/models/inputwindowsmetrics.py +186 -33
  258. cribl_control_plane/models/inputwineventlogs.py +93 -11
  259. cribl_control_plane/models/inputwiz.py +173 -8
  260. cribl_control_plane/models/inputwizwebhook.py +97 -24
  261. cribl_control_plane/models/inputzscalerhec.py +119 -29
  262. cribl_control_plane/models/jobinfo.py +34 -0
  263. cribl_control_plane/models/jobstatus.py +48 -0
  264. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  265. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  266. cribl_control_plane/models/listconfiggroupbyproductop.py +14 -19
  267. cribl_control_plane/models/listmasterworkerentryop.py +1 -19
  268. cribl_control_plane/models/logininfo.py +3 -3
  269. cribl_control_plane/models/masterworkerentry.py +20 -13
  270. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  271. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  272. cribl_control_plane/models/nodeprovidedinfo.py +13 -11
  273. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  274. cribl_control_plane/models/nodeupgradestate.py +2 -1
  275. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  276. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  277. cribl_control_plane/models/output.py +104 -90
  278. cribl_control_plane/models/outputazureblob.py +171 -18
  279. cribl_control_plane/models/outputazuredataexplorer.py +514 -90
  280. cribl_control_plane/models/outputazureeventhub.py +315 -31
  281. cribl_control_plane/models/outputazurelogs.py +145 -26
  282. cribl_control_plane/models/outputchronicle.py +532 -0
  283. cribl_control_plane/models/outputclickhouse.py +205 -34
  284. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  285. cribl_control_plane/models/outputcloudwatch.py +129 -23
  286. cribl_control_plane/models/outputconfluentcloud.py +384 -57
  287. cribl_control_plane/models/outputcriblhttp.py +198 -31
  288. cribl_control_plane/models/outputcribllake.py +156 -16
  289. cribl_control_plane/models/outputcribltcp.py +194 -29
  290. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
  291. cribl_control_plane/models/outputdatabricks.py +501 -0
  292. cribl_control_plane/models/outputdatadog.py +199 -31
  293. cribl_control_plane/models/outputdataset.py +181 -29
  294. cribl_control_plane/models/outputdiskspool.py +17 -2
  295. cribl_control_plane/models/outputdls3.py +233 -24
  296. cribl_control_plane/models/outputdynatracehttp.py +208 -34
  297. cribl_control_plane/models/outputdynatraceotlp.py +210 -36
  298. cribl_control_plane/models/outputelastic.py +199 -30
  299. cribl_control_plane/models/outputelasticcloud.py +171 -26
  300. cribl_control_plane/models/outputexabeam.py +96 -10
  301. cribl_control_plane/models/outputfilesystem.py +139 -14
  302. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  303. cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
  304. cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
  305. cribl_control_plane/models/outputgooglepubsub.py +131 -23
  306. cribl_control_plane/models/outputgrafanacloud.py +376 -74
  307. cribl_control_plane/models/outputgraphite.py +128 -25
  308. cribl_control_plane/models/outputhoneycomb.py +145 -26
  309. cribl_control_plane/models/outputhumiohec.py +162 -28
  310. cribl_control_plane/models/outputinfluxdb.py +165 -28
  311. cribl_control_plane/models/outputkafka.py +375 -52
  312. cribl_control_plane/models/outputkinesis.py +165 -27
  313. cribl_control_plane/models/outputloki.py +164 -34
  314. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  315. cribl_control_plane/models/outputminio.py +225 -25
  316. cribl_control_plane/models/outputmsk.py +267 -54
  317. cribl_control_plane/models/outputnewrelic.py +171 -29
  318. cribl_control_plane/models/outputnewrelicevents.py +163 -28
  319. cribl_control_plane/models/outputopentelemetry.py +240 -40
  320. cribl_control_plane/models/outputprometheus.py +145 -26
  321. cribl_control_plane/models/outputring.py +49 -8
  322. cribl_control_plane/models/outputs3.py +233 -26
  323. cribl_control_plane/models/outputsecuritylake.py +179 -18
  324. cribl_control_plane/models/outputsentinel.py +172 -29
  325. cribl_control_plane/models/outputsentineloneaisiem.py +178 -32
  326. cribl_control_plane/models/outputservicenow.py +223 -38
  327. cribl_control_plane/models/outputsignalfx.py +145 -26
  328. cribl_control_plane/models/outputsns.py +143 -25
  329. cribl_control_plane/models/outputsplunk.py +206 -36
  330. cribl_control_plane/models/outputsplunkhec.py +238 -26
  331. cribl_control_plane/models/outputsplunklb.py +262 -42
  332. cribl_control_plane/models/outputsqs.py +163 -33
  333. cribl_control_plane/models/outputstatsd.py +127 -25
  334. cribl_control_plane/models/outputstatsdext.py +128 -25
  335. cribl_control_plane/models/outputsumologic.py +146 -25
  336. cribl_control_plane/models/outputsyslog.py +318 -46
  337. cribl_control_plane/models/outputtcpjson.py +186 -32
  338. cribl_control_plane/models/outputwavefront.py +145 -26
  339. cribl_control_plane/models/outputwebhook.py +211 -33
  340. cribl_control_plane/models/outputxsiam.py +143 -26
  341. cribl_control_plane/models/packinfo.py +8 -5
  342. cribl_control_plane/models/packinstallinfo.py +11 -8
  343. cribl_control_plane/models/piisettings_union.py +31 -0
  344. cribl_control_plane/models/productscore.py +2 -1
  345. cribl_control_plane/models/rbacresource.py +2 -1
  346. cribl_control_plane/models/resourcepolicy.py +15 -2
  347. cribl_control_plane/models/rollbacksettings_union.py +44 -0
  348. cribl_control_plane/models/routeconf.py +3 -4
  349. cribl_control_plane/models/runnablejob.py +27 -0
  350. cribl_control_plane/models/runnablejobcollection.py +628 -0
  351. cribl_control_plane/models/runnablejobexecutor.py +360 -0
  352. cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
  353. cribl_control_plane/models/snisettings_union.py +31 -0
  354. cribl_control_plane/models/systemsettingsconf.py +291 -0
  355. cribl_control_plane/models/tlssettings_union.py +43 -0
  356. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -20
  357. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -21
  358. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +10 -25
  359. cribl_control_plane/models/updatehectokenrequest.py +7 -1
  360. cribl_control_plane/models/updateinputbyidop.py +1 -19
  361. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +1 -19
  362. cribl_control_plane/models/updateoutputbyidop.py +1 -19
  363. cribl_control_plane/models/updatepacksbyidop.py +1 -20
  364. cribl_control_plane/models/updatepacksop.py +25 -0
  365. cribl_control_plane/models/updatepipelinebyidop.py +5 -23
  366. cribl_control_plane/models/updateroutesbyidop.py +3 -21
  367. cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
  368. cribl_control_plane/models/upgradepackageurls.py +20 -0
  369. cribl_control_plane/models/upgradesettings.py +38 -0
  370. cribl_control_plane/models/uploadpackresponse.py +13 -0
  371. cribl_control_plane/models/workertypes.py +2 -1
  372. cribl_control_plane/nodes.py +37 -23
  373. cribl_control_plane/packs.py +292 -37
  374. cribl_control_plane/pipelines.py +98 -48
  375. cribl_control_plane/routes_sdk.py +86 -50
  376. cribl_control_plane/samples.py +32 -16
  377. cribl_control_plane/sdk.py +26 -6
  378. cribl_control_plane/settings.py +20 -0
  379. cribl_control_plane/sources.py +85 -33
  380. cribl_control_plane/statuses.py +16 -6
  381. cribl_control_plane/summaries.py +16 -6
  382. cribl_control_plane/system_sdk.py +20 -0
  383. cribl_control_plane/teams.py +16 -6
  384. cribl_control_plane/tokens.py +49 -21
  385. cribl_control_plane/utils/__init__.py +15 -3
  386. cribl_control_plane/utils/annotations.py +32 -8
  387. cribl_control_plane/utils/eventstreaming.py +10 -0
  388. cribl_control_plane/utils/forms.py +21 -10
  389. cribl_control_plane/utils/queryparams.py +14 -2
  390. cribl_control_plane/utils/retries.py +69 -5
  391. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  392. cribl_control_plane/versions.py +11 -6
  393. cribl_control_plane/versions_configs.py +16 -6
  394. {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/METADATA +99 -43
  395. cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
  396. {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
  397. cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
  398. cribl_control_plane/errors/healthstatus_error.py +0 -32
  399. cribl_control_plane/models/appmode.py +0 -13
  400. cribl_control_plane/models/createpipelineop.py +0 -24
  401. cribl_control_plane/models/createversionpushop.py +0 -23
  402. cribl_control_plane/models/healthstatus.py +0 -33
  403. cribl_control_plane-0.0.39.dist-info/RECORD +0 -315
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,15 +16,18 @@ class OutputNewrelicType(str, Enum):
12
16
  NEWRELIC = "newrelic"
13
17
 
14
18
 
15
- class OutputNewrelicRegion(str, Enum):
19
+ class OutputNewrelicRegion(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Which New Relic region endpoint to use."""
17
21
 
22
+ # US
18
23
  US = "US"
24
+ # Europe
19
25
  EU = "EU"
26
+ # Custom
20
27
  CUSTOM = "Custom"
21
28
 
22
29
 
23
- class FieldName(str, Enum):
30
+ class FieldName(str, Enum, metaclass=utils.OpenEnumMeta):
24
31
  SERVICE = "service"
25
32
  HOSTNAME = "hostname"
26
33
  TIMESTAMP = "timestamp"
@@ -34,11 +41,20 @@ class OutputNewrelicMetadatumTypedDict(TypedDict):
34
41
 
35
42
 
36
43
  class OutputNewrelicMetadatum(BaseModel):
37
- name: FieldName
44
+ name: Annotated[FieldName, PlainValidator(validate_open_enum(False))]
38
45
 
39
46
  value: str
40
47
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
41
48
 
49
+ @field_serializer("name")
50
+ def serialize_name(self, value):
51
+ if isinstance(value, str):
52
+ try:
53
+ return models.FieldName(value)
54
+ except ValueError:
55
+ return value
56
+ return value
57
+
42
58
 
43
59
  class OutputNewrelicExtraHTTPHeaderTypedDict(TypedDict):
44
60
  value: str
@@ -51,11 +67,14 @@ class OutputNewrelicExtraHTTPHeader(BaseModel):
51
67
  name: Optional[str] = None
52
68
 
53
69
 
54
- class OutputNewrelicFailedRequestLoggingMode(str, Enum):
70
+ class OutputNewrelicFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMeta):
55
71
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
56
72
 
73
+ # Payload
57
74
  PAYLOAD = "payload"
75
+ # Payload + Headers
58
76
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
77
+ # None
59
78
  NONE = "none"
60
79
 
61
80
 
@@ -113,43 +132,53 @@ class OutputNewrelicTimeoutRetrySettings(BaseModel):
113
132
  r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
114
133
 
115
134
 
116
- class OutputNewrelicBackpressureBehavior(str, Enum):
135
+ class OutputNewrelicBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
117
136
  r"""How to handle events when all receivers are exerting backpressure"""
118
137
 
138
+ # Block
119
139
  BLOCK = "block"
140
+ # Drop
120
141
  DROP = "drop"
142
+ # Persistent Queue
121
143
  QUEUE = "queue"
122
144
 
123
145
 
124
- class OutputNewrelicAuthenticationMethod(str, Enum):
146
+ class OutputNewrelicAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
125
147
  r"""Enter API key directly, or select a stored secret"""
126
148
 
127
149
  MANUAL = "manual"
128
150
  SECRET = "secret"
129
151
 
130
152
 
131
- class OutputNewrelicCompression(str, Enum):
153
+ class OutputNewrelicMode(str, Enum, metaclass=utils.OpenEnumMeta):
154
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
155
+
156
+ # Error
157
+ ERROR = "error"
158
+ # Backpressure
159
+ ALWAYS = "always"
160
+ # Always On
161
+ BACKPRESSURE = "backpressure"
162
+
163
+
164
+ class OutputNewrelicCompression(str, Enum, metaclass=utils.OpenEnumMeta):
132
165
  r"""Codec to use to compress the persisted data"""
133
166
 
167
+ # None
134
168
  NONE = "none"
169
+ # Gzip
135
170
  GZIP = "gzip"
136
171
 
137
172
 
138
- class OutputNewrelicQueueFullBehavior(str, Enum):
173
+ class OutputNewrelicQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
139
174
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
140
175
 
176
+ # Block
141
177
  BLOCK = "block"
178
+ # Drop new data
142
179
  DROP = "drop"
143
180
 
144
181
 
145
- class OutputNewrelicMode(str, Enum):
146
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
147
-
148
- ERROR = "error"
149
- BACKPRESSURE = "backpressure"
150
- ALWAYS = "always"
151
-
152
-
153
182
  class OutputNewrelicPqControlsTypedDict(TypedDict):
154
183
  pass
155
184
 
@@ -218,6 +247,16 @@ class OutputNewrelicTypedDict(TypedDict):
218
247
  r"""Maximum total size of the batches waiting to be sent. If left blank, defaults to 5 times the max body size (if set). If 0, no limit is enforced."""
219
248
  description: NotRequired[str]
220
249
  custom_url: NotRequired[str]
250
+ pq_strict_ordering: NotRequired[bool]
251
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
252
+ pq_rate_per_sec: NotRequired[float]
253
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
254
+ pq_mode: NotRequired[OutputNewrelicMode]
255
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
256
+ pq_max_buffer_size: NotRequired[float]
257
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
258
+ pq_max_backpressure_sec: NotRequired[float]
259
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
221
260
  pq_max_file_size: NotRequired[str]
222
261
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
223
262
  pq_max_size: NotRequired[str]
@@ -228,8 +267,6 @@ class OutputNewrelicTypedDict(TypedDict):
228
267
  r"""Codec to use to compress the persisted data"""
229
268
  pq_on_backpressure: NotRequired[OutputNewrelicQueueFullBehavior]
230
269
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
231
- pq_mode: NotRequired[OutputNewrelicMode]
232
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
233
270
  pq_controls: NotRequired[OutputNewrelicPqControlsTypedDict]
234
271
  api_key: NotRequired[str]
235
272
  r"""New Relic API key. Can be overridden using __newRelic_apiKey field."""
@@ -257,7 +294,9 @@ class OutputNewrelic(BaseModel):
257
294
  streamtags: Optional[List[str]] = None
258
295
  r"""Tags for filtering and grouping in @{product}"""
259
296
 
260
- region: Optional[OutputNewrelicRegion] = OutputNewrelicRegion.US
297
+ region: Annotated[
298
+ Optional[OutputNewrelicRegion], PlainValidator(validate_open_enum(False))
299
+ ] = OutputNewrelicRegion.US
261
300
  r"""Which New Relic region endpoint to use."""
262
301
 
263
302
  log_type: Annotated[Optional[str], pydantic.Field(alias="logType")] = ""
@@ -313,7 +352,10 @@ class OutputNewrelic(BaseModel):
313
352
  r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
314
353
 
315
354
  failed_request_logging_mode: Annotated[
316
- Optional[OutputNewrelicFailedRequestLoggingMode],
355
+ Annotated[
356
+ Optional[OutputNewrelicFailedRequestLoggingMode],
357
+ PlainValidator(validate_open_enum(False)),
358
+ ],
317
359
  pydantic.Field(alias="failedRequestLoggingMode"),
318
360
  ] = OutputNewrelicFailedRequestLoggingMode.NONE
319
361
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -340,13 +382,20 @@ class OutputNewrelic(BaseModel):
340
382
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
341
383
 
342
384
  on_backpressure: Annotated[
343
- Optional[OutputNewrelicBackpressureBehavior],
385
+ Annotated[
386
+ Optional[OutputNewrelicBackpressureBehavior],
387
+ PlainValidator(validate_open_enum(False)),
388
+ ],
344
389
  pydantic.Field(alias="onBackpressure"),
345
390
  ] = OutputNewrelicBackpressureBehavior.BLOCK
346
391
  r"""How to handle events when all receivers are exerting backpressure"""
347
392
 
348
393
  auth_type: Annotated[
349
- Optional[OutputNewrelicAuthenticationMethod], pydantic.Field(alias="authType")
394
+ Annotated[
395
+ Optional[OutputNewrelicAuthenticationMethod],
396
+ PlainValidator(validate_open_enum(False)),
397
+ ],
398
+ pydantic.Field(alias="authType"),
350
399
  ] = OutputNewrelicAuthenticationMethod.MANUAL
351
400
  r"""Enter API key directly, or select a stored secret"""
352
401
 
@@ -359,6 +408,34 @@ class OutputNewrelic(BaseModel):
359
408
 
360
409
  custom_url: Annotated[Optional[str], pydantic.Field(alias="customUrl")] = None
361
410
 
411
+ pq_strict_ordering: Annotated[
412
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
413
+ ] = True
414
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
415
+
416
+ pq_rate_per_sec: Annotated[
417
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
418
+ ] = 0
419
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
420
+
421
+ pq_mode: Annotated[
422
+ Annotated[
423
+ Optional[OutputNewrelicMode], PlainValidator(validate_open_enum(False))
424
+ ],
425
+ pydantic.Field(alias="pqMode"),
426
+ ] = OutputNewrelicMode.ERROR
427
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
428
+
429
+ pq_max_buffer_size: Annotated[
430
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
431
+ ] = 42
432
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
433
+
434
+ pq_max_backpressure_sec: Annotated[
435
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
436
+ ] = 30
437
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
438
+
362
439
  pq_max_file_size: Annotated[
363
440
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
364
441
  ] = "1 MB"
@@ -373,21 +450,23 @@ class OutputNewrelic(BaseModel):
373
450
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
374
451
 
375
452
  pq_compress: Annotated[
376
- Optional[OutputNewrelicCompression], pydantic.Field(alias="pqCompress")
453
+ Annotated[
454
+ Optional[OutputNewrelicCompression],
455
+ PlainValidator(validate_open_enum(False)),
456
+ ],
457
+ pydantic.Field(alias="pqCompress"),
377
458
  ] = OutputNewrelicCompression.NONE
378
459
  r"""Codec to use to compress the persisted data"""
379
460
 
380
461
  pq_on_backpressure: Annotated[
381
- Optional[OutputNewrelicQueueFullBehavior],
462
+ Annotated[
463
+ Optional[OutputNewrelicQueueFullBehavior],
464
+ PlainValidator(validate_open_enum(False)),
465
+ ],
382
466
  pydantic.Field(alias="pqOnBackpressure"),
383
467
  ] = OutputNewrelicQueueFullBehavior.BLOCK
384
468
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
385
469
 
386
- pq_mode: Annotated[Optional[OutputNewrelicMode], pydantic.Field(alias="pqMode")] = (
387
- OutputNewrelicMode.ERROR
388
- )
389
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
390
-
391
470
  pq_controls: Annotated[
392
471
  Optional[OutputNewrelicPqControls], pydantic.Field(alias="pqControls")
393
472
  ] = None
@@ -397,3 +476,66 @@ class OutputNewrelic(BaseModel):
397
476
 
398
477
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
399
478
  r"""Select or create a stored text secret"""
479
+
480
+ @field_serializer("region")
481
+ def serialize_region(self, value):
482
+ if isinstance(value, str):
483
+ try:
484
+ return models.OutputNewrelicRegion(value)
485
+ except ValueError:
486
+ return value
487
+ return value
488
+
489
+ @field_serializer("failed_request_logging_mode")
490
+ def serialize_failed_request_logging_mode(self, value):
491
+ if isinstance(value, str):
492
+ try:
493
+ return models.OutputNewrelicFailedRequestLoggingMode(value)
494
+ except ValueError:
495
+ return value
496
+ return value
497
+
498
+ @field_serializer("on_backpressure")
499
+ def serialize_on_backpressure(self, value):
500
+ if isinstance(value, str):
501
+ try:
502
+ return models.OutputNewrelicBackpressureBehavior(value)
503
+ except ValueError:
504
+ return value
505
+ return value
506
+
507
+ @field_serializer("auth_type")
508
+ def serialize_auth_type(self, value):
509
+ if isinstance(value, str):
510
+ try:
511
+ return models.OutputNewrelicAuthenticationMethod(value)
512
+ except ValueError:
513
+ return value
514
+ return value
515
+
516
+ @field_serializer("pq_mode")
517
+ def serialize_pq_mode(self, value):
518
+ if isinstance(value, str):
519
+ try:
520
+ return models.OutputNewrelicMode(value)
521
+ except ValueError:
522
+ return value
523
+ return value
524
+
525
+ @field_serializer("pq_compress")
526
+ def serialize_pq_compress(self, value):
527
+ if isinstance(value, str):
528
+ try:
529
+ return models.OutputNewrelicCompression(value)
530
+ except ValueError:
531
+ return value
532
+ return value
533
+
534
+ @field_serializer("pq_on_backpressure")
535
+ def serialize_pq_on_backpressure(self, value):
536
+ if isinstance(value, str):
537
+ try:
538
+ return models.OutputNewrelicQueueFullBehavior(value)
539
+ except ValueError:
540
+ return value
541
+ return value
@@ -1,9 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
7
11
  from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
@@ -12,11 +16,14 @@ class OutputNewrelicEventsType(str, Enum):
12
16
  NEWRELIC_EVENTS = "newrelic_events"
13
17
 
14
18
 
15
- class OutputNewrelicEventsRegion(str, Enum):
19
+ class OutputNewrelicEventsRegion(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""Which New Relic region endpoint to use."""
17
21
 
22
+ # US
18
23
  US = "US"
24
+ # Europe
19
25
  EU = "EU"
26
+ # Custom
20
27
  CUSTOM = "Custom"
21
28
 
22
29
 
@@ -31,11 +38,16 @@ class OutputNewrelicEventsExtraHTTPHeader(BaseModel):
31
38
  name: Optional[str] = None
32
39
 
33
40
 
34
- class OutputNewrelicEventsFailedRequestLoggingMode(str, Enum):
41
+ class OutputNewrelicEventsFailedRequestLoggingMode(
42
+ str, Enum, metaclass=utils.OpenEnumMeta
43
+ ):
35
44
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
36
45
 
46
+ # Payload
37
47
  PAYLOAD = "payload"
48
+ # Payload + Headers
38
49
  PAYLOAD_AND_HEADERS = "payloadAndHeaders"
50
+ # None
39
51
  NONE = "none"
40
52
 
41
53
 
@@ -93,43 +105,53 @@ class OutputNewrelicEventsTimeoutRetrySettings(BaseModel):
93
105
  r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
94
106
 
95
107
 
96
- class OutputNewrelicEventsBackpressureBehavior(str, Enum):
108
+ class OutputNewrelicEventsBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
97
109
  r"""How to handle events when all receivers are exerting backpressure"""
98
110
 
111
+ # Block
99
112
  BLOCK = "block"
113
+ # Drop
100
114
  DROP = "drop"
115
+ # Persistent Queue
101
116
  QUEUE = "queue"
102
117
 
103
118
 
104
- class OutputNewrelicEventsAuthenticationMethod(str, Enum):
119
+ class OutputNewrelicEventsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
105
120
  r"""Enter API key directly, or select a stored secret"""
106
121
 
107
122
  MANUAL = "manual"
108
123
  SECRET = "secret"
109
124
 
110
125
 
111
- class OutputNewrelicEventsCompression(str, Enum):
126
+ class OutputNewrelicEventsMode(str, Enum, metaclass=utils.OpenEnumMeta):
127
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
128
+
129
+ # Error
130
+ ERROR = "error"
131
+ # Backpressure
132
+ ALWAYS = "always"
133
+ # Always On
134
+ BACKPRESSURE = "backpressure"
135
+
136
+
137
+ class OutputNewrelicEventsCompression(str, Enum, metaclass=utils.OpenEnumMeta):
112
138
  r"""Codec to use to compress the persisted data"""
113
139
 
140
+ # None
114
141
  NONE = "none"
142
+ # Gzip
115
143
  GZIP = "gzip"
116
144
 
117
145
 
118
- class OutputNewrelicEventsQueueFullBehavior(str, Enum):
146
+ class OutputNewrelicEventsQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
119
147
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
120
148
 
149
+ # Block
121
150
  BLOCK = "block"
151
+ # Drop new data
122
152
  DROP = "drop"
123
153
 
124
154
 
125
- class OutputNewrelicEventsMode(str, Enum):
126
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
127
-
128
- ERROR = "error"
129
- BACKPRESSURE = "backpressure"
130
- ALWAYS = "always"
131
-
132
-
133
155
  class OutputNewrelicEventsPqControlsTypedDict(TypedDict):
134
156
  pass
135
157
 
@@ -198,6 +220,16 @@ class OutputNewrelicEventsTypedDict(TypedDict):
198
220
  r"""Enter API key directly, or select a stored secret"""
199
221
  description: NotRequired[str]
200
222
  custom_url: NotRequired[str]
223
+ pq_strict_ordering: NotRequired[bool]
224
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
225
+ pq_rate_per_sec: NotRequired[float]
226
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
227
+ pq_mode: NotRequired[OutputNewrelicEventsMode]
228
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
229
+ pq_max_buffer_size: NotRequired[float]
230
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
231
+ pq_max_backpressure_sec: NotRequired[float]
232
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
201
233
  pq_max_file_size: NotRequired[str]
202
234
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
203
235
  pq_max_size: NotRequired[str]
@@ -208,8 +240,6 @@ class OutputNewrelicEventsTypedDict(TypedDict):
208
240
  r"""Codec to use to compress the persisted data"""
209
241
  pq_on_backpressure: NotRequired[OutputNewrelicEventsQueueFullBehavior]
210
242
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
211
- pq_mode: NotRequired[OutputNewrelicEventsMode]
212
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
213
243
  pq_controls: NotRequired[OutputNewrelicEventsPqControlsTypedDict]
214
244
  api_key: NotRequired[str]
215
245
  r"""New Relic API key. Can be overridden using __newRelic_apiKey field."""
@@ -243,7 +273,9 @@ class OutputNewrelicEvents(BaseModel):
243
273
  streamtags: Optional[List[str]] = None
244
274
  r"""Tags for filtering and grouping in @{product}"""
245
275
 
246
- region: Optional[OutputNewrelicEventsRegion] = OutputNewrelicEventsRegion.US
276
+ region: Annotated[
277
+ Optional[OutputNewrelicEventsRegion], PlainValidator(validate_open_enum(False))
278
+ ] = OutputNewrelicEventsRegion.US
247
279
  r"""Which New Relic region endpoint to use."""
248
280
 
249
281
  concurrency: Optional[float] = 5
@@ -290,7 +322,10 @@ class OutputNewrelicEvents(BaseModel):
290
322
  r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
291
323
 
292
324
  failed_request_logging_mode: Annotated[
293
- Optional[OutputNewrelicEventsFailedRequestLoggingMode],
325
+ Annotated[
326
+ Optional[OutputNewrelicEventsFailedRequestLoggingMode],
327
+ PlainValidator(validate_open_enum(False)),
328
+ ],
294
329
  pydantic.Field(alias="failedRequestLoggingMode"),
295
330
  ] = OutputNewrelicEventsFailedRequestLoggingMode.NONE
296
331
  r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
@@ -313,17 +348,23 @@ class OutputNewrelicEvents(BaseModel):
313
348
 
314
349
  response_honor_retry_after_header: Annotated[
315
350
  Optional[bool], pydantic.Field(alias="responseHonorRetryAfterHeader")
316
- ] = False
351
+ ] = True
317
352
  r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
318
353
 
319
354
  on_backpressure: Annotated[
320
- Optional[OutputNewrelicEventsBackpressureBehavior],
355
+ Annotated[
356
+ Optional[OutputNewrelicEventsBackpressureBehavior],
357
+ PlainValidator(validate_open_enum(False)),
358
+ ],
321
359
  pydantic.Field(alias="onBackpressure"),
322
360
  ] = OutputNewrelicEventsBackpressureBehavior.BLOCK
323
361
  r"""How to handle events when all receivers are exerting backpressure"""
324
362
 
325
363
  auth_type: Annotated[
326
- Optional[OutputNewrelicEventsAuthenticationMethod],
364
+ Annotated[
365
+ Optional[OutputNewrelicEventsAuthenticationMethod],
366
+ PlainValidator(validate_open_enum(False)),
367
+ ],
327
368
  pydantic.Field(alias="authType"),
328
369
  ] = OutputNewrelicEventsAuthenticationMethod.MANUAL
329
370
  r"""Enter API key directly, or select a stored secret"""
@@ -332,6 +373,35 @@ class OutputNewrelicEvents(BaseModel):
332
373
 
333
374
  custom_url: Annotated[Optional[str], pydantic.Field(alias="customUrl")] = None
334
375
 
376
+ pq_strict_ordering: Annotated[
377
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
378
+ ] = True
379
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
380
+
381
+ pq_rate_per_sec: Annotated[
382
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
383
+ ] = 0
384
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
385
+
386
+ pq_mode: Annotated[
387
+ Annotated[
388
+ Optional[OutputNewrelicEventsMode],
389
+ PlainValidator(validate_open_enum(False)),
390
+ ],
391
+ pydantic.Field(alias="pqMode"),
392
+ ] = OutputNewrelicEventsMode.ERROR
393
+ r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
394
+
395
+ pq_max_buffer_size: Annotated[
396
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
397
+ ] = 42
398
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
399
+
400
+ pq_max_backpressure_sec: Annotated[
401
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
402
+ ] = 30
403
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
404
+
335
405
  pq_max_file_size: Annotated[
336
406
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
337
407
  ] = "1 MB"
@@ -346,21 +416,23 @@ class OutputNewrelicEvents(BaseModel):
346
416
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
347
417
 
348
418
  pq_compress: Annotated[
349
- Optional[OutputNewrelicEventsCompression], pydantic.Field(alias="pqCompress")
419
+ Annotated[
420
+ Optional[OutputNewrelicEventsCompression],
421
+ PlainValidator(validate_open_enum(False)),
422
+ ],
423
+ pydantic.Field(alias="pqCompress"),
350
424
  ] = OutputNewrelicEventsCompression.NONE
351
425
  r"""Codec to use to compress the persisted data"""
352
426
 
353
427
  pq_on_backpressure: Annotated[
354
- Optional[OutputNewrelicEventsQueueFullBehavior],
428
+ Annotated[
429
+ Optional[OutputNewrelicEventsQueueFullBehavior],
430
+ PlainValidator(validate_open_enum(False)),
431
+ ],
355
432
  pydantic.Field(alias="pqOnBackpressure"),
356
433
  ] = OutputNewrelicEventsQueueFullBehavior.BLOCK
357
434
  r"""How to handle events when the queue is exerting backpressure (full capacity or low disk). 'Block' is the same behavior as non-PQ blocking. 'Drop new data' throws away incoming data, while leaving the contents of the PQ unchanged."""
358
435
 
359
- pq_mode: Annotated[
360
- Optional[OutputNewrelicEventsMode], pydantic.Field(alias="pqMode")
361
- ] = OutputNewrelicEventsMode.ERROR
362
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
363
-
364
436
  pq_controls: Annotated[
365
437
  Optional[OutputNewrelicEventsPqControls], pydantic.Field(alias="pqControls")
366
438
  ] = None
@@ -370,3 +442,66 @@ class OutputNewrelicEvents(BaseModel):
370
442
 
371
443
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
372
444
  r"""Select or create a stored text secret"""
445
+
446
+ @field_serializer("region")
447
+ def serialize_region(self, value):
448
+ if isinstance(value, str):
449
+ try:
450
+ return models.OutputNewrelicEventsRegion(value)
451
+ except ValueError:
452
+ return value
453
+ return value
454
+
455
+ @field_serializer("failed_request_logging_mode")
456
+ def serialize_failed_request_logging_mode(self, value):
457
+ if isinstance(value, str):
458
+ try:
459
+ return models.OutputNewrelicEventsFailedRequestLoggingMode(value)
460
+ except ValueError:
461
+ return value
462
+ return value
463
+
464
+ @field_serializer("on_backpressure")
465
+ def serialize_on_backpressure(self, value):
466
+ if isinstance(value, str):
467
+ try:
468
+ return models.OutputNewrelicEventsBackpressureBehavior(value)
469
+ except ValueError:
470
+ return value
471
+ return value
472
+
473
+ @field_serializer("auth_type")
474
+ def serialize_auth_type(self, value):
475
+ if isinstance(value, str):
476
+ try:
477
+ return models.OutputNewrelicEventsAuthenticationMethod(value)
478
+ except ValueError:
479
+ return value
480
+ return value
481
+
482
+ @field_serializer("pq_mode")
483
+ def serialize_pq_mode(self, value):
484
+ if isinstance(value, str):
485
+ try:
486
+ return models.OutputNewrelicEventsMode(value)
487
+ except ValueError:
488
+ return value
489
+ return value
490
+
491
+ @field_serializer("pq_compress")
492
+ def serialize_pq_compress(self, value):
493
+ if isinstance(value, str):
494
+ try:
495
+ return models.OutputNewrelicEventsCompression(value)
496
+ except ValueError:
497
+ return value
498
+ return value
499
+
500
+ @field_serializer("pq_on_backpressure")
501
+ def serialize_pq_on_backpressure(self, value):
502
+ if isinstance(value, str):
503
+ try:
504
+ return models.OutputNewrelicEventsQueueFullBehavior(value)
505
+ except ValueError:
506
+ return value
507
+ return value