cribl-control-plane 0.0.38__py3-none-any.whl → 0.4.0a6__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.

Potentially problematic release.


This version of cribl-control-plane might be problematic. Click here for more details.

Files changed (241) 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 +5 -3
  4. cribl_control_plane/auth_sdk.py +6 -3
  5. cribl_control_plane/basesdk.py +11 -1
  6. cribl_control_plane/commits.py +7 -5
  7. cribl_control_plane/destinations.py +6 -4
  8. cribl_control_plane/destinations_pq.py +2 -2
  9. cribl_control_plane/errors/__init__.py +23 -8
  10. cribl_control_plane/errors/apierror.py +2 -0
  11. cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
  12. cribl_control_plane/errors/error.py +4 -2
  13. cribl_control_plane/errors/healthserverstatus_error.py +41 -0
  14. cribl_control_plane/errors/no_response_error.py +5 -1
  15. cribl_control_plane/errors/responsevalidationerror.py +2 -0
  16. cribl_control_plane/groups_configs.py +8 -3
  17. cribl_control_plane/groups_sdk.py +64 -38
  18. cribl_control_plane/health.py +22 -12
  19. cribl_control_plane/httpclient.py +0 -1
  20. cribl_control_plane/lakedatasets.py +40 -12
  21. cribl_control_plane/models/__init__.py +1180 -54
  22. cribl_control_plane/models/authtoken.py +5 -1
  23. cribl_control_plane/models/{routecloneconf.py → branchinfo.py} +4 -4
  24. cribl_control_plane/models/cacheconnection.py +30 -2
  25. cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
  26. cribl_control_plane/models/cloudprovider.py +2 -1
  27. cribl_control_plane/models/configgroup.py +66 -11
  28. cribl_control_plane/models/configgroupcloud.py +17 -3
  29. cribl_control_plane/models/createconfiggroupbyproductop.py +27 -9
  30. cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
  31. cribl_control_plane/models/createroutesappendbyidop.py +2 -2
  32. cribl_control_plane/models/createversionpushop.py +5 -5
  33. cribl_control_plane/models/createversionrevertop.py +2 -2
  34. cribl_control_plane/models/createversionundoop.py +3 -3
  35. cribl_control_plane/models/cribllakedataset.py +22 -2
  36. cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
  37. cribl_control_plane/models/datasetmetadata.py +18 -2
  38. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -2
  39. cribl_control_plane/models/deleteoutputpqbyidop.py +5 -5
  40. cribl_control_plane/models/deletepipelinebyidop.py +2 -2
  41. cribl_control_plane/models/difffiles.py +171 -0
  42. cribl_control_plane/models/distributedsummary.py +6 -0
  43. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -2
  44. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -2
  45. cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -1
  46. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -2
  47. cribl_control_plane/models/getoutputpqbyidop.py +6 -5
  48. cribl_control_plane/models/getpipelinebyidop.py +2 -2
  49. cribl_control_plane/models/getroutesbyidop.py +2 -2
  50. cribl_control_plane/models/getsummaryop.py +18 -2
  51. cribl_control_plane/models/getversionbranchop.py +6 -5
  52. cribl_control_plane/models/getversioncountop.py +6 -5
  53. cribl_control_plane/models/getversiondiffop.py +6 -5
  54. cribl_control_plane/models/getversionshowop.py +6 -5
  55. cribl_control_plane/models/gitcountresult.py +13 -0
  56. cribl_control_plane/models/gitdiffresult.py +16 -0
  57. cribl_control_plane/models/gitinfo.py +14 -3
  58. cribl_control_plane/models/gitshowresult.py +19 -0
  59. cribl_control_plane/models/groupcreaterequest.py +171 -0
  60. cribl_control_plane/models/hbcriblinfo.py +39 -3
  61. cribl_control_plane/models/healthserverstatus.py +55 -0
  62. cribl_control_plane/models/heartbeatmetadata.py +3 -0
  63. cribl_control_plane/models/input.py +83 -78
  64. cribl_control_plane/models/inputappscope.py +126 -30
  65. cribl_control_plane/models/inputazureblob.py +62 -6
  66. cribl_control_plane/models/inputcloudflarehec.py +513 -0
  67. cribl_control_plane/models/inputcollection.py +47 -4
  68. cribl_control_plane/models/inputconfluentcloud.py +254 -30
  69. cribl_control_plane/models/inputcribl.py +47 -4
  70. cribl_control_plane/models/inputcriblhttp.py +121 -30
  71. cribl_control_plane/models/inputcribllakehttp.py +122 -30
  72. cribl_control_plane/models/inputcriblmetrics.py +48 -4
  73. cribl_control_plane/models/inputcribltcp.py +122 -24
  74. cribl_control_plane/models/inputcrowdstrike.py +92 -10
  75. cribl_control_plane/models/inputdatadogagent.py +98 -24
  76. cribl_control_plane/models/inputdatagen.py +47 -4
  77. cribl_control_plane/models/inputedgeprometheus.py +210 -50
  78. cribl_control_plane/models/inputelastic.py +167 -36
  79. cribl_control_plane/models/inputeventhub.py +209 -6
  80. cribl_control_plane/models/inputexec.py +59 -6
  81. cribl_control_plane/models/inputfile.py +78 -10
  82. cribl_control_plane/models/inputfirehose.py +97 -24
  83. cribl_control_plane/models/inputgooglepubsub.py +67 -6
  84. cribl_control_plane/models/inputgrafana.py +251 -71
  85. cribl_control_plane/models/inputhttp.py +97 -24
  86. cribl_control_plane/models/inputhttpraw.py +97 -24
  87. cribl_control_plane/models/inputjournalfiles.py +48 -4
  88. cribl_control_plane/models/inputkafka.py +248 -26
  89. cribl_control_plane/models/inputkinesis.py +130 -14
  90. cribl_control_plane/models/inputkubeevents.py +47 -4
  91. cribl_control_plane/models/inputkubelogs.py +61 -8
  92. cribl_control_plane/models/inputkubemetrics.py +61 -8
  93. cribl_control_plane/models/inputloki.py +113 -34
  94. cribl_control_plane/models/inputmetrics.py +97 -24
  95. cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
  96. cribl_control_plane/models/inputmsk.py +141 -30
  97. cribl_control_plane/models/inputnetflow.py +47 -4
  98. cribl_control_plane/models/inputoffice365mgmt.py +112 -14
  99. cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
  100. cribl_control_plane/models/inputoffice365service.py +114 -16
  101. cribl_control_plane/models/inputopentelemetry.py +143 -32
  102. cribl_control_plane/models/inputprometheus.py +193 -44
  103. cribl_control_plane/models/inputprometheusrw.py +114 -27
  104. cribl_control_plane/models/inputrawudp.py +47 -4
  105. cribl_control_plane/models/inputs3.py +78 -8
  106. cribl_control_plane/models/inputs3inventory.py +92 -10
  107. cribl_control_plane/models/inputsecuritylake.py +93 -10
  108. cribl_control_plane/models/inputsnmp.py +68 -6
  109. cribl_control_plane/models/inputsplunk.py +130 -28
  110. cribl_control_plane/models/inputsplunkhec.py +111 -25
  111. cribl_control_plane/models/inputsplunksearch.py +108 -14
  112. cribl_control_plane/models/inputsqs.py +99 -16
  113. cribl_control_plane/models/inputsyslog.py +189 -47
  114. cribl_control_plane/models/inputsystemmetrics.py +202 -32
  115. cribl_control_plane/models/inputsystemstate.py +61 -8
  116. cribl_control_plane/models/inputtcp.py +122 -26
  117. cribl_control_plane/models/inputtcpjson.py +112 -26
  118. cribl_control_plane/models/inputwef.py +121 -15
  119. cribl_control_plane/models/inputwindowsmetrics.py +186 -33
  120. cribl_control_plane/models/inputwineventlogs.py +93 -11
  121. cribl_control_plane/models/inputwiz.py +78 -8
  122. cribl_control_plane/models/inputwizwebhook.py +97 -24
  123. cribl_control_plane/models/inputzscalerhec.py +111 -25
  124. cribl_control_plane/models/jobinfo.py +34 -0
  125. cribl_control_plane/models/jobstatus.py +48 -0
  126. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  127. cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
  128. cribl_control_plane/models/listconfiggroupbyproductop.py +14 -1
  129. cribl_control_plane/models/logininfo.py +3 -3
  130. cribl_control_plane/models/masterworkerentry.py +17 -2
  131. cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
  132. cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
  133. cribl_control_plane/models/nodeprovidedinfo.py +11 -1
  134. cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
  135. cribl_control_plane/models/nodeupgradestate.py +2 -1
  136. cribl_control_plane/models/nodeupgradestatus.py +51 -5
  137. cribl_control_plane/models/outpostnodeinfo.py +16 -0
  138. cribl_control_plane/models/output.py +104 -90
  139. cribl_control_plane/models/outputazureblob.py +171 -18
  140. cribl_control_plane/models/outputazuredataexplorer.py +514 -90
  141. cribl_control_plane/models/outputazureeventhub.py +315 -31
  142. cribl_control_plane/models/outputazurelogs.py +145 -26
  143. cribl_control_plane/models/outputchronicle.py +532 -0
  144. cribl_control_plane/models/outputclickhouse.py +205 -34
  145. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  146. cribl_control_plane/models/outputcloudwatch.py +129 -23
  147. cribl_control_plane/models/outputconfluentcloud.py +384 -57
  148. cribl_control_plane/models/outputcriblhttp.py +199 -32
  149. cribl_control_plane/models/outputcribllake.py +156 -16
  150. cribl_control_plane/models/outputcribltcp.py +194 -29
  151. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
  152. cribl_control_plane/models/outputdatabricks.py +501 -0
  153. cribl_control_plane/models/outputdatadog.py +199 -31
  154. cribl_control_plane/models/outputdataset.py +181 -29
  155. cribl_control_plane/models/outputdiskspool.py +17 -2
  156. cribl_control_plane/models/outputdls3.py +233 -24
  157. cribl_control_plane/models/outputdynatracehttp.py +208 -34
  158. cribl_control_plane/models/outputdynatraceotlp.py +210 -36
  159. cribl_control_plane/models/outputelastic.py +199 -30
  160. cribl_control_plane/models/outputelasticcloud.py +171 -26
  161. cribl_control_plane/models/outputexabeam.py +96 -10
  162. cribl_control_plane/models/outputfilesystem.py +139 -14
  163. cribl_control_plane/models/outputgooglechronicle.py +216 -35
  164. cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
  165. cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
  166. cribl_control_plane/models/outputgooglepubsub.py +131 -23
  167. cribl_control_plane/models/outputgrafanacloud.py +376 -74
  168. cribl_control_plane/models/outputgraphite.py +128 -25
  169. cribl_control_plane/models/outputhoneycomb.py +145 -26
  170. cribl_control_plane/models/outputhumiohec.py +162 -28
  171. cribl_control_plane/models/outputinfluxdb.py +165 -28
  172. cribl_control_plane/models/outputkafka.py +375 -52
  173. cribl_control_plane/models/outputkinesis.py +165 -27
  174. cribl_control_plane/models/outputloki.py +164 -34
  175. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  176. cribl_control_plane/models/outputminio.py +225 -25
  177. cribl_control_plane/models/outputmsk.py +267 -54
  178. cribl_control_plane/models/outputnewrelic.py +171 -29
  179. cribl_control_plane/models/outputnewrelicevents.py +163 -28
  180. cribl_control_plane/models/outputopentelemetry.py +240 -40
  181. cribl_control_plane/models/outputprometheus.py +145 -26
  182. cribl_control_plane/models/outputring.py +49 -8
  183. cribl_control_plane/models/outputs3.py +233 -26
  184. cribl_control_plane/models/outputsecuritylake.py +179 -18
  185. cribl_control_plane/models/outputsentinel.py +172 -29
  186. cribl_control_plane/models/outputsentineloneaisiem.py +181 -35
  187. cribl_control_plane/models/outputservicenow.py +223 -38
  188. cribl_control_plane/models/outputsignalfx.py +145 -26
  189. cribl_control_plane/models/outputsns.py +143 -25
  190. cribl_control_plane/models/outputsplunk.py +206 -36
  191. cribl_control_plane/models/outputsplunkhec.py +238 -26
  192. cribl_control_plane/models/outputsplunklb.py +253 -43
  193. cribl_control_plane/models/outputsqs.py +163 -33
  194. cribl_control_plane/models/outputstatsd.py +127 -25
  195. cribl_control_plane/models/outputstatsdext.py +128 -25
  196. cribl_control_plane/models/outputsumologic.py +146 -25
  197. cribl_control_plane/models/outputsyslog.py +318 -46
  198. cribl_control_plane/models/outputtcpjson.py +186 -32
  199. cribl_control_plane/models/outputwavefront.py +145 -26
  200. cribl_control_plane/models/outputwebhook.py +211 -33
  201. cribl_control_plane/models/outputxsiam.py +143 -26
  202. cribl_control_plane/models/packinfo.py +8 -5
  203. cribl_control_plane/models/packinstallinfo.py +11 -8
  204. cribl_control_plane/models/productscore.py +2 -1
  205. cribl_control_plane/models/rbacresource.py +2 -1
  206. cribl_control_plane/models/resourcepolicy.py +15 -2
  207. cribl_control_plane/models/routeconf.py +3 -4
  208. cribl_control_plane/models/runnablejob.py +27 -0
  209. cribl_control_plane/models/runnablejobcollection.py +669 -0
  210. cribl_control_plane/models/runnablejobexecutor.py +368 -0
  211. cribl_control_plane/models/runnablejobscheduledsearch.py +286 -0
  212. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -2
  213. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -2
  214. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +9 -5
  215. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
  216. cribl_control_plane/models/updatepacksop.py +25 -0
  217. cribl_control_plane/models/updatepipelinebyidop.py +6 -6
  218. cribl_control_plane/models/updateroutesbyidop.py +2 -2
  219. cribl_control_plane/models/uploadpackresponse.py +13 -0
  220. cribl_control_plane/models/workertypes.py +2 -1
  221. cribl_control_plane/nodes.py +5 -3
  222. cribl_control_plane/packs.py +202 -7
  223. cribl_control_plane/pipelines.py +18 -18
  224. cribl_control_plane/routes_sdk.py +22 -22
  225. cribl_control_plane/sdk.py +19 -6
  226. cribl_control_plane/sources.py +5 -3
  227. cribl_control_plane/tokens.py +23 -15
  228. cribl_control_plane/utils/__init__.py +15 -3
  229. cribl_control_plane/utils/annotations.py +32 -8
  230. cribl_control_plane/utils/eventstreaming.py +10 -0
  231. cribl_control_plane/utils/retries.py +69 -5
  232. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  233. cribl_control_plane/versions.py +11 -6
  234. {cribl_control_plane-0.0.38.dist-info → cribl_control_plane-0.4.0a6.dist-info}/METADATA +69 -23
  235. cribl_control_plane-0.4.0a6.dist-info/RECORD +336 -0
  236. {cribl_control_plane-0.0.38.dist-info → cribl_control_plane-0.4.0a6.dist-info}/WHEEL +1 -1
  237. cribl_control_plane-0.4.0a6.dist-info/licenses/LICENSE +201 -0
  238. cribl_control_plane/errors/healthstatus_error.py +0 -32
  239. cribl_control_plane/models/appmode.py +0 -13
  240. cribl_control_plane/models/healthstatus.py +0 -33
  241. cribl_control_plane-0.0.38.dist-info/RECORD +0 -315
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
  from .inputappscope import InputAppscope, InputAppscopeTypedDict
5
5
  from .inputazureblob import InputAzureBlob, InputAzureBlobTypedDict
6
+ from .inputcloudflarehec import InputCloudflareHec, InputCloudflareHecTypedDict
6
7
  from .inputcollection import InputCollection, InputCollectionTypedDict
7
8
  from .inputconfluentcloud import InputConfluentCloud, InputConfluentCloudTypedDict
8
9
  from .inputcribl import InputCribl, InputCriblTypedDict
@@ -66,65 +67,68 @@ from .inputwineventlogs import InputWinEventLogs, InputWinEventLogsTypedDict
66
67
  from .inputwiz import InputWiz, InputWizTypedDict
67
68
  from .inputwizwebhook import InputWizWebhook, InputWizWebhookTypedDict
68
69
  from .inputzscalerhec import InputZscalerHec, InputZscalerHecTypedDict
70
+ from cribl_control_plane.utils import get_discriminator
71
+ from pydantic import Discriminator, Tag
69
72
  from typing import Union
70
- from typing_extensions import TypeAliasType
73
+ from typing_extensions import Annotated, TypeAliasType
71
74
 
72
75
 
73
76
  InputTypedDict = TypeAliasType(
74
77
  "InputTypedDict",
75
78
  Union[
76
- InputDatagenTypedDict,
77
- InputKubeEventsTypedDict,
78
79
  InputCriblTypedDict,
80
+ InputKubeEventsTypedDict,
81
+ InputDatagenTypedDict,
79
82
  InputCriblmetricsTypedDict,
80
83
  InputKubeMetricsTypedDict,
81
- InputCollectionTypedDict,
82
84
  InputSystemStateTypedDict,
85
+ InputCollectionTypedDict,
83
86
  InputModelDrivenTelemetryTypedDict,
84
- InputSystemMetricsTypedDict,
85
87
  InputWindowsMetricsTypedDict,
88
+ InputSystemMetricsTypedDict,
86
89
  InputJournalFilesTypedDict,
87
- InputWinEventLogsTypedDict,
88
90
  InputRawUDPTypedDict,
89
- InputExecTypedDict,
90
91
  InputKubeLogsTypedDict,
92
+ InputExecTypedDict,
91
93
  InputMetricsTypedDict,
92
94
  InputSnmpTypedDict,
95
+ InputWinEventLogsTypedDict,
93
96
  InputCriblTCPTypedDict,
94
97
  InputNetflowTypedDict,
95
- InputTcpjsonTypedDict,
96
98
  InputGooglePubsubTypedDict,
99
+ InputTcpjsonTypedDict,
97
100
  InputOffice365ServiceTypedDict,
98
101
  InputWizTypedDict,
99
- InputTCPTypedDict,
100
102
  InputFirehoseTypedDict,
101
103
  InputCriblHTTPTypedDict,
102
- InputDatadogAgentTypedDict,
103
104
  InputOffice365MgmtTypedDict,
104
- InputFileTypedDict,
105
+ InputDatadogAgentTypedDict,
106
+ InputTCPTypedDict,
105
107
  InputSplunkTypedDict,
108
+ InputFileTypedDict,
106
109
  InputWefTypedDict,
107
110
  InputAppscopeTypedDict,
108
- InputHTTPRawTypedDict,
109
111
  InputWizWebhookTypedDict,
110
112
  InputHTTPTypedDict,
113
+ InputHTTPRawTypedDict,
111
114
  InputCriblLakeHTTPTypedDict,
112
115
  InputAzureBlobTypedDict,
113
- InputSqsTypedDict,
114
116
  InputZscalerHecTypedDict,
115
- InputKinesisTypedDict,
117
+ InputSqsTypedDict,
118
+ InputCloudflareHecTypedDict,
116
119
  InputConfluentCloudTypedDict,
117
- InputEventhubTypedDict,
118
120
  InputKafkaTypedDict,
121
+ InputEventhubTypedDict,
122
+ InputKinesisTypedDict,
119
123
  InputElasticTypedDict,
120
124
  InputOffice365MsgTraceTypedDict,
121
125
  InputSplunkHecTypedDict,
122
126
  InputPrometheusRwTypedDict,
123
127
  InputLokiTypedDict,
124
- InputPrometheusTypedDict,
125
128
  InputCrowdstrikeTypedDict,
126
129
  InputEdgePrometheusTypedDict,
127
130
  InputOpenTelemetryTypedDict,
131
+ InputPrometheusTypedDict,
128
132
  InputS3TypedDict,
129
133
  InputSecurityLakeTypedDict,
130
134
  InputMskTypedDict,
@@ -136,67 +140,68 @@ InputTypedDict = TypeAliasType(
136
140
  )
137
141
 
138
142
 
139
- Input = TypeAliasType(
140
- "Input",
143
+ Input = Annotated[
141
144
  Union[
142
- InputDatagen,
143
- InputKubeEvents,
144
- InputCribl,
145
- InputCriblmetrics,
146
- InputKubeMetrics,
147
- InputCollection,
148
- InputSystemState,
149
- InputModelDrivenTelemetry,
150
- InputSystemMetrics,
151
- InputWindowsMetrics,
152
- InputJournalFiles,
153
- InputWinEventLogs,
154
- InputRawUDP,
155
- InputExec,
156
- InputKubeLogs,
157
- InputMetrics,
158
- InputSnmp,
159
- InputCriblTCP,
160
- InputNetflow,
161
- InputTcpjson,
162
- InputGooglePubsub,
163
- InputOffice365Service,
164
- InputWiz,
165
- InputTCP,
166
- InputFirehose,
167
- InputCriblHTTP,
168
- InputDatadogAgent,
169
- InputOffice365Mgmt,
170
- InputFile,
171
- InputSplunk,
172
- InputWef,
173
- InputAppscope,
174
- InputHTTPRaw,
175
- InputWizWebhook,
176
- InputHTTP,
177
- InputCriblLakeHTTP,
178
- InputAzureBlob,
179
- InputSqs,
180
- InputZscalerHec,
181
- InputKinesis,
182
- InputConfluentCloud,
183
- InputEventhub,
184
- InputKafka,
185
- InputElastic,
186
- InputOffice365MsgTrace,
187
- InputSplunkHec,
188
- InputPrometheusRw,
189
- InputLoki,
190
- InputPrometheus,
191
- InputCrowdstrike,
192
- InputEdgePrometheus,
193
- InputOpenTelemetry,
194
- InputS3,
195
- InputSecurityLake,
196
- InputMsk,
197
- InputS3Inventory,
198
- InputSplunkSearch,
199
- InputSyslog,
200
- InputGrafana,
145
+ Annotated[InputCollection, Tag("collection")],
146
+ Annotated[InputKafka, Tag("kafka")],
147
+ Annotated[InputMsk, Tag("msk")],
148
+ Annotated[InputHTTP, Tag("http")],
149
+ Annotated[InputSplunk, Tag("splunk")],
150
+ Annotated[InputSplunkSearch, Tag("splunk_search")],
151
+ Annotated[InputSplunkHec, Tag("splunk_hec")],
152
+ Annotated[InputAzureBlob, Tag("azure_blob")],
153
+ Annotated[InputElastic, Tag("elastic")],
154
+ Annotated[InputConfluentCloud, Tag("confluent_cloud")],
155
+ Annotated[InputGrafana, Tag("grafana")],
156
+ Annotated[InputLoki, Tag("loki")],
157
+ Annotated[InputPrometheusRw, Tag("prometheus_rw")],
158
+ Annotated[InputPrometheus, Tag("prometheus")],
159
+ Annotated[InputEdgePrometheus, Tag("edge_prometheus")],
160
+ Annotated[InputOffice365Mgmt, Tag("office365_mgmt")],
161
+ Annotated[InputOffice365Service, Tag("office365_service")],
162
+ Annotated[InputOffice365MsgTrace, Tag("office365_msg_trace")],
163
+ Annotated[InputEventhub, Tag("eventhub")],
164
+ Annotated[InputExec, Tag("exec")],
165
+ Annotated[InputFirehose, Tag("firehose")],
166
+ Annotated[InputGooglePubsub, Tag("google_pubsub")],
167
+ Annotated[InputCribl, Tag("cribl")],
168
+ Annotated[InputCriblTCP, Tag("cribl_tcp")],
169
+ Annotated[InputCriblHTTP, Tag("cribl_http")],
170
+ Annotated[InputCriblLakeHTTP, Tag("cribl_lake_http")],
171
+ Annotated[InputTcpjson, Tag("tcpjson")],
172
+ Annotated[InputSystemMetrics, Tag("system_metrics")],
173
+ Annotated[InputSystemState, Tag("system_state")],
174
+ Annotated[InputKubeMetrics, Tag("kube_metrics")],
175
+ Annotated[InputKubeLogs, Tag("kube_logs")],
176
+ Annotated[InputKubeEvents, Tag("kube_events")],
177
+ Annotated[InputWindowsMetrics, Tag("windows_metrics")],
178
+ Annotated[InputCrowdstrike, Tag("crowdstrike")],
179
+ Annotated[InputDatadogAgent, Tag("datadog_agent")],
180
+ Annotated[InputDatagen, Tag("datagen")],
181
+ Annotated[InputHTTPRaw, Tag("http_raw")],
182
+ Annotated[InputKinesis, Tag("kinesis")],
183
+ Annotated[InputCriblmetrics, Tag("criblmetrics")],
184
+ Annotated[InputMetrics, Tag("metrics")],
185
+ Annotated[InputS3, Tag("s3")],
186
+ Annotated[InputS3Inventory, Tag("s3_inventory")],
187
+ Annotated[InputSnmp, Tag("snmp")],
188
+ Annotated[InputOpenTelemetry, Tag("open_telemetry")],
189
+ Annotated[InputModelDrivenTelemetry, Tag("model_driven_telemetry")],
190
+ Annotated[InputSqs, Tag("sqs")],
191
+ Annotated[InputSyslog, Tag("syslog")],
192
+ Annotated[InputFile, Tag("file")],
193
+ Annotated[InputTCP, Tag("tcp")],
194
+ Annotated[InputAppscope, Tag("appscope")],
195
+ Annotated[InputWef, Tag("wef")],
196
+ Annotated[InputWinEventLogs, Tag("win_event_logs")],
197
+ Annotated[InputRawUDP, Tag("raw_udp")],
198
+ Annotated[InputJournalFiles, Tag("journal_files")],
199
+ Annotated[InputWiz, Tag("wiz")],
200
+ Annotated[InputWizWebhook, Tag("wiz_webhook")],
201
+ Annotated[InputNetflow, Tag("netflow")],
202
+ Annotated[InputSecurityLake, Tag("security_lake")],
203
+ Annotated[InputZscalerHec, Tag("zscaler_hec")],
204
+ Annotated[InputCloudflareHec, Tag("cloudflare_hec")],
201
205
  ],
202
- )
206
+ Discriminator(lambda m: get_discriminator(m, "type", "type")),
207
+ ]
@@ -1,10 +1,14 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from cribl_control_plane import models, utils
4
5
  from cribl_control_plane.types import BaseModel
6
+ from cribl_control_plane.utils import validate_open_enum
5
7
  from enum import Enum
6
8
  import pydantic
7
- from typing import Any, List, Optional
9
+ from pydantic import field_serializer
10
+ from pydantic.functional_validators import PlainValidator
11
+ from typing import List, Optional
8
12
  from typing_extensions import Annotated, NotRequired, TypedDict
9
13
 
10
14
 
@@ -23,20 +27,32 @@ class InputAppscopeConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputAppscopeMode(str, Enum):
30
+ class InputAppscopeMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
32
 
33
+ # Smart
29
34
  SMART = "smart"
35
+ # Always On
30
36
  ALWAYS = "always"
31
37
 
32
38
 
33
- class InputAppscopeCompression(str, Enum):
39
+ class InputAppscopeCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
40
  r"""Codec to use to compress the persisted data"""
35
41
 
42
+ # None
36
43
  NONE = "none"
44
+ # Gzip
37
45
  GZIP = "gzip"
38
46
 
39
47
 
48
+ class InputAppscopePqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputAppscopePqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputAppscopePqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputAppscopeMode]
42
58
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
@@ -52,10 +68,13 @@ class InputAppscopePqTypedDict(TypedDict):
52
68
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
53
69
  compress: NotRequired[InputAppscopeCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputAppscopePqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputAppscopePq(BaseModel):
58
- mode: Optional[InputAppscopeMode] = InputAppscopeMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputAppscopeMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputAppscopeMode.ALWAYS
59
78
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
60
79
 
61
80
  max_buffer_size: Annotated[
@@ -79,9 +98,33 @@ class InputAppscopePq(BaseModel):
79
98
  path: Optional[str] = "$CRIBL_HOME/state/queues"
80
99
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
81
100
 
82
- compress: Optional[InputAppscopeCompression] = InputAppscopeCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputAppscopeCompression], PlainValidator(validate_open_enum(False))
103
+ ] = InputAppscopeCompression.NONE
83
104
  r"""Codec to use to compress the persisted data"""
84
105
 
106
+ pq_controls: Annotated[
107
+ Optional[InputAppscopePqControls], pydantic.Field(alias="pqControls")
108
+ ] = None
109
+
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputAppscopeMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputAppscopeCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
85
128
 
86
129
  class InputAppscopeMetadatumTypedDict(TypedDict):
87
130
  name: str
@@ -131,7 +174,7 @@ class InputAppscopeFilter(BaseModel):
131
174
  r"""To override the UNIX domain socket or address/port specified in General Settings (while leaving Authentication settings as is), enter a URL."""
132
175
 
133
176
 
134
- class InputAppscopeDataCompressionFormat(str, Enum):
177
+ class InputAppscopeDataCompressionFormat(str, Enum, metaclass=utils.OpenEnumMeta):
135
178
  NONE = "none"
136
179
  GZIP = "gzip"
137
180
 
@@ -163,31 +206,41 @@ class InputAppscopePersistence(BaseModel):
163
206
  max_data_time: Annotated[Optional[str], pydantic.Field(alias="maxDataTime")] = "24h"
164
207
  r"""Maximum amount of time to retain data (examples: 2h, 4d). When limit is reached, older data will be deleted."""
165
208
 
166
- compress: Optional[InputAppscopeDataCompressionFormat] = (
167
- InputAppscopeDataCompressionFormat.GZIP
168
- )
209
+ compress: Annotated[
210
+ Optional[InputAppscopeDataCompressionFormat],
211
+ PlainValidator(validate_open_enum(False)),
212
+ ] = InputAppscopeDataCompressionFormat.GZIP
169
213
 
170
214
  dest_path: Annotated[Optional[str], pydantic.Field(alias="destPath")] = (
171
215
  "$CRIBL_HOME/state/appscope"
172
216
  )
173
217
  r"""Path to use to write metrics. Defaults to $CRIBL_HOME/state/appscope"""
174
218
 
219
+ @field_serializer("compress")
220
+ def serialize_compress(self, value):
221
+ if isinstance(value, str):
222
+ try:
223
+ return models.InputAppscopeDataCompressionFormat(value)
224
+ except ValueError:
225
+ return value
226
+ return value
175
227
 
176
- class InputAppscopeAuthenticationMethod(str, Enum):
228
+
229
+ class InputAppscopeAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
177
230
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
178
231
 
179
232
  MANUAL = "manual"
180
233
  SECRET = "secret"
181
234
 
182
235
 
183
- class InputAppscopeMinimumTLSVersion(str, Enum):
236
+ class InputAppscopeMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
184
237
  TL_SV1 = "TLSv1"
185
238
  TL_SV1_1 = "TLSv1.1"
186
239
  TL_SV1_2 = "TLSv1.2"
187
240
  TL_SV1_3 = "TLSv1.3"
188
241
 
189
242
 
190
- class InputAppscopeMaximumTLSVersion(str, Enum):
243
+ class InputAppscopeMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
191
244
  TL_SV1 = "TLSv1"
192
245
  TL_SV1_1 = "TLSv1.1"
193
246
  TL_SV1_2 = "TLSv1.2"
@@ -196,6 +249,12 @@ class InputAppscopeMaximumTLSVersion(str, Enum):
196
249
 
197
250
  class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
198
251
  disabled: NotRequired[bool]
252
+ request_cert: NotRequired[bool]
253
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
254
+ reject_unauthorized: NotRequired[bool]
255
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
256
+ common_name_regex: NotRequired[str]
257
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
199
258
  certificate_name: NotRequired[str]
200
259
  r"""The name of the predefined certificate"""
201
260
  priv_key_path: NotRequired[str]
@@ -206,10 +265,6 @@ class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
206
265
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
207
266
  ca_path: NotRequired[str]
208
267
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
209
- request_cert: NotRequired[bool]
210
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
211
- reject_unauthorized: NotRequired[Any]
212
- common_name_regex: NotRequired[Any]
213
268
  min_version: NotRequired[InputAppscopeMinimumTLSVersion]
214
269
  max_version: NotRequired[InputAppscopeMaximumTLSVersion]
215
270
 
@@ -217,6 +272,19 @@ class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
217
272
  class InputAppscopeTLSSettingsServerSide(BaseModel):
218
273
  disabled: Optional[bool] = True
219
274
 
275
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
276
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
277
+
278
+ reject_unauthorized: Annotated[
279
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
280
+ ] = True
281
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
282
+
283
+ common_name_regex: Annotated[
284
+ Optional[str], pydantic.Field(alias="commonNameRegex")
285
+ ] = "/.*/"
286
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
287
+
220
288
  certificate_name: Annotated[
221
289
  Optional[str], pydantic.Field(alias="certificateName")
222
290
  ] = None
@@ -234,25 +302,40 @@ class InputAppscopeTLSSettingsServerSide(BaseModel):
234
302
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
235
303
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
236
304
 
237
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
238
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
239
-
240
- reject_unauthorized: Annotated[
241
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
242
- ] = None
243
-
244
- common_name_regex: Annotated[
245
- Optional[Any], pydantic.Field(alias="commonNameRegex")
246
- ] = None
247
-
248
305
  min_version: Annotated[
249
- Optional[InputAppscopeMinimumTLSVersion], pydantic.Field(alias="minVersion")
306
+ Annotated[
307
+ Optional[InputAppscopeMinimumTLSVersion],
308
+ PlainValidator(validate_open_enum(False)),
309
+ ],
310
+ pydantic.Field(alias="minVersion"),
250
311
  ] = None
251
312
 
252
313
  max_version: Annotated[
253
- Optional[InputAppscopeMaximumTLSVersion], pydantic.Field(alias="maxVersion")
314
+ Annotated[
315
+ Optional[InputAppscopeMaximumTLSVersion],
316
+ PlainValidator(validate_open_enum(False)),
317
+ ],
318
+ pydantic.Field(alias="maxVersion"),
254
319
  ] = None
255
320
 
321
+ @field_serializer("min_version")
322
+ def serialize_min_version(self, value):
323
+ if isinstance(value, str):
324
+ try:
325
+ return models.InputAppscopeMinimumTLSVersion(value)
326
+ except ValueError:
327
+ return value
328
+ return value
329
+
330
+ @field_serializer("max_version")
331
+ def serialize_max_version(self, value):
332
+ if isinstance(value, str):
333
+ try:
334
+ return models.InputAppscopeMaximumTLSVersion(value)
335
+ except ValueError:
336
+ return value
337
+ return value
338
+
256
339
 
257
340
  class InputAppscopeTypedDict(TypedDict):
258
341
  type: InputAppscopeType
@@ -397,7 +480,11 @@ class InputAppscope(BaseModel):
397
480
  persistence: Optional[InputAppscopePersistence] = None
398
481
 
399
482
  auth_type: Annotated[
400
- Optional[InputAppscopeAuthenticationMethod], pydantic.Field(alias="authType")
483
+ Annotated[
484
+ Optional[InputAppscopeAuthenticationMethod],
485
+ PlainValidator(validate_open_enum(False)),
486
+ ],
487
+ pydantic.Field(alias="authType"),
401
488
  ] = InputAppscopeAuthenticationMethod.MANUAL
402
489
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
403
490
 
@@ -426,3 +513,12 @@ class InputAppscope(BaseModel):
426
513
 
427
514
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
428
515
  r"""Select or create a stored text secret"""
516
+
517
+ @field_serializer("auth_type")
518
+ def serialize_auth_type(self, value):
519
+ if isinstance(value, str):
520
+ try:
521
+ return models.InputAppscopeAuthenticationMethod(value)
522
+ except ValueError:
523
+ return value
524
+ 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
 
@@ -23,20 +27,32 @@ class InputAzureBlobConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputAzureBlobMode(str, Enum):
30
+ class InputAzureBlobMode(str, Enum, metaclass=utils.OpenEnumMeta):
27
31
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
28
32
 
33
+ # Smart
29
34
  SMART = "smart"
35
+ # Always On
30
36
  ALWAYS = "always"
31
37
 
32
38
 
33
- class InputAzureBlobCompression(str, Enum):
39
+ class InputAzureBlobCompression(str, Enum, metaclass=utils.OpenEnumMeta):
34
40
  r"""Codec to use to compress the persisted data"""
35
41
 
42
+ # None
36
43
  NONE = "none"
44
+ # Gzip
37
45
  GZIP = "gzip"
38
46
 
39
47
 
48
+ class InputAzureBlobPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputAzureBlobPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputAzureBlobPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputAzureBlobMode]
42
58
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
@@ -52,10 +68,13 @@ class InputAzureBlobPqTypedDict(TypedDict):
52
68
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
53
69
  compress: NotRequired[InputAzureBlobCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputAzureBlobPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputAzureBlobPq(BaseModel):
58
- mode: Optional[InputAzureBlobMode] = InputAzureBlobMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputAzureBlobMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputAzureBlobMode.ALWAYS
59
78
  r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
60
79
 
61
80
  max_buffer_size: Annotated[
@@ -79,9 +98,33 @@ class InputAzureBlobPq(BaseModel):
79
98
  path: Optional[str] = "$CRIBL_HOME/state/queues"
80
99
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
81
100
 
82
- compress: Optional[InputAzureBlobCompression] = InputAzureBlobCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputAzureBlobCompression], PlainValidator(validate_open_enum(False))
103
+ ] = InputAzureBlobCompression.NONE
83
104
  r"""Codec to use to compress the persisted data"""
84
105
 
106
+ pq_controls: Annotated[
107
+ Optional[InputAzureBlobPqControls], pydantic.Field(alias="pqControls")
108
+ ] = None
109
+
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputAzureBlobMode(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("compress")
120
+ def serialize_compress(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.InputAzureBlobCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
85
128
 
86
129
  class InputAzureBlobMetadatumTypedDict(TypedDict):
87
130
  name: str
@@ -96,7 +139,7 @@ class InputAzureBlobMetadatum(BaseModel):
96
139
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
97
140
 
98
141
 
99
- class InputAzureBlobAuthenticationMethod(str, Enum):
142
+ class InputAzureBlobAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
100
143
  MANUAL = "manual"
101
144
  SECRET = "secret"
102
145
  CLIENT_SECRET = "clientSecret"
@@ -257,7 +300,11 @@ class InputAzureBlob(BaseModel):
257
300
  r"""The maximum time allowed for downloading a Parquet chunk. Processing will stop if a chunk cannot be downloaded within the time specified."""
258
301
 
259
302
  auth_type: Annotated[
260
- Optional[InputAzureBlobAuthenticationMethod], pydantic.Field(alias="authType")
303
+ Annotated[
304
+ Optional[InputAzureBlobAuthenticationMethod],
305
+ PlainValidator(validate_open_enum(False)),
306
+ ],
307
+ pydantic.Field(alias="authType"),
261
308
  ] = InputAzureBlobAuthenticationMethod.MANUAL
262
309
 
263
310
  description: Optional[str] = None
@@ -295,3 +342,12 @@ class InputAzureBlob(BaseModel):
295
342
  r"""Select or create a stored text secret"""
296
343
 
297
344
  certificate: Optional[InputAzureBlobCertificate] = None
345
+
346
+ @field_serializer("auth_type")
347
+ def serialize_auth_type(self, value):
348
+ if isinstance(value, str):
349
+ try:
350
+ return models.InputAzureBlobAuthenticationMethod(value)
351
+ except ValueError:
352
+ return value
353
+ return value